购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1
安装独立运行的Hadoop

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

点击中间区域
呼出菜单
上一章
目录
下一章
×