【问题标题】:hadoop no data node startedhadoop 没有数据节点启动
【发布时间】:2014-06-06 11:53:58
【问题描述】:

我正在学习本教程。

http://hadoop.apache.org/docs/r2.4.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation

我到了这一点并启动了节点。

Start NameNode daemon and DataNode daemon:

$ sbin/start-dfs.sh

但是当我运行接下来的步骤时,似乎没有数据节点正在运行(因为我收到错误提示)。

为什么数据节点宕机了?我该如何解决这个问题?

这是来自我的数据节点的日志。

hduser@test02:/usr/local/hadoop$ jps
3792 SecondaryNameNode
3929 Jps
3258 NameNode
hduser@test02:/usr/local/hadoop$ cat /usr/local/hadoop/logs/hadoop-hduser-datanode-test02.out
Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /usr/local/hadoop/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
 -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 3781
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
hduser@test02:/usr/local/hadoop$

编辑: 看来我的端口号有误。

<property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>

现在当我做对了(即等于 9000)时,我没有启动名称节点。

hduser@test02:/usr/local/hadoop$ jps
10423 DataNode
10938 Jps
10703 SecondaryNameNode

我无法浏览:

http://my-server-name:50070/

还有。

希望这能给你一些提示。

我是 Hadoop 的初学者,现在有点迷路了。

[core-site.xml]

<configuration>

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
</property>

<property>
  <name>hadoop.tmp.dir</name>
  <value>/var/lib/hadoop/tmp</value>
  <description>A base for other temporary directories.</description>
</property>

</configuration>


[hdfs-site.xml]

<configuration>

    <property>
        <name>dfs.replication</name>
        <value>1</value>
        <description>Default block replication.
          The actual number of replications can be specified when the file is created.
          The default is used if replication is not specified in create time.
        </description>
    </property>


</configuration>

在 mapred-site.xml 我什么都没有。

【问题讨论】:

  • 我在这里尝试了接受的解决方案:stackoverflow.com/questions/11889261/…,但仍然没有运气。任何想法或建议将不胜感激。
  • 请向我们展示您的完整日志。 Pastebin什么的……
  • 嗯,这是整个日志。
  • 你能禁用 IPv6 吗?
  • @AmitDubey 您是指系统/操作系统范围还是仅针对 Hadoop? Hadoop 已经有了这个export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true

标签: hadoop hdfs


【解决方案1】:

1.首先停止所有实体,如 namenode、datanode 等(您将有一些脚本或命令来执行此操作)

  1. 格式化tmp目录

  2. /var/cache/hadoop-hdfs/hdfs/dfs/手动删除目录下的所有内容

  3. 现在再次格式化你的namenode

  4. 启动所有实体然后使用jps命令确认datanode已经启动

  5. 现在运行您可能喜欢或拥有的任何应用程序。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    添加此配置 conf/core-site.xml

    <property>
    <name>hadoop.tmp.dir</name>
    <value>/var/lib/hadoop/tmp</value>
    <description>A base for other temporary directories.</description>
    </property>
    
    <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost: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>
    

    conf/mapred-site.xml

    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:54311</value>
    <description>The host and port that the MapReduce job tracker runs
    at.  If "local", then jobs are run in-process as a single map
    and reduce task.
    </description>
    </property>
    

    conf/hdfs-site.xml

    <property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>Default block replication.
    The actual number of replications can be specified when the file is created.
    The default is used if replication is not specified in create time.
    </description>
    </property>
    

    停止Hadoop

    bin/stop-all.sh
    

    更改权限并删除临时目录数据

    chmod 755 /var/lib/hadoop/tmp
    rm -Rf /var/lib/hadoop/tmp/*
    

    格式名称节点

    bin/hadoop namenode -format
    

    【讨论】:

    • fs.default.name 似乎已被弃用。检查我的链接。
    • mapred.job.tracker 也已弃用。在发布到这里之前,我基本上尝试了你所有的建议。它们似乎来自您告诉我要遵循的本教程,但我已经遵循了。
    • @peter.petrov 并尝试“sudo execstack –c /usr/local/hadoop/lib/native/libhadoop.so.1.0.0”
    【解决方案3】:

    经过 1 天的奋斗,我刚刚删除了 2.4 版并安装了 Hadoop 2.2(因为我意识到 2.2 是最新的稳定版本)。然后我按照这个不错的教程完成了所有工作。

    http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html?m=1

    我正在阅读的关于 2.4 的文档有些问题。
    别说它不适合初学者,而且通常是初学者偶然发现的。

    【讨论】:

      【解决方案4】:

      可能你slave的数据master的数据没有同步,删除./hadoop/hdfs中的data & name文件夹,重新创建。重新格式化namenode。比启动 dfs。

      【讨论】:

      • 虽然这篇文章可能会解决问题,但包含原始文档的解释/链接确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道原因和/或来源。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多