Hadoop Part 4 - 搭建 Hadoop 开发环境

2021-04-01
6分钟阅读时长

【版本】

当前版本号v20220606

版本修改说明
v20220606添加 Maven 配置的说明
v20220425修正 Maven 本地仓库配置的说明
v20220320修正 Maven 安装步骤
v20220317修正IDEA安装步骤
v20220125升级到依赖Hadoop 3
v20210416修正一些拼写错误
v20210401初始化版本

【实验目的】

  • 掌握 JDK 的安装和环境变量的设置
  • 掌握 IDEA 的安装和使用
  • 掌握 Maven 的安装、配置和使用命令

【实验环境】

  • Windows 7 以上64位操作系统

【实验资源】

  • JDK 8 - Java Development Kit是 Oracle 公司针对Java开发人员发布的免费软件开发工具包,是 Java 开发必备的开发工具。
  • Intellij IDEA - 业界简称IDEA,是 jetbrains 公司推出的和 Eclipse 齐名的 Java 集成开发环境(IDE)。
  • Apache Maven - Apache Maven,是一个软件项目管理及自动构建工具,由Apache软件基金会所提供。是 Java 构建打包最广泛使用的工具。
链接:https://pan.baidu.com/s/1MoQ0iU0Qb1o8_o5JV6X6iw 
提取码:3rno

【实验内容】

  • 完成 JDK、IDEA 和 Maven 的安装与配置
  • 编写测试用例测试之前的软件安装是否成功

【实验步骤】

安装 JDK 8

  1. 在 Windows 运行安装 jdk-8u261-windows-x64.exe,安装过程略。此处以安装到d:\jdk8为例。安装完结束以后目录架构如下:目录架构如下:
d:\jdk8
  |-bin/
  |-lib/
  |-include/
  |-jre/            
  |-legal/
  |-javafx-src.zip  
  |-jmc.txt
  |-src.zip
  |-COPYRIGHT
  |-release
  |-LICENSE
  |-README.html
  1. 进入Windows的环境变量配置界面,配置以下环境变量。如果系统C盘会还原,每次重启电脑都需要配置此环境变量。注意修改 JDK 的安装目录为你实际安装目录。
#新增
JAVA_HOME=D:\jdk8
CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

#修改PATH,在PATH环境变量原有值后面追加
;%JAVA_HOME%\bin;
  1. 打开Windows 的命令行终端,运行以下命令,测试是否有JDK的版本输出。
java -version
  • 正常情况会有类似以下内容输出
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

安装 IDEA

  1. 运行ideaIC-2021.2.1.exe,指定目录安装 IDEA,这里以d:\idea为例。安装完成以后目录架构如下:
d:\idea\ideaIC-2021.2.1.win
  |-bin\               
  |-build.txt         
  |-jbr\               
  |-lib\               
  |-license           
  |-LICENSE.txt       
  |-NOTICE.txt        
  |-plugins\           
  |-product-info.json 
  |-redist\         
  1. 编辑d:\idea\ideaIC-2021.2.1.win\bin目录下的idea.exe.vmoptionsidea64.exe.vmoptions,在文件末尾加上以下代码,让 IDEA 默认使用UTF8编码。
-Dfile.encoding=UTF-8

安装和配置 Maven 3

  1. 解压apache-maven-3.6.3-bin.zip,这里以解压到d:\maven363为例。在Maven 安装目录下创建一个repos目录,解压repos.ziprepos目录下,里面包含 hadoop 开发包的仓库(Repository)。
d:\maven363
  |-bin/      
  |-boot/     
  |-conf/     
  |-lib/      
  |-LICENSE   
  |-NOTICE    
  |-README.txt
  |-repos/       
  1. 编辑d:\maven363\conf\settings.xml文件。在<settings>标签内新增本地仓库路径设置。<localRepository>标签内内容注意修改为你的 Maven 的实际安装路径。
<localRepository>D:/maven363/repos</localRepository>

注意:这个XML的标签,需要放在 XML 的注释 外,放在注释内的内容是无法生效的。

  1. 编辑d:\maven363\conf\settings.xml文件。在约148行<mirrors>标签内增加远程仓库镜像地址。开发过程中依赖的 Jar 包可以通过配置从此地址下载。
  • 如果电脑可以联网,可以修改指向阿里云的仓库镜像。
<mirror>
  <id>nexus-aliyun</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

注意:这个XML的标签,需要放在 XML 的注释 外,放在注释内的内容是无法生效的。

  1. 进入Windows的环境变量配置界面,配置以下环境变量。可参考步骤2
#新增
MAVEN_HOME=D:\maven363

#修改PATH,在PATH环境变量原有值后面追加
;%MAVEN_HOME%\bin;
  • 以下截图仅供参考,请根据你自己的 Maven 路径设置。

  1. 打开Windows 的命令行终端,运行以下命令,测试是否能够输出你的 mvn 脚本所在路径。
where mvn
  • 正常会输出你的 mvn 路径,以下截图仅供参考。
  1. 打开Windows 的命令行终端,运行以下命令,测试是否有Maven的版本输出。
mvn -version

安装和配置 IDEA

  1. 启动IDEA,运行d:\idea\ideaIC-2021.2.1.win\bin\idea.exe。新建一个项目。

  2. 新建一个 Maven 项目,Project SDK选择 1.8,如果没有,则点击Add JDK...,指向你的 JDK 的安装目录。

  3. 新建一个开发项目,命名为hadoopexp+你学号后3位

  4. 创建成功以后,可以看到项目的整体目录架构。

  5. 修改 IDEA 的 Maven 配置,指向本地安装的 Maven。这里注意替换为你的 Maven 的实际安装目录。

  6. 修改项目下的pom.xml文件,此文件是 Maven 项目的配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>hadoop</groupId>
    <artifactId>hadoop-exp</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <hadoop.version>3.3.1</hadoop.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>3.9.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <archive>
                        <!--<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>-->
                        <manifest>
                            <!-- main()所在的类,注意修改为你的Main主类 -->
                            <mainClass>hadoop.mapreduce.wc.WordCountMain</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
  1. 在项目hadoop-exp\src\main\java下创建一个名为hadoop+你学号后3位的包。注意替换为你学号后3位。

  2. 在你创建的包下面,再创建一个名为Hello的类(class)。

  3. Hello这个类中,编写一个main方法,打印出以下内容。记录你编写的代码,注意替换为你学号后3位。

Hello from 你学号后3位

  1. JUnit 是 Java 开发中最常用的单元测试框架,可以帮助测试我们编写的代码。JUnit 非常容易上手。我们可以新建一个 JUnit 测试类学习使用它。

  2. 在项目hadoop-exp\src\test\java下创建一个名为hadoop+你学号后3位的包。注意替换为你学号后3位。

  3. 在你刚创建的包下面创建一个名为HelloJUnit的类。

  4. 编辑HelloJUnit类,输入下面的代码,运行查看测试结果。注意替换为你学号后3位。

package hadoop+你学号后3位;

import org.junit.Test;
import static org.junit.Assert.*;

public class HelloJUnit {
    @Test
    public void test1(){
		//第1个参数时期待值,第2个参数是我们需要测试的值
        assertEquals(2,1+1);//测试期望两者相等
        assertEquals("你好","你"+"好");//测试期望两者相等
        assertTrue(3==(1+1));//测试结果期望为 false
        assertNotEquals("帅哥","帅锅");//测试期望两者不相等
    }
}

  1. 如果结果显示是绿色的勾,则表示单元测试成功。如果是交叉,则表示测试失败。

  2. 修改以上HelloJUnit类,重新运行,让测试成功。并记录你修改的代码。

  3. 编写一个test2方法,测试以下2个字符串是否相等。

字符串1:1ll1ll1l11ll1l
字符串2:1ll1ll1ll1ll1l