天天看点

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

一、运行模式

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

    1>单机模式

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

    2>伪分布式模式

在单节点上同时启动NameNode、DataNode、JobTracker、TaskTracker、SecondaryNameNode等5个进程,各个节点模拟分布式运行的运行模式。

    3>完全分布式模式

多节点分别启动NameNode、DataNode、JobTracker、TaskTracker、SecondaryNameNode等5个进程,各个节点分布式运行的运行模式。

注:以上NameNode、DataNode、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 [email protected](复制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

继续阅读