集群搭建bug
Bug1:
解決方案:
1.首先確定兩臺虛擬機的IP是固定的,並且是之前配置的
2.格式化以後,查看datanode上的namenode上的 namenode位置下的current目錄下的VERSION文件,將clusterID修改為與 namenode上的clusterID一致。
Bug2:
配置ssh的時候。上傳公鑰不成功
解決方案:
保證兩臺虛擬機的用戶名一致,然後上傳。
Bug3:
啟動集群以後,主從節點數目不正確的問題。
解決方案:
如果是多出來節點,直接kill掉。
但是如果是少節點的問題。關閉集群,直接刪掉主從節點的hadoopdata以及logs文件,然後重新格式化,(重新格式化以後,注意兩個的version裡面的clusterID保持一致)繼續啟動集群
Bug4:
按照安裝文檔安裝集群的時候,注意所在的用戶,copy壓縮包,解壓壓縮包的時候儘量使用普通用戶,避免以後因為權限問題影響操作。
Bug5:
在搭建過程中出現不能傳輸文件,或者傳輸文件不成功,又或者傳輸文件有顯示,但就是在分節點中看不到。
解決方案:
進行排除,先看普通文件能不能傳過去,通過重新在子節點創建一個新文件夾,在主節點傳遞文件,看能不能傳,然後再重新傳秘鑰
讀取hdfs文件bug:(使用java)
Bug1:
解決方案(寫hdfs路徑的時候,寫全路徑):
Bug2:
配置ssh的時候。上傳公鑰不成功
解決方案:
重新生成秘鑰,由master上傳給slave。問題解決。
MapReduce出現的bug:
Bug1:
解決方案:
將hdfs已經存在的目錄刪掉,然後執行語句。問題解決。
Bug2:
解決方案:
仔細檢查包名.類名的正確性。
Bug3:
解決方案:
仔細檢查map方法裡面的參數類型,進行修改。
Bug4:
解決方案:
Hadoop dfsadmin -safemode leave
Bug5:
(出現原因,在手機流量項目的時候,需要實體類,實體類裡面沒有添加無參構造器)
解決方案:
添加無參構造器在實體類裡面,問題解決
Bug6:
解決方案:
該異常是指文件末尾系統還要往裡寫,但是要往裡寫的東西已經沒有了
注意一下寫文件的長度就行
Bug7:
解決方案:
切分好數據以後,先進行判斷,把髒數據丟掉。
Bug8:
解決方案:
hdfs-site.xml文件中加入
Bug9:
描述:ScoreAvg的MapReduce程序運行無異常信息,但結果不正確,如下:
解決方案:
原因分析:因為類型不匹配,沒有進入Reduce方法
解決方法:類型參數要匹配
Bug10:
解決方案:
1.檢查原始文件,確定沒有空行
2.檢查原始文件,確定分割符正確(和代碼中的切分符號一致)
Hbase出現的bug
Bug1:
(在啟動完hbase以後,jps查看進程都沒有問題,但是使用 hbase shell進入的時候,執行list命令的時候會報錯,報錯信息如下)
解決方案:
查看hbase日誌文件,發現進入安全模式,使用 hadoop dfsadmin -safemode leave
Bug2:
解決方案:
1.查看hbase有沒有啟動。
2.格式化namenode
節點的datanode 日誌信息中:
Incompatible namespaceIDs in /home/hadoop/tmp/dfs/data: namenode namespaceID = 1780037790
1節點的namenode日誌信息::java.io.IOException: File /home/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
將namenode的信息刪除,重新格式化
重新啟動,hbase正常
為了方便大家相互交流學習,創建了一個公眾號同名微信群:《大數據和雲計算技術交流群》,人數已經2500+,歡迎大家加我微信。
閱讀更多 大數據和雲計算技術 的文章