1つの概要
解決Hadoopの開始HDFSは、データノードの問題を開始しません。エラーがありました。
java.io.IOException:互換性のないclusterIDsで/ホーム/ LXH / Hadoopの/ HDFS /データ:名前ノードCLUSTERID = CID-a3938a0b-57b5-458d-841c-d096e2b7a71c。データノードCLUSTERID = CID-200e6206-98b5-44b2-9e48-262871884eeb
問題の2説明
start-dfs.shを実行した後は、印刷ログによれば、別々の操作名前ノードのデータノードとして行うことができます。
[ローカルホスト]のnamenodes開始 /home/lxh/hadoop/hadoop-2.4.1/logs/hadoop-lxh-namenode-ubuntu.outにログインし、名前ノードを開始:ローカルホスト 、データノードを開始する/ホーム/ LXH / Hadoopのをロギング:ローカルホストを/hadoop-2.4.1/logs/hadoop-lxh-datanode-ubuntu.out
しかし、JPSの実装は結果を見始める、現金バックデータノードは起動しませんでした。
10256のResourceManager 29634名前ノード 29939 SecondaryNameNode 30054 JPS 10399ノードマネージャ
3問題を見つけるために
理解することは非常に困難でなく、単に適切に実行するために、そしてWORDCOUNTテストプログラムを行いました。だから、動作に一瞬バックのために考えた(HDFS名前ノード-formatとHDFSデータノード-format)DFSフォーマットを実施し、その後、このような状況の出現を再起動してください。それは形式に関係していますか?その後、ログを表示します。
2014年8月8日00:32:08787 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode:9000:ローカルホスト/ 127.0.0.1に初期化ブロックプール<登録>に失敗しました(データノードUUID割り当てられていない)サービス。終了。 java.io.IOException:互換性のないclusterIDsで/ホーム/ LXH / Hadoopの/ HDFS /データ:名前ノードCLUSTERID = CID-a3938a0b-57b5-458d-841c-d096e2b7a71c。データノードCLUSTERID = CID-200e6206-98b5-44b2-9e48-262871884eeb org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:477)で org.apache.hadoop.hdfs.server.datanodeました。 DataStorage.recoverTransitionRead(DataStorage.java:226) org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)で org.apache.hadoop.hdfs.server.datanode.DataNode.initStorageで( DataNode.java:974) org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:945)で org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)で org.apacheで.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220) org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)で java.lang.Thread.runで(Thread.java:745) 2014年8月8日00:32:08790がorg.apache.hadoop.hdfs.server.datanode.DataNodeに警告:ブロックプールに<登録>(データノードUUID割り当てられていない)サービスのための:終了ブロックプールサービスローカルホスト/ 127.0.0.1:9000 2014年8月8日00:32:08791 INFO org.apache.hadoop.hdfs.server.datanode.DataNode:削除ブロックプール<登録>(データノードUUID割り当てられていません)
ログの説明、CLUSTERIDと名前ノードCLUSTERIDデータノードの不一致ので。
ログが説明かどうかを確認するためなど、その理由を探します。
それぞれのディレクトリに対応するデータノードの名前ノードに関するオープンHDFS-site.xmlのは、その中に現在の/バージョンファイルの比較を開きました。
$ {データノード} /電流/ VERSION: storageID = DS-be8dfa2b-17b1-4c9f-BBFE-4898956a39ed CLUSTERID = CID-200e6206-98b5-44b2-9e48-262871884eeb CTIME = 0 datanodeUuid = 406b6d6a-0cb1-453d-b689-9ee62433b15d storageType = DATA_NODE layoutVersion = -55
$ {名前ノード} /電流/ VERSION: namespaceID = 670379 CLUSTERID = CID-a3938a0b-57b5-458d-841c-d096e2b7a71c CTIME = 0 storageType = NAME_NODE blockpoolID = BP-325596647-127.0.1.1-1407429078192 layoutVersion = -56
案の定、名前ノードを持つので、一貫性のある変更データノードのバージョンファイルCLUSTERID、結果としてログに記録され、その後、DFS(実行start-dfs.sh)を起動し、JPSの実施の状況を見始める、すべての通常の開始ことがわかりました。
10256のResourceManager 30614名前ノード 30759データノード 30935 SecondaryNameNode 31038 JPS 10399ノードマネージャ
問題の4原因
HDFS名前ノード-formatを実行した後、現在のディレクトリが削除され、再構築し、VERSIONファイルCLUSTERIDも変化れると、データノードのVERSIONファイルには、一貫性のない2 CLUSTERIDその結果、変更されないままCLUSTERIDされます。
だから、順番に名前ノードの後に、あなたはその後、データノードに現在のフォルダ、VERSIONファイルを削除、書式設定を実行することができますかCLUSTERIDからデータノードを変更し、VERSIONファイルが同じ、その後、再起動DFSをCLUSTERID名前ノード、これを避けるために。