Hortonworks HDP Sandbox 2.2 修复HBase无法启动的问题,hortonworkshbase


在最新发布的Hortonworks HDP Sandbox 2.2版本上,HBase启动时会报错,原因是新版本的HBase的存放路径与过去有所不同,而启动脚本依然沿用了旧有的命令行启动HBase,导致无法找到hbase-daemond.sh文件,进而启动失败。看得出,2.2版本的Sandbox发布有些仓促,这样明显而简单的错误是不应该出现的。下面来说一下如何修复这个问题:本文原文出处: http://blog.csdn.net/bluishglc/article/details/42110429 严禁任何形式的转载,否则将委托CSDN官方维护权益!

负责启动HBase的命令位于/usr/lib/hue/tools/start_scripts/start_deps.mf这个文件中的,首先,我们做一个该文件的备份:

cp /usr/lib/hue/tools/start_scripts/startup_script /usr/lib/hue/tools/start_scripts/startup_script.bak
然后:

vim /usr/lib/hue/tools/start_scripts/startup_script

找到hbase_master: postgresql zookeeper开始的行,如下:

hbase_master: postgresql zookeeper
        $(call colorized,\
                hbase master, \
                su - hbase -c "/usr/hdp/current/hbase/bin/hbase-daemon.sh --config /etc/hbase/conf start master",\
                sleep 25,\
                /var/log/hbase/hbase-hbase-master-*.log)

hbase_stargate: postgresql hbase_master
        $(call colorized,\
                hbase stargate, \
                su -l hbase -c "/usr/hdp/current/hbase/bin/hbase-daemon.sh start rest -p 60080",\
                true,\
                /var/log/hbase/hbase-hbase-rest-*.log)

hbase_thrift: postgresql hbase_master
        $(call colorized,\
                hbase thrift, \
                su -l hbase -c "/usr/hdp/current/hbase/bin/hbase-daemon.sh start thrift",\
                true,\
                /var/log/hbase/hbase-hbase-rest-*.log)

hbase_regionservers: hbase_master
        $(call colorized,\
                hbase regionservers, \
                su -l hbase -c "/usr/hdp/current/hbase/bin/hbase-daemon.sh --config /etc/hbase/conf start regionserver",\
                sleep 5,\
                /var/log/hbase/hbase-hbase-regionserver-*.log)

我们可以看到所有启动HBase相关服务的命令都是使用的/usr/hdp/current/hbase/bin/hbase-daemon.sh这个文件,而新版本中,在/usr/hdp/current下已经没有hbase这个目录了,取而代之的是hbase-master,hbase-regionserver,hbase-master,所以我们需要根据启动的服务类型,选择对应目录下的hbase-daemond.sh。以下是修改之后的内容:

hbase_master: postgresql zookeeper
        $(call colorized,\
                hbase master, \
                su - hbase -c "/usr/hdp/current/hbase-master/bin/hbase-daemon.sh --config /etc/hbase/conf start master",\
                sleep 25,\
                /var/log/hbase/hbase-hbase-master-*.log)

hbase_stargate: postgresql hbase_master
        $(call colorized,\
                hbase stargate, \
                su -l hbase -c "/usr/hdp/current/hbase-client/bin/hbase-daemon.sh start rest -p 60080",\
                true,\
                /var/log/hbase/hbase-hbase-rest-*.log)

hbase_thrift: postgresql hbase_master
        $(call colorized,\
                hbase thrift, \
                su -l hbase -c "/usr/hdp/current/hbase-client/bin/hbase-daemon.sh start thrift",\
                true,\
                /var/log/hbase/hbase-hbase-rest-*.log)

hbase_regionservers: hbase_master
        $(call colorized,\
                hbase regionservers, \
                su -l hbase -c "/usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh --config /etc/hbase/conf start regionserver",\
                sleep 5,\
                /var/log/hbase/hbase-hbase-regionserver-*.log)



相关内容