我在此处遵循指令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 -version
和hadoop version
都成功执行。所以,我想环境设置没有问题。 - SSHD服务正在运行,端口22开放。
ssh localhost
和telnet 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
成功。 我每当更改文件的内容
时就做了我在没有Cygwin的情况下成功地运行了上述设置。因此,我猜这些文件中的设置没有问题(核心站点,HDFS Site,Mapred Site,Yarn Site)
dos2unix.exe file
我正在尝试在一台机器上与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
字符在主机名中引起问题。