jsi*_*h13 3 ubuntu hadoop openstack
我创建了一个带有1个Master和2个Slave的hadoop集群.我在*-site.xml文件中以最低规格运行它.
核心的site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://10.0.0.51:9000</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
hfds-site.xml中
<configuration>
<property>
<name>dfs.datanode.name.dir</name>
<value>~/DNfiles</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
mapred-site.xml中
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
纱的site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.0.0.51:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.0.0.51:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>10.0.0.51:8050</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
问题是我能够格式化namenode,将文件放入hfs和所有但是当我运行一个简单的例子时,我得到以下错误.
Container launch failed for container_1455133326738_0002_02_000007 : java.lang.IllegalArgumentException: java.net.UnknownHostException: hadoop-slave-2 at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:377)
at org.apache.hadoop.security.SecurityUtil.setTokenService(SecurityUtil.java:356)
at org.apache.hadoop.yarn.util.ConverterUtils.convertFromYarn(ConverterUtils.java:238)
at org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy$ContainerManagementProtocolProxyData.newProxy(ContainerManagementProtocolProxy.java:266)
at org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy$ContainerManagementProtocolProxyData.<init>(ContainerManagementProtocolProxy.java:244)
at org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy.getProxy(ContainerManagementProtocolProxy.java:129)
at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl.getCMProxy(ContainerLauncherImpl.java:409)
at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$Container.launch(ContainerLauncherImpl.java:138)
at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$EventProcessor.run(ContainerLauncherImpl.java:375)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.UnknownHostException: hadoop-slave-2
Run Code Online (Sandbox Code Playgroud)
虽然程序通过与其他从站协同工作继续完成,即1个从站可以访问,但其他的不是,但它们具有相同的配置.因为我能够格式化所有,所以我假设我的/ etc/hosts文件在主节点是好的.这是它的片段.
ubuntu@hadoop-master-1:~/hadoop-2.7.1/bin$ cat /etc/hosts
127.0.0.1 localhost
10.0.0.51 hadoop-master-1
10.0.0.36 hadoop-slave
10.0.0.38 hadoop-slave-2
10.0.0.39 hadoop-slave-1
10.0.0.40 hadoop-slave-3
10.0.0.41 hadoop-slave-4
Run Code Online (Sandbox Code Playgroud)
奴隶的主机文件
ubuntu@hadoop-slave-1:~/hadoop-2.7.1/bin$ cat /etc/hosts
127.0.0.1 localhost
10.0.0.39 hadoop-slave-1
10.0.0.51 hadoop-master-1
Run Code Online (Sandbox Code Playgroud)
有谁知道可能是什么问题?任何帮助或可能的指针将受到高度赞赏.
问题出在从属的/ etc/hosts文件中.放置文件和格式化namenode时没有错误的原因是主设备与所有从设备通信,并且它具有所有这些设备的IP地址.但是,一旦在群集上运行应用程序,就会在其中一个从属服务器上创建应用程序主服务器.AM然后通过奴隶必须与其他奴隶沟通.由于slave的主机文件没有它们的地址(通过发布的主机文件来判断从机),因此它给出了一个Unknown主机错误.
根据经验,请确保群集中的所有节点都具有到群集中每个其他节点的IP地址.解决这个问题,错误应该消失.
| 归档时间: |
|
| 查看次数: |
7275 次 |
| 最近记录: |