我有三台Ubuntu 12.04 LTS计算机,我想按照here所述的主/从配置安装Hadoop。它说首先将Hadoop作为单个节点安装,然后进入多节点。单节点安装完全正常。我对/ etc / hosts文件进行了必要的更改,并按照指南的说明配置了所有内容,但是当我在主服务器上启动Hadoop集群时,出现错误。
我的计算机,恰如其名的铁人,超人和蝙蝠侠,蝙蝠侠(还有谁?)是主节点。当我sudo bin/start-dfs.sh
时,会显示以下内容。
当我输入密码时,我明白了:
当我尝试sudo bin/start-all.sh
时,我明白了:
我可以直接进入不同的终端,但有些事情并不完全正确。我检查了超人/从终端上的日志,它说它无法连接到蝙蝠侠:54310和一些zzz消息。我认为我的/ etc / hosts是错误的,但事实上,它是:
我尝试通过更改iptables打开端口54310,但此处显示的输出屏幕是在我进行更改之后。我的智慧结束了。请告诉我我哪里出错了。如果您需要更多信息,请告诉我,我会相应地更新问题。谢谢!
更新:以下是我的配置文件。
core-site.xml 请注意我已经输入了batman:54310而不是IP地址。我只是改变它,因为我认为我会更明确地使绑定。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://130.65.153.195:54310</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
</configuration>
mapred-site.xml中
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>130.65.153.195:54311</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
</configuration>
HDFS-site.xml中
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
</configuration>
我的 conf / masters 文件只是batman
而我的 conf / slaves 文件只是:
batman
superman
ironman
希望这能澄清事情。
答案 0 :(得分:1)
首先要做的事情:确保你可以从奴隶和奴隶从主人那里ping主人。单独登录每台计算机并ping其他2台主机。确保可以通过主机名访问它们。您可能没有在从属服务器中添加/ etc / hosts条目。
其次,您需要设置无密码SSH访问。您可以使用ssh-keygen -t rsa
和ssh-copy-id
。这将有助于删除密码提示。为此创建一个单独的用户是个好主意(而不是使用root)。
如果这没有帮助,请发布您的日志输出。