【Hadoop】Hadoop 2.x 完全分布式环境搭建,
1、前期准备:克隆
克隆前需要关闭所有正在运行的服务进程,然后关闭系统。克隆需要选择完整克隆。克隆出两台虚拟机,共三台。
克隆后需要修改配置:
(1)/etc/sysconfig/network中的HOSTNAME,使得三台虚拟机的hostname不同(永久生效)。
(2)/etc/hosts中的主机名和IP地址的映射。三台虚拟机的映射都要有。
(3)/etc/udev/rules.d/70-persistent-net.rules中修改MAC地址,因为MAC地址是唯一的。
2、对机器配置与服务进行规划
(1)配置
hadoop01 hadoop02 hadoop03
内存:50G 内存:50G 内存:50G
CPU:20核 CPU:20核 CPU:20核
硬盘:100TB 硬盘:100TB 硬盘:100TB
(2)服务
hadoop01 hadoop02 hadoop03
NameNode ResourceManager SecondaryNameNode
DataNode DataNode DataNode ->存储,消耗硬盘
NodeManager NodeManager NodeManager ->分析计算,消耗资源
HistoryServer
3、搭建过程
(1)解压Hadoop
$ tar -zxf /opt/software/hadoop-2.5.0.tar.gz -C /opt/app/ (一定是普通用户解压,如beifeng)
(2)指定Java的安装路径,配置hadoop-env.sh,mapred-env.sh,yarn-env.sh文件中的
export JAVA_HOME=/opt/modules/jdk1.7.0_67
(3)配置用户自定义的文件,core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml。
core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-senior.ibeifeng.com:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.5.0/data/tmp</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>beifeng</value>
</property>
</configuration>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-senior03.ibeifeng.com:50090</value>
</property>
</configuration>
slaves:添加所有节点的主机名
hadoop-senior.ibeifeng.com
hadoop-senior02.ibeifeng.com
hadoop-senior03.ibeifeng.com
yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-senior02.ibeifeng.com</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
</configuration>
mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop-senior.ibeifeng.com:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop-senior.ibeifeng.com:19888</value>
</property>
</configuration>
(4)分发配置文件到各个节点上
拷贝之前先将share目录下的doc文件夹删除,减少拷贝的时间。
scp:s代表SSH协议,远程拷贝,将一台机器的配置发送到其他机器上,使其他机器具有相同的配置。
$ scp -r hadoop-2.5.0/ hadoop-senior02.ibeifeng.com:/opt/app
$ scp -r hadoop-2.5.0/ hadoop-senior03.ibeifeng.com:/opt/app
拷贝之前,其他节点上要同样创建相同的目录。
(5)格式化namenode(在hadoop-senior上):$ bin/hdfs namenode -format
(6)在hadoop-senior上启动namenode和datanode和nodemanager,
在hadoop-senior02上启动datanode和resourcemanager和nodemanager,
在hadoop-senior03上启动datanode和secondarynamenode和nodemanager。
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/hadoop-daemon.sh start secondarynamenode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
在hadoop-senior上启动historyserver:
$ sbin/mr-jobhistory-daemon.sh start historyserver
4、完全分布式多节点SSH免密码登陆
在三台虚拟机上分别配置:
$ ssh-keygen -t rsa
$ ssh-copy-id hadoop-senior.ibeifeng.com
$ ssh-copy-id hadoop-senior02.ibeifeng.com
$ ssh-copy-id hadoop-senior03.ibeifeng.com
即可实现三台虚拟机免密码互相登陆,如在hadoop-senior上输入:
$ ssh hadoop-senior02.ibeifeng.com