Hbase+Zookeeper+hadoop使用过程遇到的问题

下载解压zookeeper-3.4.6
在/etc/profile中添加

$export ZOOKEEPER_INSTALL={zookeeper安装路径}

$export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

之后
source /etc/profile

在zookeeper安装目录下的conf子目录中新建:zoo.cfg
添加:

tickTime=2000  Zookeeper服务器心跳时间,单位毫秒

dataDir=/home/zookeeper/data # 数据持久化路径

clientPort=2181 # 连接端口

initLimit=10 # 投票选举新leader的初始化时间。

syncLimit=5 # LeaderFollower之间的最大响应时间单位,响应超过syncLimit*tickTimeLeader认为Follwer死掉,从服务器列表中删除Follwer

dataLogDir={安装路径/logs} 日志保存路径  这个要自己手动新建

server.1=namenode:2888:3888

server.2=datanode1:2888:3888

server.3=datanode2:2888:3888 最好用主机名


把zoo.cfg复制到每台机器的conf子目录里(其他机器也要先安装好zookeeper)

之后在每台机器的持久保存数据的路径(/home/zookeeper/data)里新建myid文件,里面写入n,n是zoo.cfg里
server.1, server.2, server.3对应的机器的1,2,3.....(比如主机写1,ubuntu02写2,ubuntu03写3)

在主机的zookeeper安装目录里执行
sh bin/zkServer.sh start
如果报错syntaxerror,expecting"fi",执行如下语句
sudo dpkg-reconfigure dash  
原因: 兼容性问题,因为linux将sh默认指向了dash,而不是bash

之后再start就可以了。
在其他机器上也 sh bin/zkServer.sh start
之后回到master,jps,发现zookeeper已启动,新增进程QuorumPeerMain,slaves上也增加了这个进程。

sh bin/zkServer.sh status  查看当前节点是否是 leader
Mode: follower  表示是跟从



----------------------------------------------------------------

安装Hbase:hadoop1.2.1对应的hbase版本是hbase0.98.0

master上解压,找到conf子目录,修改hbase-env.sh, hbase-site.xml, regionservers如下:

hbase-env.sh:
添加
export JAVA_HOME={jdk安装路径}
export HBASE_MANAGES_ZK=false

hbase-site.xml:
添加:
属性:名:hbase.master.maxclockskew    值:180000   //允许master和slave时间不同步在3分钟以内。

hbase.rootdir hdfs://ubuntuShirui:9000/hbase       //主机名与端口要和hadoop的core-site.xml里的HDFS路径位置相同。
hbase.master hdfs://ubuntuShirui:60000    //hbase master的ip+端口
hbase.distributed true   //确定分布式部署
hbase.zookeeper.property.clientPort 2181 //需要跟zookeeper的conf/zoo.cfg里clientPort的配置一致。
hbase.zookeeper.quorum ubuntuShirui,ubuntu02,ubuntu03   //所有机器的ip
hbase.zookeeper.property.dataDir /home/zookeeper/data       //与zoo.cfg中相同
regionservers:
添加
ubuntu02
ubuntu03

复制hbase安装目录下的所有,包括配置文件到其他slave机器上,更改hbase-env.sh里jdk的路径为合适值。

运行bin里的start-hbase.sh,查看jps里是否主机上运行了HMASTER,slave机器里运行了HRegionServer
如果是,则搭建成功。

HRegionServer无法启动的话,查看slave机器上regionserver相关的log信息,如果出现ClockOutOfSyncException字样的信息,说明需要手动同步。
用date --set= "04/18/14 10:00:00" 来设置一台机器的时间。同时3台机器执行就好。

之后用浏览器打开http://192.168.199.77:60010/master-status
如果显示hbase主机的状态,说明正常运行。
-----------------------------------
搭建完毕,现在可以进入bin的hbase shell调试,建表删表查询了。

关闭步骤:
关闭hbase:hbase的bin里:/stop-hbase.sh
关闭zookeeper:zookeeper的bin里:/zkServer.sh stop    (每台机器。权利不够时chmod ugo+x * -R)
关闭hadoop:stop-all.sh

----------------------------------------------
如果遇到进入shell之后HMaster自动挂掉的问题,并且master的log里出现“TableExistsException: hbase:namespace”字样,很可能是更换了Hbase的版本过后zookeeper还保留着上一次的Hbase设置,所以造成了冲突。
解决方案:

1.切换到zookeeper的bin目录;

2.执行$sh zkCli.sh

输入‘ls /’

4.输入‘rmr /hbase’

5.退出

重启hbase即可。

------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值