用 Linux 和 Apache Hadoop 进行云计算(2)
- UID
- 1066743
|
用 Linux 和 Apache Hadoop 进行云计算(2)
设置 Apache Hadoop现在在 Linux VM 上设置 Hadoop 集群,然后就可以在 Hadoop 集群上运行 MapReduce 应用程序。
Apache Hadoop 支持三种部署模式:
- 单独模式:在默认情况下,Hadoop 以非分布的单独模式运行。这个模式适合应用程序调试。
- 伪分布模式:Hadoop 还可以以单节点的伪分布模式运行。在这种情况下,每个 Hadoop 守护进程作为单独的 Java™ 进程运行。
- 全分布模式:Hadoop 配置在不同的主机上,作为集群运行。
要想以单独或伪分布模式设置 Hadoop,请参考 Hadoop 的网站。在本文中,我们只讨论以全分布模式设置 Hadoop。
准备环境在本文中,我们需要三台 GNU/Linux 服务器;一个作为主节点,另外两个作为从节点。
表 1. 服务器信息服务器 IP服务器主机名角色9.30.210.159Vm-9-30-210-159主节点(NameNode 和 JobTracker)9.30.210.160Vm-9-30-210-160从节点 1 (DataNode 和 TaskTracker)9.30.210.161Vm-9-30-210-161从节点 2 (DataNode 和 TaskTracker)
每台机器都需要安装 Java SE 6 和 Hadoop 二进制代码。更多信息见 。本文使用 Hadoop version 0.19.1。
还需要在每台机器上安装 SSH 并运行 sshd。SUSE 和 RedHat 等流行的 Linux 发行版在默认情况下已经安装了它们。
设置通信更新 /etc/hosts 文件,确保这三台机器可以使用 IP 和主机名相互通信。
因为 Hadoop 主节点使用 SSH 与从节点通信,所以应该在主节点和从节点之间建立经过身份验证的无密码的 SSH 连接。在每台机器上执行以下命令,从而生成 RSA 公共和私有密钥。
这会在 /root/.ssh 目录中生成 id_rsa.pub。重命名主节点的 id_rsa.pub(这里改名为 59_rsa.pub)并把它复制到从节点。然后执行以下命令,把主节点的公共密钥添加到从节点的已授权密钥中。
1
| cat /root/.ssh/59_rsa.pub >> /root/.ssh/authorized_keys
|
现在尝试使用 SSH 连接从节点。应该可以成功连接,不需要提供密码。
设置主节点把 Hadoop 设置为全分布模式需要配置 <Hadoop_home>/conf/ 目录中的配置文件。
在 hadoop-site.xml 中配置 Hadoop 部署。这里的配置覆盖 hadoop-default.xml 中的配置。
表 2. 配置属性属性解释fs.default.nameNameNode URImapred.job.trackerJobTracker URIdfs.replication复制的数量hadoop.tmp.dir临时目录
hadoop-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://9.30.210.159:9000</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>9.30.210.159:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp/</value>
</property>
</configuration>
|
通过配置 hadoop-env.sh 文件指定 JAVA_HOME。注释掉这一行并指定自己的 JAVA_HOME 目录。
1
| export JAVA_HOME=<JAVA_HOME_DIR>
|
在 master 文件中添加主节点的 IP 地址。
在 slave 文件中添加从节点的 IP 地址。
1
2
| 9.30.210.160
9.30.210.161
|
设置从节点把 hadoop-site.xml、hadoop-env.sh、masters 和 slaves 复制到每个从节点;可以使用 SCP 或其他复制工具。
对 HDFS 进行格式化运行以下命令对 HDFS 分布式文件系统进行格式化。
1
| <Hadoop_home>/bin/hadoop namenode -format
|
检查 Hadoop 集群现在,可以使用 bin/start-all.sh 启动 Hadoop 集群。命令输出指出主节点和从节点上的一些日志。检查这些日志,确认一切正常。如果弄乱了什么东西,可以格式化 HDFS 并清空 hadoop-site.xml 中指定的临时目录,然后重新启动。
访问以下 URL,确认主节点和从节点是正常的。
现在,已经在云中设置了 Hadoop 集群,该运行 MapReduce 应用程序了。 |
|
|
|
|
|