0

我有三台 Ubuntu 12.04 LTS 计算机,我想在主/从配置中安装 Hadoop,如此处所述。它说首先将 Hadoop 安装为单节点,然后继续安装多节点。单节点安装工作得很好。我对 /etc/hosts 文件进行了必要的更改,并按照指南所说的那样配置了所有内容,但是当我在主服务器上启动 Hadoop 集群时,出现错误。

我的电脑,恰当地命名为铁人、超人和蝙蝠侠,其中蝙蝠侠(还有谁?)是主节点。当我这样做时sudo bin/start-dfs.sh,会显示以下内容。

在此处输入图像描述

当我输入密码时,我得到这个:

在此处输入图像描述

当我尝试sudo bin/start-all.sh时,我得到了这个:

在此处输入图像描述

我可以通过 ssh 进入不同的终端,但有些地方不太对劲。我检查了超人/奴隶终端上的日志,它说它无法连接到 batman:54310 和一些 zzz 消息。我认为我的 /etc/hosts 是错误的,但事实上,它是:

在此处输入图像描述

我尝试通过更改 iptables 打开端口 54310,但此处显示的输出屏幕是在我进行更改之后。我无计可施。请告诉我哪里出错了。如果您需要更多信息,请告诉我,我会相应地更新问题。谢谢!

更新:这是我的 conf 文件。

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

希望这可以澄清事情。

4

1 回答 1

1

首先要做的事情是:确保您可以从从属设备和从属设备从主设备 ping 主设备。分别登录到每台机器并 ping 其他 2 台主机。确保可以通过其主机名访问它们。您可能没有在从属服务器中添加 /etc/hosts 条目。

其次,您需要设置无密码 SSH 访问。您可以为此使用ssh-keygen -t rsa和。ssh-copy-id这将有助于删除密码提示。最好为此创建一个单独的用户(而不是使用 root)。

如果这没有帮助,请发布您的日志输出。

于 2013-10-13T07:33:36.343 回答