1. 程式人生 > >Hbase啟動以後自動關閉

Hbase啟動以後自動關閉

參考文獻:https://blog.csdn.net/embracejava/article/details/53189123

搭建好hbase叢集並啟動集群后發現,HMaster在啟動後幾秒內自動關閉,HRegionServer執行正常。

使用jps,剛開始正常出現Hmaster,再使用一次jps,Hmaster消失。
開啟日誌檔案:

2018-12-03 20:06:00,801 INFO  [master/mini4/192.168.48.136:16020] client.ZooKeeperRegistry: ClusterId read in ZooKeeper is null
2018
-12-03 20:06:00,807 FATAL [mini4:16020.activeMasterManager] master.HMaster: Failed to become active master java.net.ConnectException: Call From mini4/192.168.48.136 to mini4:8020 failed on connection exception: java.net.ConnectException: 拒絕連線; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused at sun.
reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.
reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:783) at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:730) at org.apache.hadoop.ipc.Client.call(Client.java:1415) at org.apache.hadoop.ipc.Client.call(Client.java:1364) at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206) at com.sun.proxy.$Proxy16.setSafeMode(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

錯誤分析:
從上面的日誌可以看出,在連線hadoop1:8020時出錯,我們知道8020是hdfs的預設埠,但是我們在配置hadoop叢集時在core-site.xml中將hdfs的預設埠改為了9000:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://mini4:9000/</value>
</property>

再看cort-hdfs.xml

<configuration>
    <!-- 指定hbase在HDFS上儲存的路徑 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://mini4/hbase</value>
    </property>
</configuration>

不難發現,這時候我們並沒有指定hdfs的埠,因此,在hbase啟動後它會去找hdfs的預設埠8020,於是就導致了上面的錯誤。

解決方案:
在配置hbase.rootdir屬性時顯式指定hdfs的埠為9000,配置檔案修改如下:

<configuration>
    <!-- 指定hbase在HDFS上儲存的路徑 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://mini4:9000/hbase</value>
    </property>
</configuration>

接下來,重啟hbase,問題解決。