基础配置
三台机器上编辑/etc/hosts配置文件,修改主机名。
三台机器在集群中担任的角色:
- master:NameNode、DataNode、ResourceManager、NodeManager
- node1:DataNode、NodeManager
- node2:DataNode、NodeManager
配置ssh免密登录
1 | # 三台机器上分别执行,互相免密登录 |
安装JDK
1 | # 官网下载 |
配置java环境变量
1 | # 三台均操作 |
Hadpop配置分发
下载hadoop
1 | https://www.apache.org/dist/hadoop/common/ |
解压
1 | tar -zxvf hadoop-2.6.5.tar.gz -C /data/modules |
查看hadoop目录结构
1 | cd /data/modules/hadoop-2.6.5/ |
- bin目录存放可执行文件
- etc目录存放配置文件
- sbin目录下存放服务的启动命令
- share目录下存放jar包与文档
配置hadoop环境变量
1 | vim ~/.bash_profile |
编辑hadoop配置文件
- 编辑etc/core-site.xml
1 | <configuration> |
编辑etc/hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/app/tmp/dfs/name</value>
# namenode临时文件所存放的目录
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/app/tmp/dfs/data</value>
# datanode临时文件所存放的目录
</property>创建数据目录
1
2mkdir -p /data/hadoop/app/tmp/dfs/name
mkdir -p /data/hadoop/app/tmp/dfs/data编辑etc/yarn-site.xml
1
2
3
4
5
6
7
8
9
10<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>编辑etc/mapred-site.xml
1
2
3
4
5
6
7
8
9cp mapred-site.xml.template mapred-site.xml
vim !$
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
# 指定mapreduce运行在yarn框架上
</property>
</configuration>配置从节点的主机名etc/slaves
1
2node1
node2
2台node节点也需创建对应安装目录,环境变量配置等
1 | scp ~/.bash_profile node1:~/.bash_profile |
Hadoop格式化及启停
对NameNode做格式化,只需要在master上执行即可
1 | [root@master hadoop]# hdfs namenode -format |
格式化之后就可以启动Hadoop集群
1 | # sbin目录下,执行脚本,执行后要输入master服务器的密码 |
查看机器进程
- master
1 | [root@master sbin]# jps |
- node
1
2
3
4[root@node1 ~]# jps
25827 Jps
18742 DataNode
20583 NodeManager
访问测试
访问主节点 50070
访问主节点 YARN的web页面
点击“Active Nodes”查看存活的节点
执行命令
1 | hdfs dfs -ls / |
运行MapReduce Job
在Hadoop的share目录里,自带了一些jar包,里面带有一些mapreduce实例小例子。位置在/data/modules/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar
创建输入目录
1
2
3
4
5
6
7bin/hdfs dfs -mkdir -p /test1/input
# 原始文件
[root@master hadoop-2.6.5]# cat /data/hadoop/test1.input
hadoop hadoop hive
mapreduce hive storm
sqoop hadoop hive
spark hadoop hbase上传到HDFS的/test1/input目录中
- 运行WordCount MapReduce Job
1
[root@master hadoop-2.6.5]# bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /test1/input /test1/output
YARN web控制台查看
查看输出结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[root@master hadoop-2.6.5]# hdfs dfs -ls /test1/output
Found 2 items
-rw-r--r-- 3 root supergroup 0 2018-12-13 15:22 /test1/output/_SUCCESS
-rw-r--r-- 3 root supergroup 60 2018-12-13 15:22 /test1/output/part-r-00000
# output目录中有两个文件,_SUCCESS文件是空文件,有这个文件说明Job执行成功。part-r-00000文件是结果文件,其中-r-说明这个文件是Reduce阶段产生的结果。一个reduce会产生一个part-r-开头的文件。
# 查看执行结果
[root@master hadoop-2.6.5]# hdfs dfs -cat /test1/output/part-r-00000
hadoop 4
hbase 1
hive 3
mapreduce 1
spark 1
sqoop 1
storm 1
# 结果是按照键值排序好的停止Hadoop
1
2
3
4
5
6
7
8
9# 主节点上执行 stop-all.sh,如果进程未全部终止,就执行如下脚本对应停止。
[root@master hadoop-2.6.5]# sbin/hadoop-daemon.sh stop namenode
stopping namenode
[root@master hadoop-2.6.5]# sbin/hadoop-daemon.sh stop datanode
stopping datanode
[root@master hadoop-2.6.5]# sbin/yarn-daemon.sh stop resourcemanager
stopping resourcemanager
[root@master hadoop-2.6.5]# sbin/yarn-daemon.sh stop nodemanager
stopping nodemanager
开启历史服务
Hadoop开启历史服务可以在web页面上查看Yarn上执行job情况的详细信息。可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。
- 开启日志聚集
1
2
3
4
5
6
7
8
9
10
11# Hadoop默认是不启用日志聚集的。在yarn-site.xml文件里配置启用日志聚集。
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
# yarn.log-aggregation-enable:是否启用日志聚集功能。
# yarn.log-aggregation.retain-seconds:设置日志保留时间,单位是秒。
将配置文件发布到其他节点:
1 | scp etc/hadoop/yarn-site.xml node1:/data/modules/hadoop-2.6.5/etc/hadoop/ |
重启Yarn进程和HistoryServer进程
1 | sbin/stop-yarn.sh |
- 测试日志聚集
运行一个demo MapReduce,使之产生日志:1
2[root@master hadoop-2.6.5]# bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount2 /test1/input /test1/output2
# 访问主节点的19888端口,运行job后就可以在web页面查看各个Map和Reduce的日志了。