一、 单机模式说明
单机模式是Hadoop的默认模式。
又称本地模式、独立模式等。
因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。
1. 环境准备
在一台linux机器上,安装好hadoop运行环境,安装方式请查看:HADOOP运行环境搭建
2. 配置说明
首先说明,单机模式在安装之后不需要修改任何配置,配置文件为空即可!
之所以单机模式不需要任何配置文件,是因为配置文件不配置时,系统默认值即为单机模式所需
配置文件名 | 配置项 | 配置项含义 | 默认值 | 默认值含义 |
---|---|---|---|---|
core-site.xml | fs.defaultFS | 默认文件系统的名称,可以是HDFS的NameNode地址或者本地 | file:/// | 文件读取和存储都在本地 |
mapred-site.xml | mapreduce.framework.name | 指定执行MapReduce任务的框架。可以是本地、经典、yarn | local | 指定MR运行在本地 |
二、本地运行官方示例
搭建完成Hadoop运行环境之后,无需任何配置,即可开始本地MapReduce的测试任务,官方在share文件夹下,提供了一些官方样例。
1. 官方Grep案例
- 在/opt/module/hadoop-2.7.2文件下面创建一个input文件夹,作为MR任务的输入目录
[root@hadoop101 hadoop-2.7.2]# pwd
/opt/module/hadoop-2.7.2
[root@hadoop101 hadoop-2.7.2]# mkdir input
- 在输入目录中,添加一些测试文件,这里可以将hadoop的配置文件复制进来
[root@hadoop101 hadoop-2.7.2]# cp etc/hadoop/*.xml input
- 执行MR任务
[root@hadoop101 hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
这句脚本的含义是,调用share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar脚本,执行grep方法,输入目录时input,输出目录时output,将统计满足正则表达式'dfs[a-z.]+'的所有内容输出到output目录下的文件中
- 验证执行结果
在output出现大小为0的,名为SUCCESS的文件,则说明任务执行成功,另一个以part开头的文件,就是这次mr任务的执行结果,可以使用cat命令查看输出内容。
2. 官方WordCount案例
- 在/opt/module/hadoop-2.7.2文件下面创建一个wcinput文件夹
[root@hadoop101 hadoop-2.7.2]# pwd
/opt/module/hadoop-2.7.2
[root@hadoop101 hadoop-2.7.2]# mkdir wcinput
- 在wcinput文件下创建一个wc.input文件
[root@hadoop101 hadoop-2.7.2]# cd wcinput
[root@hadoop101 wcinput]# touch wc.input
- 编辑wc.input文件
在文件中输入以下内容:
hadoop yarn
hadoop mapreduce
atguigu
atguigu
- 回到Hadoop目录/opt/module/hadoop-2.7.2
- 执行MR任务
[root@hadoop101 hadoop-2.7.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
这句脚本的含义是,调用share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar脚本,执行wordcount方法,输入目录时input,输出目录时output,将input目录下的所有文件中,所有单词出现的次数统计出来,输出到output目录下的文件中。
- 验证执行结果
在output出现大小为0的,名为SUCCESS的文件,则说明任务执行成功,另一个以part开头的文件,就是这次mr任务的执行结果,可以使用cat命令查看输出内容。