6

HadoopでクラスターをセットアップしようとしていますFedora 17。コマンドを実行する/bin/star-all.shと、マスター ノードとスレーブ ノードでデーモンが開始されます。しかし、マスター ノードでデータ ノードのログ ファイルを表示すると、次の EROOR が表示されます

エラー org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hadoop1 cause:java.io.IOException:ファイル /home/hadoop1/mapred/system/jobtracker.info は 1 ではなく 0 ノードにしか複製できませんでした

2013-03-23 15:37:08,205 INFO org.apache.hadoop.ipc.Server: 9100 で IPC サーバー ハンドラー 5、addBlock を呼び出します (/home/hadoop1/mapred/system/jobtracker.info、DFSClient_-838454688、null) 127.0.0.1:40173 から: エラー: java.io.IOException: ファイル /home/hadoop1/mapred/system/jobtracker.info は、1 つではなく 0 ノードにしか複製できませんでした java.io.IOException: ファイル /home/hadoop1 /mapred/system/jobtracker.info は 0 ノードにしか複製できませんでした。 .server.namenode.NameNode.addBlock(NameNode.java:696) の sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) の sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) の sun.reflect.DelegatingMethodAccessorImpl.org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563) で java.lang.reflect.Method.invoke(Method.java:601) で java.lang.reflect.Method.invoke(DelegatingMethodAccessorImpl.java:43) を呼び出します。 .hadoop.ipc.Server$Handler$1.run(Server.java:1388) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384) at java.security.AccessController.doPrivileged(Native) Method) で javax.security.auth.Subject.doAs(Subject.java:415) で org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) で org.apache.hadoop.ipc.Server$Handler実行 (Server.java:1382)(Server.java:1384) で java.security.AccessController.doPrivileged(Native Method) で javax.security.auth.Subject.doAs(Subject.java:415) で org.apache.hadoop.security.UserGroupInformation.doAs( org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382) の UserGroupInformation.java:1121)(Server.java:1384) で java.security.AccessController.doPrivileged(Native Method) で javax.security.auth.Subject.doAs(Subject.java:415) で org.apache.hadoop.security.UserGroupInformation.doAs( org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382) の UserGroupInformation.java:1121)

wordcount プログラムも実行しようとしています。コマンドを使用して HDFS にデータをコピーするとき

$bin/hadoop dfs -copyFromLocal /home/hadoop1/Documents/wordcount/ /home/hadoop1/hdfs/data 次のエラーが表示されます

警告 hdfs.DFSClient: DataStreamer 例外: org.apache.hadoop.ipc.RemoteException: java.io.IOException: ファイル /home/hadoop1/hdfs/data/wordcount/pg20417.txt は 1 ではなく 0 ノードにしか複製できませんでしたorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1558) で org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:696) で sun.reflect .GeneratedMethodAccessor5.invoke(不明なソース)、sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)、java.lang.reflect.Method.invoke(Method.java:601)、org.apache.hadoop.ipc.RPC $Server.call(RPC.java:563) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388) at org.apache.hadoop.ipc.Server$Handler$1.run(Server .java:1384) java.security.AccessController で。org.apache.hadoop.ipc の javax.security.auth.Subject.doAs(Subject.java:415) の doPrivileged (ネイティブ メソッド)。 Server$Handler.run(Server.java:1382)

at org.apache.hadoop.ipc.Client.call(Client.java:1070)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
at $Proxy1.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at $Proxy1.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock(DFSClient.java:3510)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:3373)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2600(DFSClient.java:2589)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2829)

13/03/23 15:41:05 警告 hdfs.DFSClient: ブロック null のエラー回復 不良 datanode[0] ノード == null 13/03/23 15:41:05 警告 hdfs.DFSClient: ブロックの場所を取得できませんでした。ソース ファイル "/home/hadoop1/hdfs/data/wordcount/pg20417.txt" - 中止しています... copyFromLocal: java.io.IOException: ファイル /home/hadoop1/hdfs/data/wordcount/pg20417.txt は複製のみ可能1 13/03/23 15:41:05 エラー hdfs.DFSClient: ファイル /home/hadoop1/hdfs/data/wordcount/pg20417.txt を閉じる際の例外: org.apache.hadoop.ipc.RemoteException: java.io.IOException: ファイル /home/hadoop1/hdfs/data/wordcount/pg20417.txt は、org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem で 1 ではなく、0 ノードにしか複製できませんでした。 .java:1558) org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:

この点で助けていただければ幸いです..

4

4 に答える 4

2

私はこの問題を解決することができました...

ステップ I) マスター ノードとスレーブ ノードのマシンでファイアウォールがアクティブになっていました。「systemctl disable iptables.service」コマンドに従って無効にしました。

ステップ II) スレーブの core-sites.xml 構成ファイルで、「hdfs://localhost:9100」を「fs.default.name」に誤って割り当てました。「hdfs://master:9100」に変更しました

私のHadoopクラスタは稼働中です..

クリス、親切に助けてくれてありがとう...

于 2013-03-27T06:39:23.247 に答える
0

このエラー (私が遭遇した) のもう 1 つの理由は、/etc/hosts ファイルの混乱により、namenode がループバック インターフェイスでのみリッスンすることです。

これにより、datanode が namenode に接続されず、副作用としてレプリケーション レベルに到達しませんでした。詳細については 、namenode が接続を拒否するバグを参照してください。

于 2013-10-22T16:02:41.230 に答える
0

HDFS で jobtracker.info を削除すると、動作します。Hadoopはそれを作り直すようです

于 2013-08-07T07:35:41.980 に答える