Hadoop+Zookeeper+Hbase 布署间问题及解决方法总结

    Hadoop和Hbase也好,Zookeeper也是,看着官方和别人写的过程去布的时候,也不知道是安装包的问题还是什么的,它们永远就会在本来挺顺利的中间环节用bug把你烦透,就好像明明知道某个数学题怎么解,就是没有办法用正确的解法解出,结果总和正解不一样;幸运的是,大部分都被不断的搜寻资料和摸爬滚打中解决。以下总结了部分遇到的问题,希望和我一样遇到这样问题的人可以因此受惠。

环境:Hadoop:2.7.2

          独立的Zookeeper:3.3.6

          Hbase:1.0.1

 

服务器:server01 master

             slave1    slave

             slave2    slave

    Hadoop

   一、在执行 hadoop  namenode -format 时遇到的报错、hadoop初始化时出现的报错

        Q:    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

        A:    提示本地库不存在,或本地库与当前操作系统的版本不一致,可以选择更新glibc库* 或者 下载一个hadoop-native-位数-版本号.tar包 解压到 hadoop/lib/native下,问题解决。

        下载地址(参考):http://dl.bintray.com/sequenceiq/sequenceiq-bin/

*也有另外一种说法指出该 WARN 提示可以忽略,并不会影响正常使用(该 WARN 可以通过编译 Hadoop 源码解决)。                   

                                                                        ——http://www.powerxing.com/install-hadoop/

        Q:    Unable to obtain hostName java.net.UnknownHostException:server01:server01

        A:    Hadoop通过hostname命令得到的主机名是server01,但在/etc/hosts文件中进行映射时,没有找到server01,在/etc/hosts中加入一行对应的 IP地址 主机名 即可

    二、启动hadoop后启动hbase,报错,但成功进入hbase(main):001:0> 界面

        Q:    ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 4 attempts

                2016-03-29 14:55:58,988 WARN  [main] zookeeper.ZKUtil: hconnection-0xba0381a0x0, quorum=localhost:2181, baseZNode=/hbase Unable to set watcher on znode (/hbase/hbaseid)

                org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

                2016-03-29 14:55:58,996 ERROR [main] zookeeper.ZooKeeperWatcher: hconnection-0xba0381a0x0, quorum=localhost:2181, baseZNode=/hbase Received unexpected KeeperException, re-throwing exception

                org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

         A:    查询得知该错误由hbase-site.xml配置错误导致,在hbase-site.xml中配置上正确的hbase缓存目录(hbase.rootdir)即可。

        上述报错解决后,执行hbase shell时报错改变,但也成功进入hbase(main):001:0> 界面

         Q:    SLF4J: Class path contains multiple SLF4J bindings.

                SLF4J: Found binding in [jar:file:/usr/service/pinpoint-1.5.1/quickstart/hbase/hbase-1.0.1/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]

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

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

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

          A:    查询得知是发生jar包冲突了:

                 分别为:/usr/service/pinpoint-1.5.1/quickstart/hbase/hbase-1.0.1/lib/slf4j-log4j12-1.7.7.jar和/usr/service/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar 选择一个删除后报错消失。

          

        Zookeeper

    一、部署zookeeper时遇到的报错

        Q:    运行 zookeeper/bin/zkServer.sh status 后出现Error contacting service.It is probably not running.但使用 netstat -tnl 可以找到默认zookeeper的端口2181,zookeeper/bin/zkServer.sh stop也能执行。

        A:时间不同步;故在server01上布了NTP服务,slave1和slave2都设置server01为ntpserver,错误排除。(就算具体的时间很接近也不行,必须布上NTP才会乖乖开始选举leader)

 

        Hbase

      一、Hadoop的hdfs运行正常,Zookeeper正常启动,但在其基础上运行Hbase时,刚开始启动良好,但十几秒后HMaster和HRegionServer自动退出,查看Hbase的log,发现报错。(HMaster出现一会儿就消失了/挂了)

        Q:    keeperErrorCode = ConnectionLoss for /hbase 或者/和 Hbase:Session 0x0 for server null,unexpected error,closing socket connection and attempting reconnect

        A:    在删除/etc/hosts中的 127.0.0.1 localhost 后报错消失。

 

        Q:    在Hbase的master中的log中找到了报错内容,没有记录下来,但大致意思为无法连接zookeeper的端口(2181端口)。

         A:    SELINUX或者是iptables的问题,关闭它们*或者做策略后 按情况重启,问题消失,Hadoop&Hbase均可成功启动。

                *SELINUX关闭:

                    永久:修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

                    临时:使用命令setenforce 0

                    如果不想重启,那就两个都执行一下

                iptables关闭:

                    servise iptables stop + chkconfig iptables off 

                    然后防火墙再也不会阻挡你~(仅限实验中,生产环境万万不可)

 

                *glibc库的安装之前需要安装gcc套件,不然会报错

转载于:https://my.oschina.net/kaseai/blog/660094

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值