hbase+zookeeper集群搭建


继上一篇的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的主机名和端口一样

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop1:9000/hbase</value>
</property>

 

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

 

<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop2,hadoop3,hadoop4</value>
</property>

 

<property>
<name>hbase.zookeeper.sission.timeout</name>
<value>60000</value>
</property>

 

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

 

<property>
<name>hbase.master</name>
<value>hadoop1</value>
</property>

 

<property>
<name>hbase.regionserver.lease.period</name>
<value>60000</value>
</property>

<property>
<name>hbase.rpc.timeout</name>
<value>60000</value>
</property>

</configuration>
修改regionservers文件

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

hadoop1
hadoop2
hadoop3
hadoop4

修改hbase-default.xml文件

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

  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>

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

做完上述操作后,可以将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进行检查。
这里说一下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吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值