说明:在IDEA上进行编写简单的hadoop程序,适用于个人简单入门
版本:IDEA2019.3.3 + Hadoop2.6 + java8 + win10
系列:
一,创建项目
1,创建项目
2,选择Maven,选择自己的JDK,不用选择Create from archetype(创建表单原型),点击Next
3,输入想要创建项目的Name(名称)和Location(工作区),这里输入的项目名称为WordCount,点击FilnishIEDA会帮你创建好项目的基础结构
3.1,IDEA2019.3.3之前(可能)的版本,还需要填写GroupID(组名称), ArtifactId(名称), Version(版本)
二,配置Maven POM
1,POM是Maven工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。了解Maven pom
2,清空pom.xml文件,直接把下面代码复制到pom.xml文件里
<?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>dblab</groupId> <artifactId>WordCount</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <hadoop.version>2.6.0</hadoop.version> </properties> <dependencies> <!-- 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> </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-mapreduce-client-jobclient</artifactId> <version>${hadoop.version}</version> </dependency> </dependencies> <build> <plugins> <!-- Java 1.8 --> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
复制后如下
3,点击右下角弹框import changes(导入更改)或者enable auto-import(启用自动导入)更新pom.xml文件
4,打开右上角的Maven。如果你之前没有下载相应的jar包,Maven会帮你下载在pom.xml文件中导入的包
右下角会显示下载的进度条
三,创建类
1.创建 WordCount类,在WordCount -> src -> main -> java 中右键 new 一个 Java Class,输入WordCount类名创建类
在Maven中,测试的类放在src -> test -> java文件夹中,这些类一般选择不打进jar包中。
四,打包(jar包)
Artifacts的作用是整合编译后的 java 文件,资源文件等。
1,点击 File -> Project Structure
2,点击 Artifacts -> + -> JAR -> Form modules with dependencies
3,这里默认就好,直接点击 OK 就行了。
Module 是模块名。Main Class 是入口类,为了方便切换入口类,所以现在不选择,等运行jar包的时候才选择入口类。
由于是为了运行简单的hadoop程序,选择extract to the target JAR(提取到目标JAR)就行了,这样不会生成MANIFEST.MF文件。如果需要使用hadoop不附带的额外依赖jar包,可以把jar包放在hadoop内:hadoop路径/share/hadoop/common/
4.删除依赖jar包
先选择第一个要删除的jar包
按住Ctrl键后按住向下键选择全部要删除的jar包,然后鼠标右键,选择Remove删除
删除后如图,点击下面的OK就行了
5,点击上面的Build后选择Build Artifacts,在弹出的选择框中选择Build,
6,就可以在out文件夹中找到项目生成的jar包,直接复制出来就可以上传到linux系统上运行
7,如果有错误提示,可以复制到百度查询。比如java版本错误提示,修改默认java版本即可。
五,运行jar包
(需要配置用户变量)命令框架为:hadoop jar jar包
由于打包过程没有指定入口类,所以命令为:hadoop jar WordCount.jar WordCount
由于程序没有指定资源输入输出路径,所以命令为:hadoop jar WordCount.jar WordCount input/word.txt output
相关/转载:
1,利用开发工具IntelliJ IDEA编写Spark应用程序(Scala+Maven)