IEDA 配置 Hadoop 项目开发
本文最后更新于 2024.11.06 15:50:49
前言
本文假设读者已经在 WSL (Ubuntu 22.04) 环境下完成了 Hadoop 单机伪分布式安装,如果尚未完成,可以参考这篇博客。笔者使用 IDEA Ultimate 2024.1.1 进行远程开发,IEDA 不同版本的安装过程和操作 UI 可能有些许不同,具体请参照官方文档。
新建 Maven 项目
点击窗口左上角 “文件-新建-项目”,按照下图标注创建一个 Maven 示例项目。
配置项目依赖
等待项目初始化并加载完毕后,打开 pom.xml
文件配置项目依赖。如果你的开发情境与笔者类似,可以将 pom.xml
直接复制替换为本文末尾给出的配置文件。
首先,自定义项目信息并修改项目属性为以下内容:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<hadoop.version>3.3.6</hadoop.version>
</properties>
⚠️ 注意: 这里的 hadoop.version
需要与运行环境中的 Hadoop 版本一致!
然后,添加 Hadoop 相关的依赖:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
对于本地环境与集群环境 Hadoop 版本不一致的情况,可以通过添加 profile 解决,具体配置如下:
<profiles>
<profile>
<id>Cluster</id>
<properties>
<hadoop.version>3.2.1</hadoop.version>
</properties>
</profile>
</profiles>
最后,点击窗口右上角的刷新按钮更新项目配置。
编写代码
完成以上配置后,就可以开始在项目的 src/main/java
目录下添加代码文件了。
项目打包
完成代码编写后,按照下图标注进行打包,如果前面配置了 profile,按需勾选即可。
如果打包成功,输出日志应该与下面类似:
[INFO] Building jar: /home/jjl9807/Dev/lab2/target/lab2-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.415 s
[INFO] Finished at: 2024-05-20T19:19:50+08:00
[INFO] ------------------------------------------------------------------------
打包好的 JAR 包位于项目的 target
目录下,拷贝到运行环境就可以执行了。
pom.xml 示例
最后,给出一份笔者自己使用的项目配置:
<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>org.example</groupId>
<artifactId>lab2</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>lab2</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<hadoop.version>3.3.6</hadoop.version>
</properties>
<profiles>
<profile>
<id>Cluster</id>
<properties>
<hadoop.version>3.2.1</hadoop.version>
</properties>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>
</project>
IEDA 配置 Hadoop 项目开发
https://blog.jjl9807.com/archives/22/