一、实验目的

掌握Hadoop3本地模式环境的搭建、文件配置和环境测试。

二、实验内容

1、在Linux中安装和配置JDK8
2、Hadoop3安装和配置(本地模式)
3、Hadoop3安装测试

三、实验环境

硬件:Ubuntu16.04
软件:JDK-1.8、Hadoop-3.3.0
数据存放路径:/data/dataset
tar包路径:/data/software
tar包压缩路径:/data/bigdata
实验设计创建文件:/data/resource

四、实验原理

Hadoop的运行模式分为3种:本地运行模式,伪分布运行模式,集群运行模式。
Hadoop3的本地模式,指的是Hadoop各组件程序都运行在同一个JVM上,不需要单独启动任何Hadoop进程。这种模式适宜用在开发阶段。

五、实验步骤

5.1 安装JDK8

Hadoop3的运行需要JDK 8的支持,所以需要先安装JDK 8。

1、对JDK 8的安装包解压缩。

在终端窗口中,执行以下命令,进入软件包所在文件夹中,然后将JDK8解压安装到“/data/bigdata/”目录下:

$ cd /data/software
$ tar -zxvf jdk-8u73-linux-x64.tar.gz  -C /data/bigdata/

查看解压后的JDK安装文件:

$ ls /data/bigdata/

2、配置环境变量。

在终端窗口中,执行以下命令,打开系统文件:

$ vi /etc/profile

移动到文件的末尾,添加如下的内容到文件中(替换原来的即可):

export JAVA_HOME=/data/bigdata/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
``` 

> 保存文件内容。然后在终端窗口中,执行如下命令,使编辑后的系统文件生效:
```u
$ source /etc/profile

3、测试JDK的安装。

在终端窗口中,执行如下命令,查看JDK的版本号,检验安装是否正确,如下所示:

$ java -version

如果出现如下的版本信息,说明JDK8的安装和配置正确。

java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

至此,JDK8的安装完成。

5.2 Hadoop3的安装和部署

1、进入软件包所在文件夹中:

$ cd /data/software

将Hadoop3解压安装到“/data/bigdata/”目录下:

$ tar -zxvf hadoop-3.3.0.tar.gz -C /data/bigdata/

2、查看解压后的Hadoop3安装文件:

$ ls /data/bigdata/

3、打开”/etc/profile”配置文件,配置hadoop环境变量(注意,标点符号全都要是英文半角):。

export HADOOP_HOME=/data/bigdata/hadoop-3.3.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"

然后保存。

4、执行”/etc/profile”,让配置生效:

$ source /etc/profile

5、测试hadoop安装。在终端窗口中,执行如下命令:

$ hadoop version

如果安装正确,可以看到如下的版本信息:

Hadoop 3.3.0
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r aa96f1871bfd858f9bac59cf2a81ec470da649af
Compiled by brahma on 2020-07-06T18:44Z
Compiled with protoc 3.7.1
From source with checksum 5dc29b802d6ccd77b262ef9d04d19c4
This command was run using /home/hduser/bigdata/hadoop-3.3.0/share/hadoop/common/hadoop-common-3.3.0.jar

至此,hadoop本地模式搭建完成

5.3 在Hadoop上执行MR程序

1、在终端窗口中,执行如下命令,进入到程序.jar包所在的目录:

$ cd /data/bigdata/hadoop-3.3.0/share/hadoop/mapreduce

2、在终端窗口中,执行如下命令,运行MR程序:

$ hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 10 20

3、在输出内容中,可以找到计算出的PI值。如下所示:

2020-08-24 11:50:48,361 INFO mapreduce.Job: Counters: 30
        File System Counters
                FILE: Number of bytes read=3175648
                FILE: Number of bytes written=9814605
                FILE: Number of read operations=0
                FILE: Number of large read operations=0
                FILE: Number of write operations=0
        Map-Reduce Framework
                Map input records=10
                Map output records=20
                Map output bytes=180
                Map output materialized bytes=280
                Input split bytes=1310
                Combine input records=0
                Combine output records=0
                Reduce input groups=2
                Reduce shuffle bytes=280
                Reduce input records=20
                Reduce output records=0
                Spilled Records=40
                Shuffled Maps =10
                Failed Shuffles=0
                Merged Map outputs=10
                GC time elapsed (ms)=252
                Total committed heap usage (bytes)=4458545152
        Shuffle Errors
                BAD_ID=0
                CONNECTION=0
                IO_ERROR=0
                WRONG_LENGTH=0
                WRONG_MAP=0
                WRONG_REDUCE=0
        File Input Format Counters
                Bytes Read=1300
        File Output Format Counters
                Bytes Written=109
Job Finished in 2.239 seconds
Estimated value of Pi is 3.12000000000000000000

可以看出,计算出的PI值为3.12。在上面的程序运行命令中,我们指定并发度为10,迭代次数为20,采用并行计算,按蒙特卡罗方法求出了PI值。