0

このチュートリアルに従っていますhttp://v-lad.org/Tutorials/Hadoop/14%20-%20start%20up%20the%20cluster.html

「クラスターの開始」ステップにいますが、データノードを開始すると (コマンド: bin/hadoop datanode を実行すると)、次のエラーが表示されます。

$ bin/hadoop datanode
12/07/04 23:53:53 INFO datanode.DataNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = halgarci-WS/10.21.144.26
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 0.19.1
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/core/branches/bra                             nch-0.19 -r 745977; compiled by 'ndaley' on Fri Feb 20 00:16:34 UTC 2009
************************************************************/
12/07/04 23:53:54 ERROR datanode.DataNode: java.io.IOException: Expecting a line                              not the end of stream
        at org.apache.hadoop.fs.DU.parseExecResult(DU.java:181)
        at org.apache.hadoop.util.Shell.runCommand(Shell.java:179)
        at org.apache.hadoop.util.Shell.run(Shell.java:134)
        at org.apache.hadoop.fs.DU.<init>(DU.java:53)
        at org.apache.hadoop.fs.DU.<init>(DU.java:63)
        at org.apache.hadoop.hdfs.server.datanode.FSDataset$FSVolume.<init>(FSDa                             taset.java:325)
        at org.apache.hadoop.hdfs.server.datanode.FSDataset.<init>(FSDataset.jav                             a:681)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNod                             e.java:291)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:                             205)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode                             .java:1238)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(D                             ataNode.java:1193)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNo                             de.java:1201)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:13                             23)

12/07/04 23:53:54 INFO datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at halgarci-WS/10.21.144.26
************************************************************/

このエラーを解決する方法について何かアドバイスはありますか?

ありがとう!!

4

2 に答える 2

3

問題が解決したかどうかわかりません。Hadoop が使用する「du」コマンドは、cygwin/bin/du.exe ではなく、windows/system32/ 組み込みコマンドです。Windowsのbuildid du.exeを削除し、haddopにcygwinを使用させたところ、すべてが機能しました。

于 2012-10-31T05:50:38.983 に答える
1

DUクラスはコマンドを実行し、そのdu -sk <dirPath>結果を解析しようとします。

取得する例外は、結果(標準出力)が空であることを示しています。ここに参照用の解析コードがあります:

  protected void parseExecResult(BufferedReader lines) throws IOException {
    String line = lines.readLine();
    if (line == null) {
      throw new IOException("Expecting a line not the end of stream");
    }
    String[] tokens = line.split("\t");
    if(tokens.length == 0) {
      throw new IOException("Illegal du output");
    }
    this.used.set(Long.parseLong(tokens[0])*1024);
  }

コマンドラインで実行するduと、指定したディレクトリが存在しない場合、std-outが空であることがわかります。だから私はこれがここに当てはまると思います。

データノードデータディレクトリ(で設定)が存在することを確認しましたdfs.data.dirhdfs-site.xml

于 2012-07-05T07:58:35.257 に答える