本地模式介绍
本地模式是最简单的模式,所有模块都运行在一个JVM进程中,使用本地文件系统而不是HDFS。
-
特点 :
本地模式,即运⾏在单台机器上,没有分布式思想,使⽤的是本地⽂件系统。 -
⽤途 :
本地模式主要⽤于对 MapReduce 程序的逻辑进⾏调试,确保程序的正确。由于在本地模式下测试和调试 MapReduce 程序较为⽅便,因此,这种模式适宜⽤在开发阶段。【主要是用于本地开发过程中的运行调试用,下载后的Hadoop不需要设置默认就是本地模式。】
平台以及软件介绍
平台 & 软件 | 说明 |
---|---|
操作系统 | 没有限制 |
虚拟软件 | VMWare或者VirtualBox |
虚拟机 | Centos7 |
主机名 | hadoop |
IP 地址 | 192.168.121.121 |
SSH ⼯具 | MobaXterm/SecureCR(Windows) 或 FinalShell(Mac) |
软件包上传路径 | /export/software/ |
软件安装路径 | /export/servers/ |
Hadoop | hadoop-2.7.4 |
JAVA | jdk-8u301 |
⽤户 | root |
1.环境搭建
mkdir -p /export/software
mkdir -p /export/servers/
1.1 安装JDK
卸载open-jdk
[root@localhost servers]# rpm -qa|grep jdk
java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
[root@localhost servers]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
[root@localhost servers]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
[root@localhost servers]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
[root@localhost servers]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
[root@localhost servers]# rpm -qa|grep jdk
[root@localhost servers]#
本地上传
D:\Users\LENOVO\Desktop\software>scp jdk-8u311-linux-x64.tar.gz root@192.168.121.121:/export/software
root@192.168.121.121's password:
jdk-8u311-linux-x64.tar.gz 100% 140MB 71.4MB/s 00:01
解压
tar -xzvf /export/software/jdk-8u311-linux-x64.tar.gz -C /export/servers/
1.2 安装Hadoop
本地上传
D:\Users\LENOVO\Desktop\software>scp hadoop-2.7.3.tar.gz root@192.168.121.121:/export/software
root@192.168.121.121's password:
hadoop-2.7.3.tar.gz 100% 204MB 76.9MB/s 00:02
解压
tar -xzvf /export/software/hadoop-2.7.3.tar.gz -C /export/servers/
1.3 设置环境变量
[root@localhost servers]# vi /etc/profile
#添加以下三行
export JAVA_HOME=/export/servers/jdk1.8.0_311
export HADOOP_HOME=/export/servers/hadoop-2.7.3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
确定安装成功
[root@localhost servers]# java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
[root@localhost servers]# javac -version
javac 1.8.0_311
[root@localhost servers]# hadoop version
Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /export/servers/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar
2.本地案例
/export/servers/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
2.1 官方Grep案例
提供一些文本文件, grep可以从中找到想要匹配的文本(可以是正则表达式).
2.1.1在/export/data/hadoop文件下面创建一个input文件夹
[root@localhost ~]# mkdir -p /export/data/hadoop
[root@localhost ~]# cd /export/data/hadoop
[root@localhost hadoop]# mkdir input
2.1.2 将Hadoop的xml配置文件复制到input
[root@localhost hadoop]# cp /export/servers/hadoop-2.7.3/etc/hadoop/*.xml /export/data/hadoop/input/
[root@localhost hadoop]# ls -ll /export/data/hadoop/input/
total 48
-rw-r--r--. 1 root root 4436 Apr 18 17:05 capacity-scheduler.xml
-rw-r--r--. 1 root root 774 Apr 18 17:05 core-site.xml
-rw-r--r--. 1 root root 9683 Apr 18 17:05 hadoop-policy.xml
-rw-r--r--. 1 root root 775 Apr 18 17:05 hdfs-site.xml
-rw-r--r--. 1 root root 620 Apr 18 17:05 httpfs-site.xml
-rw-r--r--. 1 root root 3518 Apr 18 17:05 kms-acls.xml
-rw-r--r--. 1 root root 5511 Apr 18 17:05 kms-site.xml
-rw-r--r--. 1 root root 690 Apr 18 17:05 yarn-site.xml
2.1.3 执行share目录下的MapReduce程序
[root@localhost hadoop]# hadoop jar /export/servers/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
[root@localhost hadoop]# hadoop jar /export/servers/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /export/data/hadoop/input /export/data/hadoop/output 'dfs[a-z.]+'
2.1.4 查看输出结果
[root@localhost hadoop]# ls -ll output/
total 4
-rw-r--r--. 1 root root 11 Apr 18 17:15 part-r-00000
-rw-r--r--. 1 root root 0 Apr 18 17:15 _SUCCESS
[root@localhost hadoop]# cat output/part-r-00000
1 dfsadmin
[root@localhost hadoop]#
注意output不能创建,且再次运行的时候需要删除out文件夹
否则会抛出 文件已经存在 异常
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory file:/opt/software/hadoop-2.7.3/output already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146)
2.2 官方WordCount案例
2.2.1 在/export/data/hadoop文件下面创建一个wcinput文件夹
[root@localhost hadoop]# pwd
/export/data/hadoop
[root@localhost hadoop]# mkdir wcinput
2.2.2 在wcinput文件下创建一个count文件
[root@localhost wcinput]# pwd
/export/data/hadoop/wcinput
[root@localhost wcinput]# touch count
2.2.3 编辑count文件
[root@localhost wcinput]# vi count
#输入以下内容:
hadoop yarn
hadoop mapreduce
hdfs
hdfs
2.2.4 执行程序
[root@localhost hadoop]# hadoop jar /export/servers/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount wcinput wcoutput
[root@localhost hadoop]# cat wcoutput/part-r-00000
hadoop 2
hdfs 2
mapreduce 1
yarn 1
3.测试程序安装正常的pi程序
[root@localhost hadoop]# hadoop jar /export/servers/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 5```
版权声明:本文为yandao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。