Apache Hadoop 2.2.0 HDFS HA + YARN多机部署
部署逻辑架构:
HDFS HA部署物理架构
注意:
JournalNode使用资源很少,即使在实际的生产环境中,也是把JournalNode和DataNode部署在同一台机器上;
生产环境中,建议主备NameNode各单独一台机器。
YARN部署架构:
个人实验环境部署图:
Ubuntu12 32bit
apache Hadoop 2.2.0
jdk1.7
===============================================
Ubuntu 13.04上搭建Hadoop环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu下Hadoop环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建Hadoop环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建) http://www.linuxidc.com/Linux/2011-12/48894.htm
===============================================
准备工作:
1.在4台机器都配置hosts;
2.配置NameNode节点可以免密码登录到其余所有节点,只需要单向免密登录即可,无需双向;
免密码登录仅仅在启动、停止集群时使用。
3.安装jdk
4.创建专门的账号,不要用root账号部署、管理hadoop
部署hadoop:
第一步:把hadoop安装包解压到每一个节点(可以解压到一个节点,然后完成后续第2步的配置后,再scp拷贝到其余节点)的固定目录下(各节点目录统一),比如/home/yarn/Hadoop/hadoop-2.2.0
第二步:修改配置文件(只需在一个节点上配置,配置好后再用scp分发到其余节点)
配置文件路径:etc/hadoop/
hadoop-env.sh
修改JDK路径,在文件中搜索以下行,将JAVA_HOME设置为JDK安装路径即可:
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-6-sun
core-site.xml
指定Active NameNode的host名/ip和端口号,端口号可以根据自己的需要修改:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://SY-0217:8020</value>
</property>
</configuration>
注意:以上配置的SY-0217是固定host,只适用于手动切换主备NameNode的场景,如果需要通过ZooKeeper来自动切换,则需要配置逻辑名称,后面会详述。
mapred-site.xml
<configuration>
<!-- MR YARN Application properties -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>The runtime framework for executing MapReduce jobs.
Can be one of local, classic or yarn.
</description>
</property>
<!--
jobhistory properties
jobhistory server,可以通过它查看已经运行完的应用程序的信息。
-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>SY-0355:10020</value>
<description>MapReduce JobHistory Server IPC host:port</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>SY-0355:19888</value>
<description>MapReduce JobHistory Server Web UI host:port</description>
</property>
</configuration>
hdfs-site.xml
非常关键的配置文件!
<configuration>
<property>
<name>dfs.nameservices</name>
<value>hadoop-test</value>
<description>
指定命名空间名称,可随意起名
Comma-separated list of nameservices.
</description>
</property>
<property>
<name>dfs.ha.namenodes.hadoop-test</name>
<value>nn1,nn2</value>
<description>
在命名空间下指定NameNode逻辑名
The prefix for a given nameservice, contains a comma-separated
list of namenodes for a given nameservice (eg EXAMPLENAMESERVICE).
</description>
</property>
<property>
<name>dfs.namenode.rpc-address.hadoop-test.nn1</name>
<value>SY-0217:8020</value>
<description>
为“命名空间名.NameNode逻辑名”配置rpc地址
RPC address for nomenode1 of hadoop-test
</description>
</property>
<property>
<name>dfs.namenode.rpc-address.hadoop-test.nn2</name>
<value>SY-0355:8020</value>
<description>
为“命名空间名.NameNode逻辑名”配置rpc地址
RPC address for nomenode2 of hadoop-test
</description>
</property>
<property>
<name>dfs.namenode.http-address.hadoop-test.nn1</name>
<value>SY-0217:50070</value>
<description>
为“命名空间名.NameNode逻辑名”配置http地址
The address and the base port where the dfs namenode1 web ui will listen on.
</description>
</property>
<property>
<name>dfs.namenode.http-address.hadoop-test.nn2</name>
<value>SY-0355:50070</value>
<description>
为“命名空间名.NameNode逻辑名”配置http地址
The address and the base port where the dfs namenode2 web ui will listen on.
</description>
</property>
<property>