1. 程式人生 > >關於hbase分散式環境中遇到的問題---HMaster 啟動後自動關閉

關於hbase分散式環境中遇到的問題---HMaster 啟動後自動關閉

最近在搭建hbase分散式環境中遇到的問題,出現這個問題我也去網上參考別人是怎麼解決的,但是沒有解決我的問題,我不斷的去看日誌為什麼會出現這個,後來我發現日誌不斷提示異常,我就想是不是和這個有關係,嘗試了一下,解決了我的問題,話不多說,先上日誌:

2018-03-26 21:32:36,148 FATAL [master:hadoop0:60000] master.HMaster: Unhandled exception. Starting shutdown.

java.net.ConnectException: Call From hadoop0.com/192.168.10.250 to hadoop0.com:8020 failed on connection exception: java.net.ConnectException: Connection refused; 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.$Proxy14.setSafeMode(Unknown Source)
        at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.setSafeMode(ClientNamenodeProtocolTranslatorPB.java:639)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
        at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
        at com.sun.proxy.$Proxy15.setSafeMode(Unknown Source)
        at org.apache.hadoop.hdfs.DFSClient.setSafeMode(DFSClient.java:2364)
        at org.apache.hadoop.hdfs.DistributedFileSystem.setSafeMode(DistributedFileSystem.java:1007)
        at org.apache.hadoop.hdfs.DistributedFileSystem.setSafeMode(DistributedFileSystem.java:991)
        at org.apache.hadoop.hbase.util.FSUtils.isInSafeMode(FSUtils.java:446)
        at org.apache.hadoop.hbase.util.FSUtils.waitOnSafeMode(FSUtils.java:894)

以上就是我在配置過程中出現的問題,我配置的是Hadoop HA

。前提:hbase裡的lib包必須和自己的hadoop的版本保持一致

嘗試過的方案:

1、不斷重啟hadoop叢集、hbase叢集;

2、刪除zk、hadoop、hbase裡的日誌零時檔案等;

3、複製hadoop裡的core-site.xml和hdfs-site.xml到hbase裡conf中;

4、複製zk裡的zoo.cfg到hbase裡conf中;

以上都要重新啟動,嘗試過無效,

後來看日誌報的異常聯想到自己是ha的配置,故想到hbase-site.xml中的

<property >
<name>hbase.rootdir</name>
<value>hdfs://hadoop0.com:8020/hbase</value>

</property>

要和core-site.xml中的

<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>

</property>

需要保持一致,故做了如下的修改

<property >
<name>hbase.rootdir</name>
<value>hdfs://ns1:8020/hbase</value>

</property>

啟動hbase之後,發現啟動正常了。

希望大家看了之後指出不足指出,或者有疑問的地方,大家可以一起討論,不要噴就好了!