hadoop,hbase,zookeeper錯誤日誌及部分解決辦法(1)
沒有全部遇到過。也沒有經過測試。收集至此,以備以後遇到問題作為參考之用。
hadoop-0.20.2 & hbase-0.90.1叢集啟動錯誤問題解決:
問題如下:org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:364)at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:113)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:215)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:177)
……………………………………
2011-01-21 00:14:41,550 INFO org.apache.hadoop.hbase.master.HMaster: Aborting
初步認為是hadoop-0.20.2 & hbase-0.90.1版本問題造成的,hbase-0.90.1/lib中hadoop-core-0.20-append- r1056497.jar使用的hadoop-core-0.20,因此將其替換為hadoop-0.20.2-core.jar即可
Hbase重啟之後就無法啟動的現象:
當我們使用Hbase 0.20.2的時候,遇到了2個奇怪的問題。
我們使用了數臺機器構建了一個叢集,並且按照Hadoop/Hbase的"Getting Started"安裝配置了Hadoop和Hbase。之後能夠正常啟動Hadoop和Hbase,並且建立table和插入資料。
不過,當我們訪問Master的頁面時: http://10.37.17.252:60010/master.jsp ,我們發現了第一個問題:在regionserver區域,出現了2個127.0.0.1的regionserver,但是我們並沒有在conf/regionservers將master設定為regionserver:
Region ServersAddress Start Code Load
127.0.0.1:60030 1263383321075 requests=0, regions=0, usedHeap=0, maxHeap=0
127.0.0.1:60030 1263383321096 requests=0, regions=0, usedHeap=0, maxHeap=0
………………………………
但是,雖然出現了以上的怪現象,但是hbase似乎仍然能夠正常工作。只是,當我們打算重啟hbase的時候,我們發現了第二個問題:我們嘗試執行bin/stop-hbase.sh,之後,又執行啟動hbase的指令碼:bin/ start-hbase.sh,這一次,當我們訪問master頁面的時候http://10.37.17.252:60010/master.jsp,出現瞭如下的錯誤:
HTTP ERROR: 500Trying to contact region server null for region , row ", but failed after 3 attempts.
Exceptions:
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed setting up proxy to /10.37.17.248:60020 after attempts=1
…………………………
此時,Hbase能夠進入shell,但是無法執行任何操作。於是再次試圖關閉hbase的時候,卻發現無法停止master,那個"stop master"後面的“.”出現了許許多多,仍然無法停止master節點。於是我們不得不強制kill掉master。Hbase就這樣掛掉了。。。。。
Hbase重啟之後就無法啟動的原因分析:
經過多方排查,最後我在嘗試使用netstat -an檢視埠占用情況的時候發現:
在WAMDM1節點上,regionserver佔用的60020埠占用為:127.0.0.1:60020
而在WAMDM2節點上, regionserver佔用的60020埠占用為:10.37.17.249:60020
我感覺頗為蹊蹺,之後便檢查/etc/hosts檔案,果然發現在WAMDM1和WAMDM2下的hosts檔案不同。在WAMDM1的hosts檔案中的內容為:
127.0.0.1 WAMDM1 localhost.localdomain localhost
10.37.17.248 WAMDM1.ruc.edu.cn WAMDM1
10.37.17.249 WAMDM2.ruc.edu.cn WAMDM2
10.37.17.250 WAMDM3.ruc.edu.cn WAMDM3
10.37.17.251 WAMDM4.ruc.edu.cn WAMDM4
10.37.17.252 WAMDM5.ruc.edu.cn WAMDM5
大家注意第一行。我們在使用配置Hadoop/Hbase的時候,常常使用主機名來代替IP使用,但是在WAMDM1的機器上,WAMDM1被對映為127.0.0.1,於是master和regionserver之間的通訊就出錯。這也就是為什麼我們經常在日誌中以及錯誤提示中看到如下資訊:
Server at /10.37.17.248:60020 could not be reached after 1 tries, giving up.
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed setting up proxy to /10.37.17.248:60020 after attempts=1at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:424)
………………
Hbase重啟之後就無法啟動的解決辦法:
於是,我將所有機器的/etc/hosts檔案,都改為了如下配置:
127.0.0.1 localhost
10.37.17.248 WAMDM1.ruc.edu.cn WAMDM1
10.37.17.249 WAMDM2.ruc.edu.cn WAMDM2
10.37.17.250 WAMDM3.ruc.edu.cn WAMDM3
10.37.17.251 WAMDM4.ruc.edu.cn WAMDM4
10.37.17.252 WAMDM5.ruc.edu.cn WAMDM5
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
同時,為了保險起見,我在stop-hbase.sh中,也加入停止regionservers的命令(雖然在網上查不到停止regionservers的必要性,以及這個指令碼存在bug的證據,但是這樣改經過測試是沒有問題的):
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" --hosts "${HBASE_REGIONSERVERS}" stop regionserver
這個命令需要加在stop master之前。至於不加入這個停止regionservers的命令是否可行,在未來我會進一步測試。
通過以上修改,出現兩個127.0.0.1的Regionserver的問題,以及Hbase重啟就掛的問題得到徹底解決!
Hbase重啟之後就無法啟動的問題解決之後的反思:
從這次問題解決中吸取如下教訓:
在配置分散式系統的時候,一定要注意各個機器之間配置的統一性,包括主機名(hosts檔案)、使用者名稱、Hadoop/Hbase各種配置檔案等,對於不一致的情況,一定要特別仔細的檢查,然後統一起來。已經不止一次在這方面吃虧了,希望大家切記!!!!
轉自:http://www.wangzhongyuan.com/archives/788.html
在重新啟動HBase服務的時候可能會出現如下的錯誤:
INFO ipc.HbaseRPC: Server at /227.23.56.100:60020 could not be reached after 1 tries, giving up.
出現這個錯誤的原因可能會有很多,比如各個配置檔案中的地址不一致等,但我這裡給出的一個可能原因是埠號被其他某一程式佔用,或者還是HBase程式使用著,但此服務(或說此埠)已經不再可用,解決的方式為:通過此埠查詢到對應的程式,然後殺死對應的程式,再重啟HBase服務,你會發現上面出現的錯誤將消失,服務啟動正常。
具體步驟為:
1、 lsof -i:60020 2、 kill -9 PID(程式ID) 3、 重啟HBase服務。
FAILED: Error in metadata: MetaException(message:org.apache.hadoop.hbase.MasterNotRunningExceptio
n: dfsname1.cptrue.com:60000
最近在做資料探勘方面的事情,需要hive+hbase表,但是使用hive連結hbase現有的資料庫時,總是拋異常。
FAILED: Error in metadata: MetaException(message:org.apache.hadoop.hbase.MasterNotRunningException: dfsname1.cptrue.com:60000
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:394)
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:83)
at org.apache.hadoop.hive.hbase.HBaseStorageHandler.getHBaseAdmin(HBaseStorageHandler.java:74)
………………………………
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
下面是我的hiveql語句
hive> create EXTERNAL table hbase_table_log(key string, label bigint) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
> with SERDEPROPERTIES ("hbase.columns.mapping"=":key, b:label")
> TBLPROPERTIES("hbase.table.name" = "log");
解決方案:這個問題基本就是hive+hbase版本的問題,你需要將你所使用的hbase的jar包拷貝到hive的lib目錄下進行替換,這還不算結束,你需要將hbase-site.xml拷貝到conf目錄下面。在不重啟hive的情況下,重新建立external table,恭喜,執行成功!!!
這裡需要注意的地方是with下面的mapping,它對應的值":key,b:label",不能出現空格,否則它會告訴你
FAILED: Error in metadata: MetaException(message:Column Family b is not defined in hbase table log)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
希望大家日後遇到這個問題的時候,可以順利解決!
FAILED: Error in metadata: MetaException(message:org.apache.hadoop.hbase.MasterNotRunningException: CNC-JN-R-541:60000
出現這個錯誤的原因是我引入的hbase包和hive自帶的hive包衝突,刪除hive/lib下的 hbase-0.89.0-SNAPSHOT.jar, OK了。
當使用hive相關管理已經存在的hbase 多列table時,出現上面錯誤,而且列族“department ”的確存在,最終發現原因是:在hive中使用CREATE EXTERNAL TABLE 建立表的時候,"hbase.columns.mapping"的值中不能包含空格
解決方法:報錯上說org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 15 actions: NotServingRegionException: 15 times, servers with issues: rhel6-15:60020,我把rhel6-15的regionserver程式殺掉在重啟,在把這臺機子上的regionserver程式殺掉在重啟,問題解決!!!(記得做了一點是把所有機器regionserver程式殺掉,Hmaster也殺掉,然後重啟hbase用./hbase-start.sh),驗證一點就是如果這臺regionserver不起的話往這臺機子上的資料會很小,幾乎沒有!!在所有regionserver上發現root和meta表是分離到不同的regionsever上的
來自: http://hi.baidu.com/xinfeng999/blog/item/56cf00fa4c46f7929f51460b.html
相關文章
- Mysql5.7錯誤日誌時間不對的解決辦法2017-01-06MySql
- PHP編譯錯誤及解決辦法2017-11-12PHP編譯
- iOS路上遇到的錯誤及解決辦法2018-07-13iOS
- HBase學習之四: mapreduce處理資料後儲存到hbase及錯誤java.lang.NoClassDefFoundError的解決辦法2016-07-07JavaError
- ORA-39006錯誤原因及解決辦法2021-04-06
- dns錯誤怎麼辦 dns錯誤的解決辦法2016-06-14DNS
- mysql 日誌之錯誤日誌2015-07-13MySql
- Oracle ORA-27101錯誤及解決辦法2010-11-25Oracle
- SAP錯誤提示解決辦法2009-06-28
- mongodb日誌太大的解決辦法2015-12-24MongoDB
- Hadoop常見錯誤及解決方案2022-02-16Hadoop
- MySQL資料庫中的日誌檔案---(1)錯誤日誌2011-06-09MySql資料庫
- 排查錯誤日誌2020-06-09
- hadoop學習筆記(十)——hadoop + hbase + zookeeper2016-01-21Hadoop筆記
- 連線oracle錯誤解決辦法2016-10-08Oracle
- nginxFastCGI錯誤Primaryscriptunknown解決辦法2017-11-20NginxAST
- Unable to locate package錯誤解決辦法2014-04-20Package
- oracle 1455 錯誤解決辦法2012-06-04Oracle
- 畢設之錯誤解決辦法2024-04-07
- Apche日誌系列(2):錯誤日誌(轉)2007-08-09
- hadoop+hbase+zookeeper叢集安裝方法2015-11-25Hadoop
- zookeeper 清理snapshot及事務日誌2018-07-28
- Mabatis配置錯誤日誌2020-12-06BAT
- net 日誌分析錯誤2022-02-28
- 日誌查詢錯誤2020-10-13
- 錯誤日誌檢視2014-10-27
- SQL Server 錯誤日誌2011-03-15SQLServer
- sql server日誌檔案總結及日誌滿的處理辦法2007-07-11SQLServer
- artisan日誌 root 許可權解決辦法2019-04-02
- Idea編譯錯誤解決辦法2021-01-04Idea編譯
- scp出現錯誤的解決辦法2014-02-10
- samba一個錯誤的解決辦法!2006-11-22Samba
- ORA-29339錯誤解決辦法2012-02-06
- ORA-54013錯誤解決辦法2012-02-06
- 9個常見的Android開發錯誤及解決辦法2015-01-07Android
- ORA-01097錯誤解決辦法及探索shutdown immediate2012-04-04
- command 'gcc' failed with exit status 1錯誤問題的解決辦法2018-06-19GCAI
- MySQL 狂寫錯誤日誌2024-02-14MySql