



独立运行的Hadoop可以帮助你快速运行一个MapReduce示例,以了解MapReduce的运行。后面的测试和基本命令将会运行在分布式环境下。有些应用,如HBase、Hive则需要真实的集群环境。
步骤01 下载Hadoop。Hadoop 3.2.2的下载地址为https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz。
步骤02 解压并配置环境。
以hadoop用户登录,并在/home/hadoop的主目录下创建一个目录,用于安装Hadoop。
$ mkdir ~/program
上传Hadoop压缩包,并解压到program目录下:
$ tar -zxvf hadoop-3.1.3.tar.gz -C ~/program/
配置Java的环境变量,修改hadoop解压目录下的/etc/hadoop/hadoop-env.sh文件,找到${JAVA_HOME}配置项并设置为本机JAVA_HOME的地址。
$ vim ~/program/hadoop-3.2.2/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_281
配置Hadoop环境变量:
$ vim /home/hadoop/.bash_profile
export HADOOP_HOME=/home/hadoop/program/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin
注意: 由于笔者是用hadoop用户登录系统的,只配置了hadoop用户的环境变量,在这种情况下,这种配置只能当前用户可用。读者可以根据自己的要求进行配置。如:如果配置到/etc/profile文件中,则是整个系统都可以使用的环境变量,那么就不需要将Hadoop安装到某个用户的主目录下了。
让环境变量生效:
$source ~/.bash_profile
输入hadoop命令,查看Hadoop的版本:
[hadoop@server201 ~]$ hadoop version
Hadoop 3.2.2
Source code repository Unknown -r 7a3bc90b05f257c8ace2f76d74264906f0f7a932
Compiled on 2021-01-03T09:26Z
Compiled with protoc 2.5.0
From source with checksum 5a8f564f46624254b27f6a33126ff4
This command was run using /home/hadoop/program/hadoop-3.2.2/share/hadoop/co
mmon/hadoop-common-3.2.2.jar
步骤03 独立运行MapReduce。
Hadoop可以运行在一个非分布式的环境下,即可以运行为一个独立的Java进程。现在运行一个wordcount的MapReduce示例。
创建一个任意的文本文件,并输入一行英文单词:
[hadoop@server201 ~]$ touch a.txt
[hadoop@server201 ~]$ vim a.txt
Hello This is
a Very Sample MapReduce
Example of Word Count
Hope You Run This Program Success!
执行wordcount测试:
[hadoop@server201 ~]$ hadoop jar \
~/program/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.
2.jar \
wordcount \
~/a.txt \
~/out
命令执行成功后会显示以下信息,注意输出的日志会比较多,请仔细查找。
2021-03-08 21:59:19,536 INFO mapreduce.Job: map 100% reduce 100%
2021-03-08 21:59:19,537 INFO mapreduce.Job: Job job_local215774179_0001 comp
leted successfully
命令说明:
● hadoop jar:用于执行一个MapReduce示例。在Linux中,如果命令有多行,可以通过输入“\”(斜线)换行。注意“\”前面必须有空格。
● hadoop-mapreduce-examples-3.1.3.jar:为官方提供的示例程序包,wordcount是执行的任务,~/a.txt是输入的目录或文件,~/out是程序执行成功以后的输出目录。
程序执行成功以后,进入out输出目录,查看输出目录中的数据文件,其中part-r-0000为数据文件,_SUCCESS为标识成功的文件,其中没有数据。
[hadoop@server201 ~]$ cd out/
[hadoop@server201 out]$ ll
总用量 4
-rw-r--r-- 1 hadoop hadoop 122 3月 8 21:59 part-r-00000
-rw-r--r-- 1 hadoop hadoop 0 3月 8 21:59 _SUCCESS
通过cat查看part-r-00000文件中的数据,可以看到已经对a.txt中的单词进行了数量统计,且默认排序为字母的顺序,字母后是此单词出现的次数。
[hadoop@server201 out]$ cat *
Count 1
Example 1
Hello 1
Hope 1
MapReduce 1
Program 1
Run 1
Sample 1
Success! 1
This 2
Very 1
Word 1
You 1
a 1
is 1
of 1
可见,已经对<input>目录中文件的数据进行统计。至此,独立运行模式的Hadoop已经搭建完成。Hadoop独立运行方式只是一个练习,在正式的运行环境中不会使用这种方式。这里只是让大家了解一下MapReduce的运行。而且在此模式下,Hadoop的HDFS不会运行,也不会存储数据。