【问题标题】:Hadoop 2.2.0 : "name or service not known" WarningHadoop 2.2.0:“名称或服务未知”警告
【发布时间】:2014-01-24 06:51:38
【问题描述】:

我的目标是在 Ubuntu 12.4 上运行 hadoop 2.2.0。我能够做到,但是当我运行以下命令时: rushi@ubuntu:/usr/local/hadoop$ sbin/start-dfs.sh

我的 dfs 正在启动 namenode、scondarynamenode 和 datanode 但问题是我收到警告

rushi@ubuntu:/usr/local/hadoop$ sbin/start-dfs.sh    
14/01/24 12:05:46 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    Starting namenodes on [Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /usr/local/hadoop-2.2.0/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'.
    localhost]
    sed: -e expression #1, char 6: unknown option to `s'
    Java: ssh: Could not resolve hostname Java: Name or service not known
    library: ssh: Could not resolve hostname library: Name or service not known
    warning:: ssh: Could not resolve hostname warning:: Name or service not known
    which: ssh: Could not resolve hostname which: Name or service not known
    have: ssh: Could not resolve hostname have: Name or service not known
    might: ssh: Could not resolve hostname might: Name or service not known
    You: ssh: Could not resolve hostname You: Name or service not known
    loaded: ssh: Could not resolve hostname loaded: Name or service not known
    Server: ssh: Could not resolve hostname Server: Name or service not known
    HotSpot(TM): ssh: Could not resolve hostname HotSpot(TM): Name or service not known
    have: ssh: Could not resolve hostname have: Name or service not known
    64-Bit: ssh: Could not resolve hostname 64-Bit: Name or service not known
    VM: ssh: Could not resolve hostname VM: Name or service not known
    disabled: ssh: Could not resolve hostname disabled: Name or service not known
    VM: ssh: Could not resolve hostname VM: Name or service not known
    stack: ssh: Could not resolve hostname stack: Name or service not known
    The: ssh: Could not resolve hostname The: Name or service not known
    fix: ssh: Could not resolve hostname fix: Name or service not known
    try: ssh: Could not resolve hostname try: Name or service not known
    guard.: ssh: Could not resolve hostname guard.: Name or service not known
    to: ssh: Could not resolve hostname to: Name or service not known
    now.: ssh: Could not resolve hostname now.: Name or service not known
    will: ssh: Could not resolve hostname will: Name or service not known
    that: ssh: Could not resolve hostname that: Name or service not known
    stack: ssh: Could not resolve hostname stack: Name or service not known
    the: ssh: Could not resolve hostname the: Name or service not known
    you: ssh: Could not resolve hostname you: Name or service not known
    -c: Unknown cipher type 'cd'
    guard: ssh: Could not resolve hostname guard: Name or service not known
    It's: ssh: Could not resolve hostname It's: Name or service not known
    highly: ssh: Could not resolve hostname highly: Name or service not known
    fix: ssh: Could not resolve hostname fix: Name or service not known
    recommended: ssh: Could not resolve hostname recommended: Name or service not known
    or: ssh: Could not resolve hostname or: Name or service not known
    the: ssh: Could not resolve hostname the: Name or service not known
    library: ssh: Could not resolve hostname library: Name or service not known
    link: ssh: Could not resolve hostname link: Name or service not known
    'execstack: ssh: Could not resolve hostname 'execstack: Name or service not known
    with: ssh: Could not resolve hostname with: Name or service not known
    <libfile>',: ssh: Could not resolve hostname <libfile>',: Name or service not known
    it: ssh: Could not resolve hostname it: Name or service not known
    noexecstack'.: ssh: Could not resolve hostname noexecstack'.: Name or service not known
    with: ssh: Could not resolve hostname with: Name or service not known
    '-z: ssh: Could not resolve hostname '-z: Name or service not known
    localhost: starting namenode, logging to /usr/local/hadoop-2.2.0/logs/hadoop-rushi-namenode-ubuntu.out
    localhost: starting datanode, logging to /usr/local/hadoop-2.2.0/logs/hadoop-rushi-datanode-ubuntu.out
    Starting secondary namenodes [Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /usr/local/hadoop-2.2.0/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'.
    0.0.0.0

]

可能是什么问题以及如何解决? 请帮帮我

【问题讨论】:

  • 我在这里看到两个问题。一个与本机库有关,而与主机名解析有关。主机名解析可能是由于 JVM。我有java-1.7.0-openjdk-amd64。当我用Oracle jdk1.8.0 替换它时,它就消失了。
  • 检查你是否安装了ssh和sshd?
  • 如果您想删除与 execstack 相关的错误,请点击链接

标签: hadoop ssh


【解决方案1】:

其中一个原因可能是 Hadoop 中的默认本机库是为 32 位构建的。

将这些行添加到您的 .bashrc 或 .bash_profile:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

这在 Ubuntu 12.04 上对我有用。

$HADOOP_INSTALL 是您安装 Hadoop 的位置(通常是 /usr/local/hadoop)。

甚至可能有 HADOOP_HOME 而不是 HADOOP_INSTALL。

【讨论】:

  • “甚至可能有 HADOOP_HOME 而不是 HADOOP_INSTALL”是什么意思?您的意思是“您可能使用 HADOOP_HOME 而不是 HADOOP_INSTALL”?根据Apache documentation,“HADOOP_HOME 的值是从启动脚本的位置自动推断出来的。”也许您应该从答案中删除最后一行。
  • 你的帖子救了我。谢谢
  • 它仍然不适合我...请帮助Posted the question
  • 更改此行以导出 HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"。否则会有问题。
【解决方案2】:

这与this link 中给出的问题相同。只是换个方式问了

点击此链接后仍有机会获得关注警告

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

要解决此警告,请关注this link

【讨论】:

    【解决方案3】:

    我觉得这里唯一的问题和this question一样,所以解决方法也一样:


    阻止 JVM 将堆栈保护警告打印到 stdout/stderr,因为这会破坏 HDFS 启动脚本。


    通过替换 etc/hadoop/hadoop-env.sh 行来做到这一点:

    export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
    

    与:

    export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"
    


    This solution 已在 Sumit Chawla's blog 上找到)

    【讨论】:

      【解决方案4】:

      这个错误主要是由于 .bashrc 的错误配置而发生的。

      在您的 .bashrc 文件最后添加以下代码。

      #HADOOP VARIABLES START
      export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
      export HADOOP_INSTALL=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_INSTALL/bin
      export PATH=$PATH:$HADOOP_INSTALL/sbin
      export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
      export HADOOP_COMMON_HOME=$HADOOP_INSTALL
      export HADOOP_HDFS_HOME=$HADOOP_INSTALL
      export YARN_HOME=$HADOOP_INSTALL
      export HADOOP_HOME=$HADOOP_INSTALL
      export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
      export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
      #HADOOP VARIABLES END
      

      删除有关主机的错误。安装 apache2 服务器。它将配置localhost的所有基本配置。

      sudo apt-get install apache2. 
      

      在这个网址上查看:http://localhost

      阅读下面整篇文章从头开始配置。 http://www.bogotobogo.com/Hadoop/BigData_hadoop_Install_on_ubuntu_single_node_cluster.php

      【讨论】:

        【解决方案5】:

        此脚本已弃用。而是使用 start-dfs.sh 和 start-yarn.sh

        试试 start-yarn.sh

        【讨论】:

          猜你喜欢
          • 2016-06-07
          • 2016-11-10
          • 2013-08-08
          • 2016-01-06
          • 2019-07-07
          • 1970-01-01
          • 2021-08-19
          • 2018-02-27
          • 1970-01-01
          相关资源
          最近更新 更多