运行环境:
系统:centos6.9
jdk:jdk1.8.0_201
搭建版本:
hadoop:hadoop-2.7.2
环境说明:
集群环境至少需要 3 个节点(也就是 3 台服务器设备):1 个 Master,2 个 Slave,节点之间局域网连接
1、首先需要分别将三台服务器的opt目录改为qiqi用户的
chown -R qiqi: /opt/
2、在opt目录下创建文件夹 modules 和 文件夹software,所有的安装包放在software下面,解压文件放在modules下面
3、准备工作,安装 JDK,在三台机器上配置 JDK 环境
tar -zvxf /opt/software/jdk-8u201-linux-x64.tar.gz -C /opt/modules/
4、配置环境变量(切换到root目录下):vi /etc/profile
# set java
export JAVA_HOME=/opt/madules/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
5、执行命令:source /etc/profile 使之配置环境生效
6、添加 Hosts 映射关系(三个节点都要添加):vi /etc/hosts 添加内容如下(ip地址加节点)
192.168.147.12 c1
192.168.147.13 c2
192.168.147.14 c3
7、修改节点与主机名:vi /etc/sysconfig/network
HOSTNAME=localhost.localdomain #修改 localhost.localdomain 为 c1 即HOSTNAME要对应的是主机名与节点名
8、设置集群之间 SSH 无密码登陆
CentOS 默认安装了 ssh,如果没有你需要先安装 ssh 。集群环境的使用必须通过 ssh 无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。
a、关闭selinux
b、防火墙
[root@c1 ~]# service iptables stop #关闭防火墙,(我的已关闭,所以下面没显示)
[root@c1 ~]# chkconfig iptables off #永久关闭防火墙
[root@c1 ~]# service iptables status #查看防火墙状态
iptables: Firewall is not running. # 防火墙已关闭
c、配置ssh,配置ssh需要切换到普通用户下,即qiqi
[qiqi@c1 ~]$ cd ~/.ssh/
[qiqi@c1 .ssh]$ ssh-keygen -t rsa #生成密匙,连续四次回车,我的已经生成,就不展示了
d、ssh复制给其他服务器(包括自己)
ssh-copy-id c1 #在c1中操作(会有yes 和输入密码选项),修改节点,复制密匙
在前面配置的HOSTNAME和防护墙都需要重启生效!重启后进行下面的配置
9、将hadoop的安装包解压到modules 文件夹下,将hadoop的安装文件夹重新命名为hadoop
tar -zvxf /opt/software/hadoop-2.7.2.tar.gz -C /opt/modules/
10、配置环境变量
#set hadoop
export HADOOP_HOME=/opt/madules/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
11、执行命令:source /etc/profile 使之配置环境生效
12、修改hadoop配置文件,会用到(Notepad)
配置完成点击关闭
双击/
13、配置文件
a、在第一类配置文件中修改JAVA_HOME
配置hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.8.0_201
export HADOOP_HOME=/opt/modules/hadoop
配置mapred-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/opt/madules/jdk1.8.0_201
配置yarn-env.sh
export JAVA_HOME=/opt/madules/jdk1.8.0_201
b、需要修改的第二类文件
slaves --->配置datanode
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
#配置主节点
<value>hdfs://c1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
#启动hadoop集群时,存放初始化文件,需要我们自己创建
<value>/opt/modules/hadoop/hadoop-qiqi</value>
</property>
</configuration>
在命令窗新建缓存目录
hadoop fs -mkdir hadoop
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>c1:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>c1:50090</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>c1</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>c1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>c1:19888</value>
</property>
</configuration>
14、将配置好的hadoop环境复制到其他节点的modules目录下
scp -r hadoop/ qiqi@c2:/opt/modules/
scp -r hadoop/ qiqi@c3:/opt/modules/
15、配置完成,初始化集群(切换到hadoop目录下)
bin/hadoop namenode -format
16、启动集群
sbin/start-all.sh
17、输入jps查看进程
18、打开本地浏览器输入 c1:50070查看hdfs文件系统的页面
19、本地浏览器输入 c1:8088查看yarn资源管理页面