1. 环境准备
在一台linux机器上,安装好hadoop运行环境,安装方式请查看:HADOOP运行环境搭建
2. 启动HDFS并运行MapReduce程序
2.1. 配置集群
- 配置:hadoop-env.sh
Linux系统中获取JDK的安装路径:
[root@ hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.8.0_144
编辑hadoop-env.sh,修改hadoop-env.sh中的JAVA_HOME 路径:
export JAVA_HOME=/opt/module/jdk1.8.0_144
- 配置:core-site.xml
首先文件的存取目录不能停留在本地,要用HDFS上的文件,就需要配置HDFS的NameNode的地址。
所以需要在core-site.xml中增加以下配置
fs.defaultFS
hdfs://hadoop101:9000
hadoop.tmp.dir
/opt/module/hadoop-2.7.2/data/tmp
注意:地址中的hadoop101需要改为本地linux的IP地址或者主机名
hadoop.tmp.dir可以不配置,会默认将HDFS文件存储到/tmp目录下
- 配置:hdfs-site.xml
因为伪分布式只有一个节点,所以需要把HDFS副本数量改为1(默认是3),需要在hdfs-site.xm中增加以下配置:
dfs.replication
1
2.2 启动集群
- 格式化NameNode(第一次启动时格式化,以后就不要总格式化)
[root@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format
- 启动NameNode
[root@hadoop101 hadoop-2.7.2]# sbin/hadoop-daemon.sh start namenode
starting namenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-namenode-hadoop101.out
[root@hadoop101 hadoop-2.7.2]#
- 启动DataNode
[root@hadoop101 hadoop-2.7.2]# sbin/hadoop-daemon.sh start datanode
starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-datanode-hadoop101.out
[root@hadoop101 hadoop-2.7.2]#
2.3 验证集群
- 查看是否启动成功
执行命令jps,结果如下图所示,这说明nameNode和dataNode都已经启动成功
[root@hadoop101 hadoop-2.7.2]# jps
5584 DataNode
5671 Jps
5496 NameNode
[root@hadoop101 hadoop-2.7.2]#
- 网页查看NameNode的界面
在浏览器输入网址:http://hadoop101:50070/,即可登录到NameNode界面,可以查看HDFS集群的运行状态和文件。
注意:域名要换成你自己的linux机器域名或者机器IP地址,如果无法访问,可能是防火墙没关
2.4 操作集群
集群启动成功后,就可以操作hdfs,包括创建目录、上传文件、删除文件、执行MR任务等。下面再测试一下,MR任务在HDFS上执行的效果。
- 在HDFS上创建文件夹/user/lancer/input
[root@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/lancer/input
操作结果:
- 将测试文件上传到集群上,这里可以直接使用Hadoop的README.txt文件
[atguigu@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put README.txt /user/atguigu/input/
操作结果:
- 运行MapReduce程序
[root@hadoop101 hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/lancer/input/ /user/lancer/output
运行结果如下:
可以在浏览器中下载输出文件,查看单词个数统计结果。
3. 启动YARN并运行MapReduce程序
3. 配置集群
- 配置yarn-env.sh和mapred-env.sh
两个文件中都把JAVA_HOME改为jdk8的路径,有的文件中export JAVA_HOME被注释掉了,需要取消注释
export JAVA_HOME=/opt/module/jdk1.8.0_144
- 配置yarn-site.xml
编辑yarn-size.xml,增加如下配置项:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop101
(d)配置mapred-site.xml (需要将mapred-site.xml.template重新命名为mapred-site.xml )
先将mapred-site.xml.template重新命名为mapred-site.xml
[root@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
然后在mapred-site.xml中增加以下配置项:
mapreduce.framework.name
yarn
3.2 启动yarn
- 启动前必须保证NameNode和DataNode已经启动
- 启动ResourceManager
[root@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
- 启动NodeManager
[root@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
3.3 验证集群
- 验证启动成功
执行jps,如果结果如下则说明启动成功。
[root@hadoop101 hadoop-2.7.2]# jps
5584 DataNode
6913 Jps
6071 ResourceManager
5496 NameNode
6318 NodeManager
[root@hadoop101 hadoop-2.7.2]#
- 网页查看yarn页面
在浏览器输入网址:http://hadoop101:8088/,即可登录到Yarn界面,可以查看任务运行状态。
注意:域名要换成你自己的linux机器域名或者机器IP地址,如果无法访问,可能是防火墙没关
页面如图所示:
3.4 集群操作
- 执行MapReduce程序(方法同上)
[root@hadoop101 hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/lancer/input/ /user/lancer/output2
同样是执行MR程序,但是这次是由Yarn统一调配的,就能在yarn的界面上看到任务执行的进度,和任务的详细信息,如下图所示:
3.5 配置历史服务器
虽然能看到任务的执行状态,但是现在返现点击history按钮时,网页无法打开,那是因为没有启动历史信息查看服务。
- 配置yarn-site.xml
加入以下配置项:
mapreduce.jobhistory.address
hadoop101:10020
mapreduce.jobhistory.webapp.address
hadoop101:19888
- 启动历史服务器
[root@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
- 查看是否启动成功
执行jps,如果出现JobHistoryServer则说明启动成功
[root@hadoop101 hadoop-2.7.2]# jps
5584 DataNode
7107 JobHistoryServer
6071 ResourceManager
5496 NameNode
7145 Jps
6318 NodeManager
[root@hadoop101 hadoop-2.7.2]#
-
查看MR任务详细历史信息