1.安装下载Hadoop文件
1)hadoop-3.3.5 将下载的文件保存到英文路径下,名称一定要短。否则容易出问题;
2)解压下载下来的文件,配置环境变量
3)我的电脑-属性-高级设置-环境变量
4.详细配置文件如下:
HADOOP_HOME: | D:\ProgramFiles\hadoop-3.3.5 |
系统 path: | %HADOOP_HOME%\bin 和 %HADOOP_HOME%\sbin |
2.安装windows环境依赖
需要有windows客户端依赖资料路径下的依赖文件(已上传到平台),拷贝 winutils.exe 到hadoop的bin文件夹: ~\hadoop-3.3.5\bin;再把 hadoop.dll 拷贝到 C:\Windows\System32。
6)验证Hadoop环境变量是否正常。
鼠标双击运行:winutils.exe,若没有报错,一闪而过,就可以了。(如果报如下错误:找不到MSVCR120.dll。说明缺少微软运行库(正版系统往往有这个问题)。再资料包里面有对应的微软运行库安装包双击安装即可。)
3.安装JDK-1.8.371和IDEA 2023
1)注册oracle账号后,下载地址: https://www.oracle.com/java/technologies/downloads/#java8-windows
2)安装的时候,可以只安装 jdk1.8,不安装独立的jre。若电脑上有多个JDK版本,需要在配置环境变量的时候小心。
3)验证java 是否安装成功:cmd - 中输入名: java -version
4) 下载好IDEA2023,可从官网下载安装。(IntelliJ IDEA – 领先的 Java 和 Kotlin IDE)
插件需要下载下,另外激活可参见-IDEA PyCharm WebStorm PhpStorm Jetbrains全家桶最新破解激活码 - 爱激活网
4.打开工程目录-创建项目工程
按照上述的内容填写后,建立Maven 工程。
5.修改配置文件中的依赖
1)添加junit插件 - test 插件 2)添加org.slf4j --日志
pom.xml文件中的依赖项如下:
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 一定要把下面的这个scope注释掉-->
<!-- <scope>test</scope>-->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.36</version>
</dependency>
</dependencies>
添加配置文件后,在页面又上角有个M图标,可以点击下,会自动刷新,之后需要从Maven仓库依赖 dependency;
一定要和服务器上安装的版本一致:
6.为工程配置日志文件
在 IDEA中创建一个Maven工程 Ktest,并导入相应的依赖坐标+日志添加
在项目的src/main/resources目录下,新建一个文件,命名为“log4j.properties”,在文件中填入
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
6.在包下面新建一个类名
7.在服务器上尝试创建文件夹
编写代码-在HDFS文件系统中写入一个 `/yiji/ercengmulu` 的文件.
-------------------------------------------------------------------------------------
package org.example; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.Test; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class Testt{ @Test //引入当时添加的Junit public void testMkdirs() throws URISyntaxException,IOException,InterruptedException{ //创建连接集群的Name Node地址 URI uri = new URI("hdfs://hadoop102:8020"); //创建配置项 Configuration conf = new Configuration(); //指定用户 String user = "antares"; //获取客户端对象 FileSystem fs = FileSystem.get(uri,conf,user); fs.mkdirs(new Path("/yiji/ercengmulu")); fs.close(); } }
8. 打开服务器上的部署的服务
hadoop102:8020 --- 需要在服务器端打开Hadoop,之后才能运行刚刚创建的类。
测试通过。