2

2台のコンピューターを使用してhadoopmichael-nollの方法でマルチノードクラスターをセットアップしようとしていました。

hdfsをフォーマットしようとすると、が表示されましたNullPointerException

hadoop@psycho-O:~/project/hadoop-0.20.2$ bin/start-dfs.sh
starting namenode, logging to /home/hadoop/project/hadoop-0.20.2/bin/../logs/hadoop-hadoop-namenode-psycho-O.out
slave: bash: line 0: cd: /home/hadoop/project/hadoop-0.20.2/bin/..: No such file or directory
slave: bash: /home/hadoop/project/hadoop-0.20.2/bin/hadoop-daemon.sh: No such file or directory
master: starting datanode, logging to /home/hadoop/project/hadoop-0.20.2/bin/../logs/hadoop-hadoop-datanode-psycho-O.out
master: starting secondarynamenode, logging to /home/hadoop/project/hadoop-0.20.2/bin/../logs/hadoop-hadoop-secondarynamenode-psycho-O.out
master: Exception in thread "main" java.lang.NullPointerException
master:     at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:134)
master:     at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:156)
master:     at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:160)
master:     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:131)
master:     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:115)
master:     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.main(SecondaryNameNode.java:469)
hadoop@psycho-O:~/project/hadoop-0.20.2$ 

何が原因なのかわかりません。問題を理解するのを手伝ってください。私はこのトピックに精通しているわけではないので、あなたの答えをできるだけ技術的にしないでください。:)

さらに情報が必要な場合は、親切に教えてください。

4

5 に答える 5

1

データノード (スレーブ) に Hadoop をまったくインストールしていないようです (または) 間違ったパスでインストールしたようです。あなたの場合の正しいパスは /home/hadoop/project/hadoop-0.20.2/ です。

于 2015-12-09T15:06:08.600 に答える
1
master:     at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:134)
master:     at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:156)
master:     at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:160)

セカンダリ ネームノードがプライマリ ネームノードに接続するのに問題があるようです。これは、システム全体が道路を揺るがすために間違いなく必要です。チェックポイントを実行する必要があるからです。したがって、ネットワーク構成に次のような問題があると思います。

  • ${HADOOP_HOME}/conf/core-site.xml には、次のようなものが含まれています。

    <!-- Put site-specific property overrides in this file. -->
    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/app/hadoop/tmp</value>
            <description>A base for other temporary directories.</description>
        </property>
    
        <property>
            <name>fs.default.name</name>
            <value>hdfs://master:54310</value>
            <description>The name of the default file system.  A URI whose
            scheme and authority determine the FileSystem implementation.  The
            uri's scheme determines the config property (fs.SCHEME.impl) naming
            the FileSystem implementation class.  The uri's authority is used to
            determine the host, port, etc. for a filesystem.</description>
        </property>
    </configuration>
    
  • および /etc/hosts. このファイルは実際には滑りやすい斜面です。これらの IP エイリアス名には注意が必要です。これは、その IP を持つマシンのホスト名と一致している必要があります。

        127.0.0.1   localhost
        127.0.1.1   zac
    
        # The following lines are desirable for IPv6 capable hosts
        ::1     ip6-localhost ip6-loopback
        fe00::0 ip6-localnet
        ff00::0 ip6-mcastprefix
        ff02::1 ip6-allnodes
        ff02::2 ip6-allrouters
    
        192.168.1.153 master     #pay attention to these two!!!
        192.168.99.146 slave1
    
于 2012-03-30T02:14:36.797 に答える
1

どうやらデフォルトは正しくないため、この投稿で説明されているように自分で追加する必要があります

それは私のために働いた。

于 2014-04-17T05:47:23.327 に答える
0

あなたのbashスクリプトには実行権限がないか、存在すらしていないようです:

スレーブ: bash: 0 行目: cd: /home/hadoop/project/hadoop-0.20.2/bin/..: そのようなファイルやディレクトリはありません
スレーブ: bash: /home/hadoop/project/hadoop-0.20.2/bin /hadoop-daemon.sh: そのようなファイルまたはディレクトリはありません

于 2011-03-30T19:08:29.387 に答える
0

ユーザーディレクトリを間違って設定したか、ファイルを見つけるために間違ったディレクトリを探しているようです。

于 2012-03-16T19:39:03.023 に答える