Linux ·

Apache Hadoop 2.2.0 HDFS HA + YARN多机部署

部署逻辑架构:

Apache Hadoop 2.2.0 HDFS HA + YARN多机部署 Linux 第1张

HDFS HA部署物理架构

Apache Hadoop 2.2.0 HDFS HA + YARN多机部署 Linux 第2张

注意:

JournalNode使用资源很少,即使在实际的生产环境中,也是把JournalNode和DataNode部署在同一台机器上;

生产环境中,建议主备NameNode各单独一台机器。

YARN部署架构:

Apache Hadoop 2.2.0 HDFS HA + YARN多机部署 Linux 第3张

个人实验环境部署图:

Apache Hadoop 2.2.0 HDFS HA + YARN多机部署 Linux 第4张

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>

参与评论