运行 Cygwin64 时出现"Name or service not knownstname localhost"错误



我在此处遵循指令http://saphanaturorial.com/hadoop-installation-installation-installation-on-windows-7-using-cygwin/与Cygwin(64bit)一起运行Hadoop。一切都很好,直到我运行./start-dfs.sh。错误是

$ ./start-dfs.sh
]tarting namenodes on [localhost
: Name or service not knownstname localhost
localhost: starting datanode, logging to /cygdrive/c/Cygwin64/usr/local/hadoop/logs/hadoop-KennyT-datanode-DESKTOP-6I19F66.out                
]tarting secondary namenodes [0.0.0.0
: Name or service not knownstname 0.0.0.0

我配置了以下内容:

环境变量:


HADOOP_HOME: C:cygwin64usrlocalhadoop
JAVA_HOME: C:Javabin
Path: C:cygwin64usrlocalhadoopbin;C:cygwin64bin; C:Javabin

hadoop-env.sh:

export JAVA_HOME="/cygdrive/c/Java/"

core-site.xml:

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

hdfs-site.xml

<configuration>
    <property>
       <name>dfs.replication</name>
       <value>1</value>
    </property>
    <property>
       <name>dfs.namenode.name.dir</name>
       <value>/c:/cygwin64/usr/local/hadoop/hadoop-dir/namedir</value>
    </property>
    <property>
       <name>dfs.datanode.data.dir</name>
       <value>/c:/cygwin64/usr/local/hadoop/hadoop-dir/datadir</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
   <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
</configuration>

纱线site.xml

<configuration>
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
       <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
       <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
</configuration>

一些笔记:

  • 窗口64bit,hadoop 2.7.1
  • java -versionhadoop version都成功执行。所以,我想环境设置没有问题。
  • SSHD服务正在运行,端口22开放。ssh localhosttelnet localhost 22都成功。
  • 我在Windows上禁用IPv6,但结果是相同的。
  • 在Hadoop-env.sh中,我用"export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"替换"export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true",但没有运气。
  • hadoop namenode -format成功。
  • 我每当更改文件的内容

  • 时就做了dos2unix.exe file
  • 我在没有Cygwin的情况下成功地运行了上述设置。因此,我猜这些文件中的设置没有问题(核心站点,HDFS Site,Mapred Site,Yarn Site)

我正在尝试在一台机器上与Cygwin一起运行Hadoop。然后将其扩大到与Cygwin一起在不同机器中作为群集运行的。但是我对此感到困惑。请帮我。

我在尝试启动hadoop时有相同的问题,而只是用于数据节点。几天后,我通过追踪Hadoop脚本发现了问题,并发现您需要在 slaves 文件中的每行之后设置 space

hadoop-deamons.sh call slaves.h 一个一个

一个
exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_PREFIX" ; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"

slaves.sh 尝试在每个从服务器中连接并在该服务器上运行stop datanode命令:

# start the daemons
for slave in $SLAVE_NAMES ; do
 ssh $HADOOP_SSH_OPTS $slave $"${@// /\ }" 
   2>&1 | sed "s/^/$slave: /" &
 if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then
   sleep $HADOOP_SLAVE_SLEEP
 fi
done

如果您错过了空间,则会发生这样的事情:

ssh server4"cd /home/xxx/hadoop-2.10.0 ...."

与未知主机名相遇。正确的是:

ssh server4 "cd /home/xxx/hadoop-2.10.0 ...."

如果您在Windows中编辑文件并将其复制到Winscp等寡妇应用程序中,则有一个额外的r字符在主机名中引起问题。

相关内容

  • 没有找到相关文章

最新更新