centos7上Hadoop2.7.2完全分布式部署
1.规划
node1 node2 node3
datanode datanode datanode
namenode resourcemanager secondarynamenode
nodemanager nodemanager nodemanager
2.设置环境
2.1 修改hostname主机名 注:分别在三台机器上执行下列命令 设置主机名
hostnamectl set-hostname node1 hostnamectl set-hostname node2 hostnamectl set-hostname node3
2.2 关闭防火墙 注:在三台机器上均需要执行
systemctl stop firewalld systemctl disable firewalld
2.3 关闭selinux 注:在三台机器上均需要执行
vim /etc/selinux/config SELINUX=disabled #setenforce 0
2.4 创建hadoop用户 注:在三台机器上均需要执行
useradd -d /hadoop hadoop echo 123|passwd --stdin hadoop
2.5 修改/etc/hosts 注:在三台机器上均需要执行
[root@node1 ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.100.10 node1 192.168.100.11 node2 192.168.100.12 node3
2.6 修改sudo配置文件 注:在三台机器上均需要执行
vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALL hadoop ALL=(ALL) ALL
2.7 配置免密登录 注:使用hadoop用户执行,在三台机器上均需要执行下列命令
[hadoop@node1 ~]$ ssh-keygen -t rsa ##三次回车 创建密钥 [hadoop@node1 ~]$ ssh-copy-id hadoop@node1 ##同步当前主机公钥到node1 [hadoop@node1 ~]$ ssh-copy-id hadoop@node2 ##同步当前主机公钥到node2
[hadoop@node1 ~]$ ssh-copy-id hadoop@node3 ##同步当前主机公钥到node3
2.8 安装jdk 注:在三台机器上均需要执行下列命令
[root@node1 soft]# rpm -ivh jdk-8u371-linux-x64.rpm
3 安装hadoop-2.7.2 注:只在node1上执行,使用Hadoop用户执行命令
3.1 解压安装包
tar -zxf hadoop-2.7.2.tar.gz -C /hadoop/app
ln -s /hadoop/hadoop-2.7.2 /hadoop/app/hadoop
3.2 修改Hadoop配置文件
cd hadoo/hadoop/etc/hadoop/
vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property> <name>hadoop.tmp.dir</name> <value>/hadoop/app/hadoop/data</value> <description>A base for other temporary directories.</description> </property>
vim hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node3:50090</value>
</property>
vim yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node2</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<!-- 第三方框架使用yarn计算的日志聚集功能 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
3.3 修改 /etc/profile
sudo vim /etc/profile export JAVA_HOME=/usr/lib/jvm/jdk-1.8-oracle-x64 export HADOOP_HOME=/hadoop/app/hadoop
export PATH=$PATH:$JAVA_HOME:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.4 同步hadoop安装包
-bash-4.2$ pwd /hadoop -bash-4.2$ scp -r hadoop-2.7.2 hadoop@node2:/hadoop/app -bash-4.2$ scp -r hadoop-2.7.2 hadoop@node3:/hadoop/app
su - root scp -r /etc/profile root@node2:/etc/profile scp -r /etc/profile root@node3:/etc/profile
3.5 使用Hadoop用户在node2、node3上执行下列命令 注:设置软连接 有利于以后的版本升级
cd /hadoop/app ln -s hadoop-2.7.2 hadoop
4 启动hadoop
##在node1上执行 hadoop namenode -format ##在node1上执行 hadoop-daemon.sh start namenode hadoop-daemon.sh start datanode yarn-daemon.sh start nodemanager
##在node2上执行 hadoop-daemon.sh start datanode yarn-daemon.sh start resourcemanager yarn-daemon.sh start nodemanager ##在node3上执行 hadoop-daemon.sh start datanode hadoop-daemon.sh start secondarynamenode yarn-daemon.sh start nodemanager
##在node1上启动历史日志服务 mr-jobhistory-daemon.sh start historyserver
注:如果想要群起集群,需要注意两件事:1、在hadoop/etc/hadoo/slaves 中配置主机名
2、在hadoop用户家目录下的.bashrc 中 添加 source /etc/profile
群起集群的原理就是使用ssh 用户名@主机名 “hadoop-deamon.sh start namenode” ,使用这种nologin登录方式,只会执行~/.bashrc ,/etc/bashrc,/etc/profile.d/ 这三个文件,造成部分环境变量无法识别到。
而login登录的方式则会执行 /etc/profile,/etc/profile.d/,~/.bash_profile,~/.bashrc ,/etc/bashrc 会执行这五个文件。
使用start-yarn.sh 启动脚本的时候 ,只能在resourcemanager这台主机执行才行启动resourcemanager,其他主机不行。

浙公网安备 33010602011771号