快速搭建HBase分布式集群

北战南征 提交于 2019-11-30 12:53:53

详尽的视频讲解,请查看该地址:https://edu.csdn.net/course/detail/9572

1.集群规划

1.1主机规划

前面的文章中,我们已经搭建了一个3节点的Hadoop分布式集群,为了保证数据的本地性,HBase集群与Hadoop集群共用节点。

 

1.2软件规划

前面hadoop集群使用的安装包为hadoop-2.6.0-cdh5.10.0.tar.gz,这里选择与Hadoop相兼容的hbase-1.2.0-cdh5.10.0.tar.gz安装包

 

1.3用户与用户组规划

安装HBase用户和用户组跟Hadoop集群保持一致即可。

 

1.4目录规划

安装HBase分布式集群,默认配置文件有一些默认的日志目录和进程目录,为了方便管理,我们规划好自己创建目录,便于统一管理。

 

2.HBase分布式集群安装

2.1下载

CDH版本:http://archive-primary.cloudera.com/cdh5/cdh/5/

这里选择下载hbase-1.2.0-cdh5.10.0.tar.gz版本的安装包,上传至主节点/home/hadoop/app目录。

2.2解压

使用如下命令解压HBase安装包:

 tar -zxvf hbase-1.2.0-cdh5.10.0.tar.gz 

2.3创建软连接

为了方便操作,使用如下命令创建软连接:

 ln -s hbase-1.2.0-cdh5.10.0 hbase 

2.4修改配置文件

2.4.1修改hbase-site.xml

在Hadoop中,如果用户需要增加HDFS的特定配置就要添加到hdfs-site.xml文件中。同样在HBase中,用户需要增加配置信息,就需要将配置添加到conf/hbase-site.xml文件中。

进程启动后,服务器会先读取hbase-default.xml文件,然后读取hbase-site.xml文件,hbase-site.xml的内容会覆盖hbase-default.xml中的内容。每次修改配置文件需要重启进程才能得到最新的配置。

<configuration>

<property>

<name>hbase.zookeeper.quorum</name>

<value>hadoop01,hadoop02,hadoop03</value>

<!--指定Zookeeper集群节点-->

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hadoop/data/zookeeper/zkdata</value>

<!--指定Zookeeper数据存储目录-->

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

<!--指定Zookeeper端口号-->

</property>

<property>

<name>hbase.rootdir</name>

<value>hdfs://mycluster/hbase</value>

<!--指定HBase在HDFS上的根目录-->

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

<!--指定true为分布式集群部署-->

</property>

</configuration>

2.4.2修改hbase-en.sh

HBase环境变量等信息需要在这个文件中配置,例如HBase守护进程的JVM启动参数。还可以设置HBase配置文件的目录、日志目录、进程pid文件的目录等。

 export JAVA_HOME=/home/hadoop/app/jdk export HBASE_LOG_DIR=/home/hadoop/data/hbase/logs export HBASE_PID_DIR=/home/hadoop/data/hbase/pids export HBASE_MANAGES_ZK=false 

2.4.3修改RegionServer

这个文件罗列了所有region服务器的主机名,它是纯文本文件,文件中的每一行都是主机名。HBase的运维脚本会依次迭代访问每一行来启动所有region服务器进程。

 hadoop01 hadoop02 hadoop03 

2.4.4修改backup-masters

这个文件配置HBase master的备用节点,它是纯文本文件,每行填写主机名即可。

 hadoop02 

2.5添加hdfs配置文件

因为HBase启动依赖hdfs配置信息,需要将hdfs配置文件拷贝到主节点hbase的conf目录下

 cp core-site.xml /home/hadoop/app/hbase-1.2.0-hadoop5.10.0/conf/ cp hdfs-site.xml /home/hadoop/app/hbase-1.2.0-hadoop5.10.0/conf/ 

2.6同步HBase安装目录

将主节点下的hbase安装目录分发到其他节点

 deploy.sh hbase-1.2.0-cdh5.10.0 /home/hadoop/app/ slave 

然后分别创建软链接

 ln -s hbase-1.2.0-cdh5.10.0 hbase 

2.7创建规划目录

在所有节点创建之前规划好的目录。

 runRemoteCmd.sh "mkdir -p /home/hadoop/data/hbase/logs" all 

3.HBase启动测试

3.1启动Zookeeper

集群依赖Zookeeper集群,所以需要先启动Zookeeper

 runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" all 

3.2启动hdfs

Hbase数据都存储在hdfs上,它依赖与hdfs集群,所以先启动hdfs。

 sbin/start-dfs.sh 

3.3启动hbase

通过如下命令启动hbase。

 bin/start-hbase.sh 

备注:也可以换一个节点启动HBase,在哪个节点启动HBase,哪个节点就是master角色。

3.4关闭hbase

运行以下命令可以停止HBase集群,一旦启动了这个脚本,我们将会看到一条描述集群正在停止的信息,该信息会周期性地打印”. ”字符。(这仅仅表明脚本正在运行,并不是进度的反馈或者隐藏有用的信息)

 $bin/stop-hbase.sh  stopping hbase....... 

关闭脚本大概需要几分钟完成,如果集群机器比较多,需要执行更长的时间。如果用户运行的是分布式集群,在关闭hadoop集群之前一定要确认hbase已经被正常关闭。

3.5 web 查看hbase

访问地址:http://master:60010查看hbase相关信息。

4.shell 测试运行HBase数据库

HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”。

HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建、删除及修改表, 还可以向表中添加数据、列出表中的相关信息等。

 bin/hbase shell 

#查看命令组

 hbase>help 

4.1 General操作

#查询HBase服务器状态

 hbase>status 

#查看HBase版本

 hbase>version 

4.2Ddl 操作

Ddl 操作(Data Definition Language)数据定义语言

#创建一个表

 hbase(main):002:0> create 'myhbase','cf' 

#查看HBase所有表

 hbase(main):003:0> list 

#描述表结构

 hbase(main):004:0> describe 'myhbase' 

#删除表

 hbase(main):005:0> disable 'myhbase' hbase(main):006:0> drop 'myhbase' hbase(main):007:0> list 

4.3Dml操作

Dml操作(Data Manipulation Language)是数据操纵语言

#创建一个表

 hbase(main):002:0> create ‘user','cf' 

#插入数据

 put 'user', '1', 'cf:name', 'xiaoli' put 'user', '1', 'cf:age', '24' put 'user', '1', 'cf:birthday', '1987-06-17' put 'user', '1', 'cf:company', 'alibaba' put 'user', '1', 'cf:contry', 'china' put 'user', '1', 'cf:province', 'zhejiang' put 'user', '1', 'cf:city', 'hangzhou' 

#扫描表所有数据

 hbase(main):011:0> scan 'user' 

#根据rowkey获取数据

 hbase(main):012:0> get 'user','1' 

#根据rowkey 更新一条数据

 hbase(main):013:0>put 'user', '1', 'cf:age', '28' hbase(main):014:0> get 'user','1' 

#查询表中总记录数据

 hbase(main):015:0> count 'user' 

#删除某一列数据

 hbase(main):016:0> delete 'user', '1', 'cf:age' hbase(main):017:0> get 'user','1' 

#清空hbase表数据

 hbase(main):018:0> truncate 'user' hbase(main):019:0> scan 'user' 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!