【原创】hbase+zookeeper集群搭建

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 继上一篇的hadoop集群搭建的基础上,再把hbase和zookeeper(独立部署,不用hbase自带的。因为测试中发现自带的zookeeper挂了一个以后,数据抛出异常)搭建说一下吧! hbase版本:0.92.1.tar.gz,在hadoop1上部署master和slave,在其余的节点上部署slave,这样就形成了一个hbase集群。
继上一篇的hadoop集群搭建的基础上,再把hbase和zookeeper(独立部署,不用hbase自带的。因为测试中发现自带的zookeeper挂了一个以后,数据抛出异常)搭建说一下吧!
hbase版本:0.92.1.tar.gz,在hadoop1上部署master和slave,在其余的节点上部署slave,这样就形成了一个hbase集群。
zookeeper版本:3.3.5.tar.gz,在hadoop2、hadoop3、hadoop4上部署zookeeper。
主机名         IP地址             用途
hadoop1      192.168.3.65         master、regionserver
hadoop2      192.168.3.66         regionserver、zookeeper
hadoop3      192.168.3.67         regionserver、zookeeper
hadoop4      192.168.3.64         regionserver、zookeeper
下载hbase和zookeeper源码包,也将其放到/root目录下即可!

链接:http://labs.renren.com/apache-mirror/hbase/

[root@hadoop1 ~] # tar zxvf  hbase-0.92.1.tar.gz

[root@hadoop1 ~] # cp -r  hbase-0.92.1 hbase

配置hbase的环境变量:

/root/hbase/conf目录下的hbase-env.sh中添加Hbase需要的环境变量。如下:

下面第四行注意这个值为false时,表示启动的是独立的zookeeper。而配置成true则是hbase自带的zookeeper。

export JAVA_HOME=/usr/java/jdk1.6.0_14
export HBASE_HOME=/root/hbase
export PATH=$PATH:/root/hbase/bin
export HBASE_MANAGES_ZK=false
export HADOOP_HOME=/root/hadoop

修改hbase-site.xml文件

注意hbase.rootdir必须和你的namenode里面的hdfs的主机名和端口一样



hbase.rootdir
hdfs://hadoop1:9000/hbase

 


hbase.cluster.distributed
true

 


hbase.zookeeper.quorum
hadoop2,hadoop3,hadoop4

 


hbase.zookeeper.sission.timeout
60000

 


hbase.zookeeper.property.clientPort
2222

 


hbase.master
hadoop1

 


hbase.regionserver.lease.period
60000


hbase.rpc.timeout
60000


修改regionservers文件

通常部署master的机器上不就部署slave了,我这里情况比较特殊。

hadoop1
hadoop2
hadoop3
hadoop4

修改hbase-default.xml文件

注意只修改hbase.rootdir这项,文件位置:/root/hbase/src/main/resources目录下

 
    hbase.rootdir
    hdfs://hadoop1:9000/hbase

注意事项:如果你的版本和我不一样,hbase启动后查看表失败,可以将hadoopjar拷贝至hbaselib目录下,这一步很关键!我这个版本不需要拷贝!

做完上述操作后,可以将hadoop1上的hbase目录拷贝到hadoop2、hadoop3、hadoop4三台就机器上,注意保证目录结构一致。(步骤略)

单独部署zookeeper

下载相应的版本后上传到hadoop2机器的/root目录下即可!

[root@hadoop2 ~] # tar zxvf  zookeeper-3.3.5.tar.gz
[root@hadoop2 ~] # cp  -r zookeeper-3.3.5 zookeeper
[root@hadoop2 ~] # cp  zookeeper/conf/zoo_sample.cfg zoo.cfg
修改zoo.cfg如下图所示,我这里启动3个zookeeper
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/root/zookeeper/zookeeper-data
# the port at which the clients will connect
clientPort=2222
server.1=hadoop2:2888:3888
server.2=hadoop3:2888:3888
server.3=hadoop4:2888:3888

[root@hadoop2 ~] # mkdir /root/zookeeper/zookeeper-data
再把hadoop1上的zookeeper目录同步到hadoop3、hadoop4机器上(步骤略 )
最后记得在部署zookeeper的节点上的/root/zookeeper/zookeeper-data的目录下新建一个myid文件里写上zoo.cfg文件对应的server号码, hadoop2写1,hadoop3写2,hadoop4写3,这样基本就完成了zookeeper的配置了。
下面准备启动zookeeper。(前提是hadoop已经启动)
在每个部署zookeeper节点的机器上执行如下命令
[root@hadoop2 ~] # zookeeper/bin/zkServer.sh start
[root@hadoop3 ~] # zookeeper/bin/zkServer.sh start
[root@hadoop4 ~] # zookeeper/bin/zkServer.sh start
启动完成后可以看看哪个节点的zookeeper是leader?哪两个是follower?
分别执行如下命令检查
[root@hadoop3 ~]# zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@hadoop4 ~]# zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@hadoop2 ~]# zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Mode: follower
再查看zookeeper的状态
[root@hadoop2 ~]# echo ruok | nc 192.168.3.66 2222
imok
[root@hadoop2 ~]# echo ruok | nc 192.168.3.67 2222
imok
[root@hadoop2 ~]# echo ruok | nc 192.168.3.64 2222
imok
最后输入jps命令查看一下部署zookeeper节点上的QuorumPeerMain进程是否存在?存在则说明OK,或者我们用浏览器查看,点击zk.dump进行检查。
img_f1eb1c4e275be0c86b8f47428898e9b0.jpg
这里说一下zookeeper的功能吧!简单说是协调服务的,我这里部署了3个zookeeper,follower挂了一个对集群没任何影响。leader挂了它会自动从存活的follower中再选举出一个leader出来。所以不必担心。还有一个特点是hbase的master单节点的问题。我们可以在部署datanode的节点上手动启动一个备用的master,当hbase的master挂了,它也会通过zookeeper来通知备用的master接替任务。好了,就说到这,研究的也不深,高手见笑了!
最后我们来启动hbase吧!
在hadoop1节点上执行如下命令:
[root@hadoop1 ~] # hbase/bin/start-hbase.sh
我们可以输出的内容,先启动的是master再启动slave。
要关闭的hbase则执行
[root@hadoop1 ~] # hbase/bin/stop-hbase.sh
最后检查hbase是否正常?
浏览器查看 http://192.168.3.65:60010,图如上面的截图,或者部署slave的节点上输入jsp查看一下是否有regionserver进程呢?更或者进入到hbase shell中查看表或者创建表
[root@hadoop1 ~] # hbase/bin/hbase shell
进去后执行list看是否会报错哈!再通过create创建表试试?这里就不班门弄斧了!欢迎大家去百度或者google吧!

 
 

 
 
 
 
 


 


 


 

 

 
相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
存储 Java Linux
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群
72 1
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
|
1月前
|
消息中间件 存储 Kafka
Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
140 1
|
5月前
|
消息中间件 数据可视化 Kafka
消息中间件系列教程(21) -Kafka- 集群搭建(自带Zookeeper)
消息中间件系列教程(21) -Kafka- 集群搭建(自带Zookeeper)
67 0
|
5月前
|
算法 Linux
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
56 0
|
5月前
|
Java Linux
Zookeeper集群搭建
Zookeeper集群搭建
|
2月前
|
网络协议 中间件 数据库
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
88 0
|
2月前
|
网络协议
Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
34 0
|
3月前
|
Java
搭建Zookeeper集群的搭建
搭建Zookeeper集群的搭建
30 1
|
3月前
|
安全 Java API
Zookeeper(持续更新) VIP-02 Zookeeper客户端使用与集群特性
2,/usr/local/data/zookeeper-3,/usr/local/data/zookeeper-4,在每个目录中创建文件。创建四个文件夹/usr/local/data/zookeeper-1,/usr/local/data/zookeeper-Follower:只能处理读请求,同时作为 Leader的候选节点,即如果Leader宕机,Follower节点。己对外提供服务的起始状态。E: 角色, 默认是 participant,即参与过半机制的角色,选举,事务请求过半提交,还有一个是。
|
3月前
|
缓存 Java API
Zookeeper(持续更新) VIP-02 Zookeeper客户端使用与集群特性
Curator 是一套由netflix 公司开源的,Java 语言编程的 ZooKeeper 客户端框架,Curator项目是现在ZooKeeper 客户端中使用最多,对ZooKeeper 版本支持最好的第三方客户端,并推荐使用,Curator 把我们平时常用的很多 ZooKeeper 服务开发功能做了封装,例如 Leader 选举、分布式计数器、分布式锁。这就减少了技术人员在使用 ZooKeeper 时的大部分底层细节开发工作。

热门文章

最新文章