【云计算】HBase环境搭建之全分布模式
小标 2018-12-05 来源 : 阅读 813 评论 0

摘要:本文主要向大家介绍了【云计算】HBase环境搭建之全分布模式,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】HBase环境搭建之全分布模式,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。


HBase环境搭建有三种方式:1.本地模式:只需要一个节点(只有HMaster,没有HRegionServer),不需要集成ZooKeeper,数据存储在本地文件系统上;2.伪分布模式:只需要一个节点(HMaster和HRegionServer在同一个节点上),需要集成ZooKeeper,数据存储在HDFS上;3.全分布模式:至少需要3个节点(一个HMaster节点和至少2个HRegionServer节点),需要集成ZooKeeper,数据存储在HDFS上。本节先来介绍HBase伪分布模式的环境搭建过程。


集群环境介绍:


master 192.168.112.10


slave1 192.168.112.11


slave2 192.168.112.12


安装包:zookeeper-3.4.11:https://pan.baidu.com/s/1_6TQRcybzU4PDY_-oOREmA


1.搭建Hadoop全分布环境


Hadoop全分布模式的搭建过程请参看文章:https://blog.csdn.net/qq_28286027/article/details/82973196


2.搭建ZooKeeper伪分布环境


Zookeeper有两种常见的搭建方式:1.standalone方式;2.集群方式。这两者的区别是:


standalone方式只需要一个Zookeeper节点;集群方式至少需要3个节点(一个leader,2个follower); standalone方式一旦Zookeeper节点宕机,Spark HA就不能使用了; 集群方式如果leader宕机,Zookeeper内部会从follower中选举出一个新的leader,可以对HA提供更有效的保障。


这里来介绍Zookeeper的standalone方式的搭建过程:


1.上传Zookeeper安装包


/usr/local/src/zookeeper-3.4.11


2.解压Zookeeper安装包


tar -xvf zookeeper-3.4.11.tar


3.配置Zookeeper环境变量:


[root@master src]# vim /root/.bash_profile


#zookeeper


ZOOKEEPER_HOME=/usr/local/src/zookeeper-3.4.11


export ZOOKEEPER_HOME


PATH=$ZOOKEEPER_HOME/bin:$PATH


export PATH


及时生效:[root@master tools]# source /root/.bash_profile


4.配置Zookeeper参数


4.1创建Zookeeper保存数据的目录:


/usr/local/src/zookeeper-3.4.11/tmp


4.2编辑Zookeeper的配置文件zoo.cfg:


[root@master conf]# cp zoo_sample.cfg zoo.cfg


[root@master conf]# vim zoo.cfg


#dataDir=/tmp/zookeeper


dataDir=/usr/local/src/zookeeper-3.4.11/tmp


server.1=master:2888:3888


4.3启动zookeeper


[root@master conf]# zkServer.sh start


ZooKeeper JMX enabled by default


Using config: /usr/local/src/zookeeper-3.4.11/bin/../conf/zoo.cfg


Starting zookeeper ... STARTED


[root@master conf]# jps


2709 SecondaryNameNode


2522 NameNode


3403 QuorumPeerMain


3420 Jps


2863 ResourceManager


[root@master conf]#


3.搭建HBase全分布环境(注意:这里需要Java的版本在1.8以上)


1.下载HBase安装包


可以从上面的安装介质链接中下载HBase安装包,或者去HBase官网hbase.apache.org下载最新HBase安装包,然后使用WinSCP工具将下载好的安装包上传至master节点的/usr/local/src目录下。


/usr/local/src/hbase-2.0.1


2.解压:


tar -zxvf hbase-2.0.1-bin.tar.gz


3.配置HBase环境变量(三台机器都做一遍)


root@master tools]# cd /usr/local/src/hbase-2.0.1/


[root@master hbase-2.0.1]# pwd


/usr/local/src/hbase-2.0.1


[root@master hbase-2.0.1]# vim /root/.bash_profile


HBASE_HOME=/usr/local/src/hbase-2.0.1


export HBASE_HOME


PATH=$HBASE_HOME/bin:$PATH


export PATH


[root@master hbase-2.0.1]# source /root/.bash_profile


4.配置HBase配置文件


配置前启动Hadoop全分布集群:


[root@master sbin]# ./start-all.sh,启动后在HDFS上新建一个目录用来存储HBase的数据:


[root@master ~]# hdfs dfs -mkdir /hbase


4.1进入$HBASE_HOME/conf目录,配置hbase-env.sh:


[root@master conf]# vim hbase-env.sh


# The java implementation to use. Java 1.8+ required.


# export JAVA_HOME=/usr/java/jdk1.8.0/


export JAVA_HOME=/root/trainings/jdk1.8.0_144


export HBASE_MANAGES_ZK=true(使用hbase自带的zookeeper)


4.2配置hbase-site.xml


[root@localhost conf]# vim hbase-site.xml


hbase.rootdir


hdfs://master:9000/hbase


hbase.cluster.distributed


true


hbase.zookeeper.quorum


master


dfs.replication


2


4.3配置regionservers


[root@master conf]# vim regionservers


slave1


slave2


4.4将配置好的HBase目录分发给从节点


[root@master src]# scp -rp hbase-2.0.1 slave1:/usr/local/src/


[root@master src]# scp -rp hbase-2.0.1 slave2:/usr/local/src/


5.启动HBase集群


[root@master src]# start-hbase.sh


SLF4J: Class path contains multiple SLF4J bindings.


SLF4J: Found binding in [jar:file:/usr/local/src/hbase-2.0.1/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: Found binding in [jar:file:/usr/local/src/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: See //www.slf4j.org/codes.html#multiple_bindings for an explanation.


SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]


SLF4J: Class path contains multiple SLF4J bindings.


SLF4J: Found binding in [jar:file:/usr/local/src/hbase-2.0.1/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: Found binding in [jar:file:/usr/local/src/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: See //www.slf4j.org/codes.html#multiple_bindings for an explanation.


SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]


master: running zookeeper, logging to /usr/local/src/hbase-2.0.1/bin/../logs/hbase-root-zookeeper-master.out


running master, logging to /usr/local/src/hbase-2.0.1/logs/hbase-root-master-master.out


slave1: running regionserver, logging to /usr/local/src/hbase-2.0.1/bin/../logs/hbase-root-regionserver-slave1.out


slave2: running regionserver, logging to /usr/local/src/hbase-2.0.1/bin/../logs/hbase-root-regionserver-slave2.out


[root@master src]#


[root@master src]# jps


2709 SecondaryNameNode


2522 NameNode


3930 Jps


3693 HQuorumPeer


2863 ResourceManager


3759 HMaster


[root@slave1 ~]# jps


2288 NodeManager


2180 DataNode


2505 HRegionServer


2638 Jps


[root@slave2 ~]# jps


2657 Jps


2500 HRegionServer


2262 NodeManager


2153 DataNode


可以看到,HBase全分布模式启动之后HMaster进程和HRegionServer进程在位于不同的节点上。


可以在网页上监控HBase的状态信息:端口号16010


使用HBase shell


使用hbase shell命令可以进入HBase命令行模式:


[root@master ~]# hbase shell


2018-07-16 23:32:59,553 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable


HBase Shell


Use "help" to get list of supported commands.


Use "exit" to quit this interactive shell.


Version 2.0.1, r987f7b6d37c2fcacc942cc66e5c5122aba8fdfbe, Wed Jun 13 12:03:55 PDT 2018


Took 0.0020 seconds


hbase(main):001:0> create 'tblStudent','Info','Grade'


Created table tblStudent


Took 1.8144 seconds


=> Hbase::Table - tblStudent


hbase(main):002:0> put 'tblStudent','stu001','Info:name','Tom'


Took 0.1655 seconds


hbase(main):003:0> put 'tblStudent','stu001','Info:age','25'


Took 0.0129 seconds


hbase(main):004:0> put 'tblStudent','stu001','Grade:chinese','88'


Took 0.0053 seconds


hbase(main):005:0> put 'tblStudent','stu001','Grade:math','90'


Took 0.0080 seconds


hbase(main):006:0> put 'tblStudent','stu002','Info:name','Jack'


Took 0.0042 seconds


hbase(main):007:0> put 'tblStudent','stu002','Info:age','23'


Took 0.6333 seconds


hbase(main):008:0> put 'tblStudent','stu002','Grade:english','78'


Took 0.0457 seconds


hbase(main):009:0> put 'tblStudent','stu002','Grade:math','60'


Took 0.0108 seconds


hbase(main):010:0> scan 'tblStudent'


ROW COLUMN+CELL


stu001 column=Grade:chinese, timestamp=1531755222379, value=88


stu001 column=Grade:math, timestamp=1531755227442, value=90


stu001 column=Info:age, timestamp=1531755216220, value=25


stu001 column=Info:name, timestamp=1531755211017, value=Tom


stu002 column=Grade:english, timestamp=1531755253054, value=78


stu002 column=Grade:math, timestamp=1531755258620, value=60


stu002 column=Info:age, timestamp=1531755246729, value=23


stu002 column=Info:name, timestamp=1531755232841, value=Jack


2 row(s)


Took 0.0607 seconds


hbase(main):011:0> quit


使用quit命令退出HBase命令行环境。


查看HDFS上/hbase目录下产生的数据:


[root@slave2 ~]# hdfs dfs -ls /hbase


Found 12 items


drwxr-xr-x - root supergroup 0 2018-10-06 01:16 /hbase/.hbck


drwxr-xr-x - root supergroup 0 2018-10-08 22:53 /hbase/.tmp


drwxr-xr-x - root supergroup 0 2018-10-08 22:53 /hbase/MasterProcWALs


drwxr-xr-x - root supergroup 0 2018-10-08 22:53 /hbase/WALs


drwxr-xr-x - root supergroup 0 2018-10-07 13:02 /hbase/archive


drwxr-xr-x - root supergroup 0 2018-10-06 01:16 /hbase/corrupt


drwxr-xr-x - root supergroup 0 2018-10-06 01:16 /hbase/data


-rw-r--r-- 2 root supergroup 42 2018-10-06 01:16 /hbase/hbase.id


-rw-r--r-- 2 root supergroup 7 2018-10-06 01:16 /hbase/hbase.version


drwxr-xr-x - root supergroup 0 2018-10-06 01:16 /hbase/mobdir


drwxr-xr-x - root supergroup 0 2018-10-08 22:53 /hbase/oldWALs


drwx--x--x - root supergroup 0 2018-10-06 01:16 /hbase/staging


停止HBase全分布模式


[root@master src]# stop-hbase.sh


stopping hbase.................


SLF4J: Class path contains multiple SLF4J bindings.


SLF4J: Found binding in [jar:file:/usr/local/src/hbase-2.0.1/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: Found binding in [jar:file:/usr/local/src/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: See //www.slf4j.org/codes.html#multiple_bindings for an explanation.


SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]


SLF4J: Class path contains multiple SLF4J bindings.


SLF4J: Found binding in [jar:file:/usr/local/src/hbase-2.0.1/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: Found binding in [jar:file:/usr/local/src/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]


SLF4J: See //www.slf4j.org/codes.html#multiple_bindings for an explanation.


SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]


master: running zookeeper, logging to /usr/local/src/hbase-2.0.1/bin/../logs/hbase-root-zookeeper-master.out


master: stopping zookeeper.


[root@master src]# jps


2709 SecondaryNameNode


4486 Jps


2522 NameNode


2863 ResourceManager


[root@master src]#


[root@slave1 ~]# jps


2288 NodeManager


2180 DataNode


2751 Jps


[root@slave2 ~]# jps


3378 Jps


2262 NodeManager


2153 DataNode


至此,HBase全分布模式环境搭建完成!


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程