WINDOWS上的HADOOP查找主机名$';主机名\r';使用start-dfs.sh名称或未知主机名的服务
我正在用Cygwin在Windows7 64位上安装Hadoop。成功格式化Hadoop后,我希望使用命令start-dfs.sh启动它。但报告称:WINDOWS上的HADOOP查找主机名$';主机名\r';使用start-dfs.sh名称或未知主机名的服务,windows,hadoop,cygwin,dos2unix,Windows,Hadoop,Cygwin,Dos2unix,我正在用Cygwin在Windows7 64位上安装Hadoop。成功格式化Hadoop后,我希望使用命令start-dfs.sh启动它。但报告称: ]tarting namenodes on [DATASCIENCES01 : Name or service not knownstname datasciences01 Starting datanodes ]tarting secondary namenodes [0.0.0.0 : Name or service not knownstna
]tarting namenodes on [DATASCIENCES01
: Name or service not knownstname datasciences01
Starting datanodes
]tarting secondary namenodes [0.0.0.0
: Name or service not knownstname 0.0.0.0
]tarting journal nodes [
: Name or service not knownstname
2018-06-26 10:47:10,208 WARN util.Shell: Did not find winutils.exe: {}
java.io.FileNotFoundException: Could not locate Hadoop executable: C:\cygwin64\usr\local\hadoop-3.1.0\bin\winutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems
at org.apache.hadoop.util.Shell.getQualifiedBinInner(Shell.java:620)
at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:593)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:690)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:78)
at org.apache.hadoop.hdfs.tools.GetConf$Command.<clinit>(GetConf.java:86)
at org.apache.hadoop.hdfs.tools.GetConf.<clinit>(GetConf.java:136)
2018-06-26 10:47:10,540 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
我看到我的主机名被称为'DATASCIENCES01\r'
而不是“数据科学01”
我猜\r对应于Windows典型的行尾,因此我使用dos2unix转换文件core-site.xml,其中引用了NameNode名称:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop_data</value>
<description>directory for hadoop data</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://DATASCIENCES01:54311</value>
<description> data to be put on this URI</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://DATASCIENCES01:54311</value>
<description>Use HDFS as file storage engine</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
hadoop.tmp.dir
/opt/hadoop_数据
hadoop数据目录
fs.default.name
hdfs://DATASCIENCES01:54311
要放在此URI上的数据
fs.defaultFS
hdfs://DATASCIENCES01:54311
使用HDFS作为文件存储引擎
dfs.0权限
假的
但它不会在最后更改此“\r”
我在这个链接上找到了一个类似的主题:
但仍然没有答案
提前感谢复制并粘贴文本。不要链接图像您的方向是正确的,但您需要以相反的方式运行该命令。因为您想将文本文件从Unix转换为dos。如果我使用unix2dos命令,它将不会删除Windows的回车符。不管怎样,我已经试过了,它没有改变任何东西,但感谢你多年来帮助meHadoop在windows中运行。你不需要Cygwin,但你需要winutils@Cielronix早些时候,我遇到了这个问题,因为我将一个脚本从windows复制到我的Linux机器上,并且必须为它运行dos2unix命令。这就是为什么我认为你的情况正好相反。你找到其他解决办法了吗?
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop_data</value>
<description>directory for hadoop data</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://DATASCIENCES01:54311</value>
<description> data to be put on this URI</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://DATASCIENCES01:54311</value>
<description>Use HDFS as file storage engine</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>