大数据技术(六)—— Hbase集群安装

目录

一、Hbase安装

1、准备工作

1.1、安装rsync

1.2、编辑脚本

1.3、测试

2、安装Hadoop

3、安装zookeeper

3.1、下载最新稳定版

3.2、安装配置ZK

4、安装Hbase

4.1、解压文件

4.2、hbase-env.sh

4.3、backup-masters

4.4、配置hbase-site.xml

4.5、regionservers

4.6、创建软连接

5、启动Hbase

5.1、分发数据

5.2、启动hdfs

5.3、启动zk,每个节点都启动

5.4、启动hbase

5.5、HBase页面和HDFS

6、编写脚本

[二、HBase Shell操作](#二、HBase Shell操作)


一、Hbase安装

|---------|-----------------|--------|-----------|--------------|
| 主机名 | ip | master | zookeeper | RegionServer |
| hadoop1 | 192.168.139.176 | √ | √ | √ |
| hadoop2 | 192.168.139.214 | backup | √ | √ |
| hadoop3 | 192.168.139.215 | | √ | √ |

1、准备工作

1.1、安装rsync

bash 复制代码
sudo yum install rsync -y

1.2、编辑脚本

bash 复制代码
vim xsync
bash 复制代码
#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop1 hadoop2 hadoop3
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送

    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)

                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

1.3、测试

bash 复制代码
#创建文件
touch a.txt

#分发文件,如果成功了再其他服务器上可以看到该文件
xsync a.txt 

2、安装Hadoop

大数据技术-Hadoop(一)Hadoop集群的安装与配置_安装hadoop集群-CSDN博客

3、安装zookeeper

3.1、下载最新稳定版

https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

3.2、安装配置ZK

bash 复制代码
#解压文件
tar -zxf apache-zookeeper-3.8.4-bin.tar.gz 

#移动
 mv apache-zookeeper-3.8.4-bin /usr/local/zookeeper

 #进入安装目录,创建文件
 cd /usr/local/zookeeper
 
 #创建目录
 mkdir data logs 

 #修改配置文件
 cd /usr/local/zookeeper/conf

 mv zoo_sample.cfg zoo.cfg
 
bash 复制代码
 #添加以下内容,这里假设你一定设置好了hostname
  dataDir =/usr/local/zookeeper/data
  dataLogDir=/usr/local/zookeeper/logs
  server.1=hadoop1:2888:3888
  server.2=hadoop2:2888:3888
  server.3=hadoop3:2888:3888

  #修改myid这里写1
bash 复制代码
#分发文件,然后去其他服务器上,修改相应的/usr/local/zookeeper/data/myid 文件为2 和3
xsync /usr/local/zookeeper

4、安装Hbase

4.1、解压文件

bash 复制代码
#解压文件
tar -zxf hbase-2.6.1-bin.tar.gz -C /usr/local/

4.2、hbase-env.sh

bash 复制代码
#指定java环境变量
export JAVA_HOME=/usr/local/java

#指定不使用自带的zk
export HBASE_MANAGES_ZK=false

4.3、backup-masters

bash 复制代码
vim backup-masters

#添加如下内容,指定备用master
hadoop2

4.4、配置hbase-site.xml

XML 复制代码
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

    <!--指定数据路径-->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop1:8020/hbase</value>
    </property>
    <!--是否分布-->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <!--zk的地址-->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
    </property>
    <!--zk数据路径-->
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/usr/local/zookeeper/data</value>
    </property>
    <!--指定端口-->
    <property>
        <name>hbase.master.port</name>
        <value>16000</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
  <!--解决shell报错-->
    <property>
      <name>hbase.wal.provider</name>
      <value>filesystem</value>
    </property>

</configuration>

4.5、regionservers

XML 复制代码
hadoop1
hadoop2
hadoop3

4.6、创建软连接

bash 复制代码
ln -s /usr/local/hadoop-3.4.0/etc/hadoop/core-site.xml /usr/local/hbase-2.6.1/conf/core-site.xml
ln -s /usr/local/hadoop-3.4.0/etc/hadoop/hdfs-site.xml /usr/local/hbase-2.6.1/conf/hdfs-site.xml

5、启动Hbase

5.1、分发数据

bash 复制代码
#分发数据
xsync /usr/local/hbase-2.6.1/

5.2、启动hdfs

bash 复制代码
#启动
/usr/local/hadoop-3.4.0/sbin/start-dfs.sh 

#停止
/usr/local/hadoop-3.4.0/sbin/stop-dfs.sh 

5.3、启动zk,每个节点都启动

bash 复制代码
#启动
/usr/local/zookeeper/bin/zkServer.sh start 

#停止
/usr/local/zookeeper/bin/zkServer.sh stop

5.4、启动hbase

bash 复制代码
#方式1

bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

#方式2

#启动
/usr/local/hbase-2.6.1/bin/start-hbase.sh

#停止
/usr/local/hbase-2.6.1/bin/stop-hbase.sh

5.5、HBase页面和HDFS

192.168.139.176:16010

6、编写脚本

bash 复制代码
#!/bin/bash

if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi

case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh hadoop1 "/usr/local/hadoop-3.4.0/sbin/start-dfs.sh"
        echo " --------------- 启动 zk集群 ---------------"
        ssh hadoop1 "/usr/local/zookeeper/bin/zkServer.sh start"
        ssh hadoop2 "/usr/local/zookeeper/bin/zkServer.sh start"
        ssh hadoop3 "/usr/local/zookeeper/bin/zkServer.sh start"
        echo " --------------- 启动 hbase ---------------"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/start-hbase.sh"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 hbase ---------------"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop master"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/stop-hbase.sh"

        ssh hadoop2 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop master"
        ssh hadoop2 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"
        ssh hadoop2 "/usr/local/hbase-2.6.1/bin/stop-hbase.sh"

        ssh hadoop3 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"

        echo " --------------- 关闭 zk ---------------"
        ssh hadoop1 "/usr/local/zookeeper/bin/zkServer.sh stop"
        ssh hadoop2 "/usr/local/zookeeper/bin/zkServer.sh stop"
        ssh hadoop3 "/usr/local/zookeeper/bin/zkServer.sh stop"

        echo " --------------- 关闭 hdfs ---------------"
        ssh hadoop1 "/usr/local/hadoop-3.4.0/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

chmod +x hbase.sh

二、HBase Shell操作

bash 复制代码
#进入shell
/usr/local/hbase-2.6.1/bin/hbase shell

#查看
list

#创建表
create 'user','info'

#插入数据
put 'user','1001','info:sex','male'
put 'user','1001','info:age','18'
put 'user','1002','info:name','Janna'
put 'user','1003','info:sex','female'
put 'user','1003','info:age','20'

#查看表
 scan 'user'

#表结构
describe 'user'

#修改
put 'user','1001','info:name','tom'
put 'user','1001','info:age','30'

#查看
get 'user','1001'
get 'user','1001','info:name'

#统计条数
count 'user'

#删除一行数据
deleteall 'user','1001'

#删除列
delete 'user','1002','info:sex'

#清空数据
truncate 'user'

#删除表,先禁用再删除
disable 'user'
drop 'user'


#获取配置信息
@shell.hbase.configuration.get("hbase.rpc.timeout")

#设置配置信息
@shell.hbase.configuration.setInt("hbase.rpc.timeout", 61010)

#预分隔表
create 't1','f',SPLITS => ['10','20','30']

#创建namespace
create_namespace 'my_ns'

#命名空间下创建表
create 'my_ns:my_table', 'user'

#修改ns
alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

#删除ns里的表
 disable 'my_ns:my_table'
 drop 'my_ns:my_table'

#删除ns
drop_namespace 'my_ns'

#退出
exit
相关推荐
vvw&9 分钟前
如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程
linux·运维·服务器·数据库·ubuntu·nosql
API_Zevin21 分钟前
如何优化亚马逊广告以提高ROI?
大数据·开发语言·前端·后端·爬虫·python·学习
我自是年少韶华倾负1 小时前
Mysql数据实时同步到Es上
数据库·mysql·elasticsearch
长安不及十里2 小时前
Spring Security 搭建一套基于 JWT 的 OAuth 2.0 架构
数据库·spring·架构
努力的小雨2 小时前
KES(KingBaseES)集群部署实战
数据库·后端
~小安同学2 小时前
Redis下载与安装
数据库
不惑_2 小时前
数字化转型 · OCR 技术如何打破效率瓶颈?
数据库·ocr
高铭杰2 小时前
Postgresql源码(139)vim直接修改postgresql表文件的简单实例
数据库·postgresql·vim
LabVIEW开发2 小时前
LabVIEW项目如何选择数据库
数据库·labview
子非鱼@Itfuture2 小时前
Spark是什么?Flink和Spark区别
java·大数据·数据仓库·python·flink·spark