完全分布式模式hadoop集群(hadoop2.7.3)

来源:互联网 发布:c语言苹果分级 编辑:程序博客网 时间:2024/05/16 11:13

一、运行模式

    首先,认识一下hadoop的运行模式,即以下三种:

    1>单机模式

在单节点运行,直接使用本地文件系统的运行方式,一般用于调试。

    2>伪分布式模式

在单节点上同时启动NameNodeDataNodeJobTrackerTaskTrackerSecondaryNameNode等5个进程,各个节点模拟分布式运行的运行模式。

    3>完全分布式模式

多节点分别启动NameNodeDataNodeJobTrackerTaskTrackerSecondaryNameNode等5个进程,各个节点分布式运行的运行模式。

注:以上NameNodeDataNode、JobTracker、TaskTracker、SecondaryNameNode为低版本hadoop的守护进程;高版本hadoop的守护进程为:NameNode、ResourceManager、SecondaryNameNode、DataNode、NodeManager。


二、守护进程

    1> NameNode,管理文件的元数据。
    2> ResourceManager,YARN中master节点的代理,负责节点上任务的分配与合并,与NodeManager的通信等。
    3> SecondaryNameNode,定期备份NameNode的信息快照,NameNode宕机时该节点可切换为NameNode。
    4> DataNode,存储实际数据的节点,负责把HDFS数据块读写到本地文件系统。
    5> NodeManager,YARN中每个slave节点的代理,负责单节点上的计算,与ResourceManager的通信,Container的资源使用(内存、CPU等)以及追踪节点健康状况等。


三、搭建集群

    1. 修改/etc/hosts文件配置域名IP映射,查看防火墙状态:/etc/init.d/iptables status,关闭防火墙:/etc/init.d/iptables stop,关闭防火墙自启动:chkconfig iptables off。

2. 配置hadoop用户。

3. 安装JAVA JDK套件,修改/etc/profile文件配置JAVA环境变量,使其即时生效:source /etc/profile。

4. 安装SSH套件,配置master(namenode)节点无密码访问slaves节点。

1> 生成公-私秘钥对:ssh-keygen -t rsa -f ~/.ssh/id_rsa。

2> 开启sshd服务,检查sshd服务状态:service sshd status,开启sshd服务:service sshd start,开启sshd服务自启动:chkconfig --add sshd; chkconfig sshd on。

3> 配置无密码登录:ssh-copy-id username@host(复制master节点的id_rsa.pub至自己以及各个slave节点的authorized_keys文件)。

5. 安装HADOOP套件,修改hadoop配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、slaves)

1> 修改hadoop-env.sh文件,配置JAVA_HOME变量,倘若配置文件放在非/etc/hadoop/目录,则需要配置HADOOP_CONF_DIR变量。

2> 修改core-site.xml文件。

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master-hadoop:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/huangpengbo/Software/hadoop/tmp</value>
</property>
</configuration>

3> 修改hdfs-site.xml文件。

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master-hadoop:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/huangpengbo/Software/hadoop/hdfs/name</value>
<description>NameNode Config</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/huangpengbo/Software/hadoop/hdfs/data</value>
<description>DataNode Config</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

4> 修改mapred-site.xml文件,将mapred-site-template.xml修改为mapred-site.xml。

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master-hadoop:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master-hadoop:19888</value>
</property>
</configuration>

5> 修改yarn-site.xml文件。

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master-hadoop:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master-hadoop:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master-hadoop:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master-hadoop:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master-hadoop:8088</value>
</property>

6> 修改slaves文件,低版本还需修改masters文件。

hostname-slave1
hostname-slave2
...
hostname-slaven


6. 分发hadoop到各个slave节点。

7. 格式化namenode:hadoop namenode -format。

8. 在master节点启动HADOOP的各个deamon进程,${HADOOP_HOME}/sbin/start-all.sh

9. 使用jps验证各个deamon进程是否开启。


注:

防火墙问题解决:http://blog.csdn.net/liuxinghao/article/details/40121945

0 0
原创粉丝点击