一. 安装环境
hadoop1: 192.168.40.144
hadoop2:192.168.40.145
hadoop3: 192.168.40.146
操作系统: centos7
hadoop版本: apache-hadoop-3.2.4
jdk版本:1.8
二. 安装步骤
1.安装jdk
jdk的安装过程此处不赘述,不熟悉的话可以参考网上的资料。
2.修改主机映射并配置ssh免密码登录
为了方便配置信息的维护,我们在hadoop配置文件中使用主机名来标识一台主机,那么我们需要在集群中配置主机与ip的映射关系。
修改集群中每台主机/etc/hosts文件,添加如下内容。
192.168.40.144 hadoop1
192.168.40.145 hadoop2
192.168.40.146 hadoop3
集群在启动的过程中需要ssh远程登录到别的主机上,为了避免每次输入对方主机的密码,我们需要对hadoop1配置免密码登录
在hadoop1上生成公钥。
ssh-keygen
一路enter确认即可生成对应的公钥。
将hadoop1的公钥拷贝到hadoop1, hadoop2, hadoop3节点上。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop3
3. 修改hadoop配置
下载hadoop 安装包,版本为3.2.4。
-
解压安装包
tar xf hadoop-3.2.4.tar.gz
-
修改etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_91
-
修改etc/hadoop/core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://hadoop1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-3.2.4/data</value> </property>
-
修改etc/hadoop/hdfs-site.xml
<property> <name>dfs.namenode.http-address</name> <value>hadoop1:9870</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop2:9868</value> </property>
-
修改etc/hadoop/mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.2.4</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.2.4</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.2.4</value> </property>
-
修改yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop1</value> </property>
-
修改etc/hadoop/works
hadoop1 hadoop2 hadoop3
-
将配置好的hadoop安装包拷贝到其余的datanode上。
scp -r /opt/hadoop-3.2.4 root@hadoop2:/opt scp -r /opt/hadoop-3.2.4 root@hadoop3:/opt
4.启动集群,并验证是否成功
-
格式化分布式文件系统(在Hadoop1节点上执行)
./bin/hadoop namenode -format
-
启动集群HDFS服务和YARN服务
./sbin/start-dfs.sh ./sbin/start-yarn.sh
-
查看所有节点上查看进程
-
hadoop1
[root@hadoop1 hadoop-3.2.4]# jps 3040 ResourceManager 2418 NameNode 3571 Jps 3193 NodeManager 2572 DataNode
-
hadoop2
[root@hadoop2 ~]# jps 2513 Jps 2179 DataNode 2261 SecondaryNameNode 2391 NodeManager
-
hadoop3
[root@hadoop3 ~]# jps 2213 DataNode 2505 Jps 2346 NodeManager
-
-
访问HDFS与YARN的web界面
三. Jobhistory历史服务器与日志聚集服务
配置Jobhistory服务后和日志聚集服务后,可以方便的查看mapreduce程序运行日志。
-
修改mapred-site.xml
<property> <name>mapreduce.jobhistory.address</name> <value>hadoop3:10020</value> </property> <!-- 历史服务器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop3:19888</value> </property>
-
修改yarn-site.xml
<property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间设置7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <property> <name>yarn.log.server.url</name> <value>http://hadoop3:19888/jobhistory/logs</value> </property>
-
将配置同步到其它节点
-
重启HDFS和YARN服务
./sbin/stop-dfs.sh ./sbin/stop-yarn.sh ./sbin/start-dfs.sh ./sbin/start-yarn.sh
-
在hadoop3节点启动historyserver服务
mapred --daemon start historyserver
启动Jobhistory服务后,可以通过web ui查看mapreduce程序运行日志。
-
运行hadoop example 应用程序
[root@hadoop1 hadoop-3.2.4]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar pi 10 10
-
查看运行日志