独立运行的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不会运行,也不会存储数据。