主机名和ip映射如下:
192.168.1.112 hadoop112
192.168.1.113 hadoop113
192.168.1.114 hadoop114
集群部署规划:
一、Linux环境准备
1、更改主机名
(注:次操作分别在hadoop112,hadoop113,hadoop114上操作)
[hadoop@hadoop112 ~]$ su root
[root@hadoop112 hadoop]# vi /etc/sysconfig/network
输入以下内容:
NETWORKING=yes
HOSTNAME=hadoop112
确认主机名生效命令:
[root@hadoop112 hadoop]# hostname hadoop112
是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:
[root@hadoop112 hadoop]# hostname
执行完命令会看到下图的打印输入:
2、关闭防火墙
(注:次操作分别在hadoop112,hadoop113,hadoop114上操作)
关闭防火墙:
[root@hadoop112 hadoop]# service iptables stop
查看防火墙状态(如下图):
开机禁用防火墙:
[root@hadoop112 hadoop]# chkconfig iptables off
3、配置hosts列表
(注:此操作分别在hadoop112,hadoop113,hadoop114上操作)
[root@hadoop112 hadoop]# su root
[root@hadoop112 hadoop]# vi /etc/hosts
输入以下内容:
192.168.1.112 hadoop112
192.168.1.113 hadoop113
192.168.1.114 hadoop114
4、SSH无密登录配置
a、生成公钥和私钥:
[hadoop@hadoop112.ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
显示如下:
[hadoop@hadoop112 .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
2b:c1:10:22:cc:0f:9d:c9:f1:57:28:be:c5:71:17:1b hadoop@hadoop100
The key's randomart image is:
+--[ RSA 2048]----+
|+ +.= .. E. |
| = *.o o.. .o |
| o o.o.o .. |
| . +.o |
| = S |
| . . . |
| . . |
| . |
| |
+-----------------+
b、将公钥拷贝到要免密登录的目标机器上(hadoop113,hadoop114):
[hadoop@hadoop112 .ssh]$ ssh-copy-id hadoop113
[hadoop@hadoop112 .ssh]$ ssh-copy-id hadoop114
注意:ssh访问自己也需要输入密码,所以我们需要将公钥也拷贝给hadoop100
[hadoop@hadoop112 .ssh]$ ssh-copy-id hadoop112
c、测试免秘钥登录是否成功
[hadoop@hadoop112.ssh]$ ssh hadoop113
Last login: Mon Jul 22 20:22:44 2019 from 192.168.1.10
[hadoop@hadoop113~]$ exit
logout
Connection to hadoop112 closed.
[hadoop@hadoop112 .ssh]$ ssh hadoop114
Last login: Mon Jul 22 20:22:53 2019 from 192.168.1.10
[hadoop@hadoop114 ~]$
二、Hadoop部署
1、安装JDK
(分别在hadoop112、hadoop113、hadoop114上执行以下操作)
在hadoop用户下执行以下操作
[hadoop@hadoop112 software]$ tar -zxvf /opt/software/jdk-8u144-linux-x64.tar.gz -C /opt/module/
配置环境变量:
[hadoop@hadoop112 software]$ sudo vim /etc/profile
在最后面,输入以下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
使用改动生效命令(原因改动环境变量后必须生效一下,不生效相当于没有配置):
[hadoop@hadoop112 software]$ source /etc/profile
测试配置:
[hadoop@hadoop112 software]$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
[hadoop@hadoop112 software]$
2、安装Hadoop
在 /opt/module/hadoop-2.7.2/etc/hadoop/ 路径下分别配置core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、hadoop-env.sh、yarn-env.sh、slaves等配置文件。
1)配置集群
a、核心配置文件
[hadoop@hadoop112 hadoop]$ cd /opt/module/hadoop-2.7.2/etc/hadoop/
[hadoop@hadoop112 hadoop]$ vim core-site.xml
在该文件中编写如下配置:
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop112:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
b、HDFS配置文件
[hadoop@hadoop112 hadoop]$ vi hadoop-env.sh
在该文件中编写如下配置:
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
[hadoop@hadoop112 hadoop]$ vim hdfs-site.xml
在该文件中编写如下配置:
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop114:50090</value>
</property>
</configuration>
c、YARN配置文件
配置yarn-env.sh
[hadoop@hadoop112 hadoop]$ vim yarn-env.sh
在该文件中编写如下配置:
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
[hadoop@hadoop112 hadoop]$ vim yarn-site.xml
在该文件中编写如下配置:
<configuration>
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop113</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
d、MapReduce配置文件
配置mapred-env.sh
在该文件中编写如下配置:
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置mapred-site.xml
[hadoop@hadoop112 hadoop]$ vim mapred-site.xml
在该文件中编写如下配置:
<configuration>
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop113:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop113:19888</value>
</property>
</configuration>
e、配置slave文件
[hadoop@hadoop112 hadoop]$ vi slaves
在该文件中编写如下配置:
hadoop112
hadoop113
hadoop114
2)在集群上分发配置好的Hadoop配置文件(分发到hadoop113、hadoop114)
[hadoop@hadoop112 hadoop]$ scp -r /opt/module/hadoop-2.7.2 hadoop@hadoop113:/opt/module/
[hadoop@hadoop112 hadoop]$ scp -r /opt/module/hadoop-2.7.2 hadoop@hadoop114:/opt/module/
3)在/etc/profile下配置hadoop环境变量
注:次操作分别在hadoop112、hadoop113、hadoop114上执行
[hadoop@hadoop112 hadoop]$ vim /etc/profile
在该文件中编写如下配置:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
使用改动生效命令(原因改动环境变量后必须生效一下,不生效相当于没有配置):
[hadoop@hadoop112 software]$ source /etc/profile
4)在hadoop112上格式化namenode
[hadoop@hadoop112 hadoop]$ hadoop namenode -format
5)启动集群
在hadoop112上启动hdfs和yarn
[hadoop@hadoop112 hadoop]$ start-dfs.sh
[hadoop@hadoop112 hadoop]$ start-yarn.sh
6)输入jsp分别在hadoop112、hadoop113、hadoop114上查看进程
在hadoop112上:
[hadoop@hadoop112 hadoop]$ jps
3136 DataNode
3036 ResourceManager
3589 Jps
2990 NameNode
3423 NodeManager
[hadoop@hadoop112 hadoop]$
在hadoop113上:
[hadoop@hadoop113 ~]$ jps
3155 NodeManager
3527 Jps
2911 DataNode
[hadoop@hadoop113 ~]$
在hadoop114上:
[hadoop@hadoop114 opt]$ jps
3056 DataNode
3459 Jps
3146 SecondaryNameNode
3263 NodeManager
[hadoop@hadoop114 opt]$
7)web页面查看
输入地址:http://192.168.1.112:50070
页面显示如下图: