Hadoop伪分布式环境配置与启动

三世轮回 提交于 2020-03-02 07:28:04

1. 环境准备

在一台linux机器上,安装好hadoop运行环境,安装方式请查看:HADOOP运行环境搭建

2. 启动HDFS并运行MapReduce程序

2.1. 配置集群

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

2. 配置:core-site.xml

首先文件的存取目录不能停留在本地,要用HDFS上的文件,就需要配置HDFS的NameNode的地址。 所以需要在core-site.xml中增加以下配置

<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
 <value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
 <name>hadoop.tmp.dir</name>
 <value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

注意:地址中的hadoop101需要改为本地linux的IP地址或者主机名 hadoop.tmp.dir可以不配置,会默认将HDFS文件存储到/tmp目录下

3. 配置:hdfs-site.xml

因为伪分布式只有一个节点,所以需要把HDFS副本数量改为1(默认是3),需要在hdfs-site.xm中增加以下配置:

<!-- 指定HDFS副本的数量 -->
<property>
 <name>dfs.replication</name>
 <value>1</value>
</property>

2.2 启动集群

1. 格式化NameNode(第一次启动时格式化,以后就不要总格式化)

[root@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format

2. 启动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]# 

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 验证集群

1. 查看是否启动成功

执行命令jps,结果如下图所示,这说明nameNode和dataNode都已经启动成功

[root@hadoop101 hadoop-2.7.2]# jps
5584 DataNode
5671 Jps
5496 NameNode
[root@hadoop101 hadoop-2.7.2]# 

2. 网页查看NameNode的界面

在浏览器输入网址:http://hadoop101:50070/,即可登录到NameNode界面,可以查看HDFS集群的运行状态和文件。 注意:域名要换成你自己的linux机器域名或者机器IP地址,如果无法访问,可能是防火墙没关

2.4 操作集群

集群启动成功后,就可以操作hdfs,包括创建目录、上传文件、删除文件、执行MR任务等。下面再测试一下,MR任务在HDFS上执行的效果。

1. 在HDFS上创建文件夹/user/lancer/input

[root@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/lancer/input

操作结果:

2. 将测试文件上传到集群上,这里可以直接使用Hadoop的README.txt文件

[atguigu@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put README.txt /user/atguigu/input/

操作结果:

3. 运行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.1 配置集群

1. 配置yarn-env.sh和mapred-env.sh

两个文件中都把JAVA_HOME改为jdk8的路径,有的文件中export JAVA_HOME被注释掉了,需要取消注释

export JAVA_HOME=/opt/module/jdk1.8.0_144

2. 配置yarn-site.xml

编辑yarn-size.xml,增加如下配置项:

<!-- Reducer获取数据的方式 -->
<property>
 		<name>yarn.nodemanager.aux-services</name>
 		<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop101</value>
</property>

3. 配置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中增加以下配置项:

<!-- 指定MR运行在YARN上 -->
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
</property>

3.2 启动yarn

1. 启动前必须保证NameNode和DataNode已经启动

2. 启动ResourceManager

[root@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager

3. 启动NodeManager

[root@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

3.3 验证集群

1. 验证启动成功

执行jps,如果结果如下则说明启动成功。

[root@hadoop101 hadoop-2.7.2]# jps
5584 DataNode
6913 Jps
6071 ResourceManager
5496 NameNode
6318 NodeManager
[root@hadoop101 hadoop-2.7.2]# 

2. 网页查看yarn页面

在浏览器输入网址:http://hadoop101:8088/,即可登录到Yarn界面,可以查看任务运行状态。 注意:域名要换成你自己的linux机器域名或者机器IP地址,如果无法访问,可能是防火墙没关 页面如图所示:

3.4 集群操作

  1. 执行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按钮时,网页无法打开,那是因为没有启动历史信息查看服务。

1. 配置yarn-site.xml

加入以下配置项:

<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop101:19888</value>
</property>

2. 启动历史服务器

[root@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver

3. 查看是否启动成功

执行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]# 

4. 查看MR任务详细历史信息

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!