Hadoop-Windows下HDFS客户端环境搭建,Eclipse连接HDFS的心酸历程(内附winutils.exe(hadoop-2.6.5~hadoop-3.2.1))
程序部署在Linux下即使是远程调用hadoop也不会需要环境变量(Hadoop-home,hadoop-conf-dir)
虚拟机-Linux-CentOS 7吐血安装Hadoop2.9.2搭建集群教程(详细图解)
HDFS客户端环境搭建搞了好久,成功了赶紧来总结一下。 😐 😐
目录
配置Hadoop
配置winutils.exe和hadoop.dll
配置Maven
创建Maven工程
配置log4j.properties
编写测试用例
查看源码
配置Hadoop
把Hadoop的压缩包解压到指定的目录,比如我解压到 D:\hadoop-2.9.2
创建环境变量 HADOOP_HOME,路径是Hadoop解压的目录路径
在环境变量 PATH 中加上 %HADOOP_HOME%\bin
配置winutils.exe和hadoop.dll
winutils.exe(hadoop-2.6.5~hadoop-3.2.1)下载)(吐槽一下C**N的积分机制 😕 )
下载winutils.exe
将Hadoop对应版本目录下的bin下的winutils.exe和hadoop.dll复制到Hadoop根目录bin目录下(现在还不知道为什么需要在这两个文件 😦)网上说还要将hadoop.dll复制到C:\windows\system32目录下,但是我没复制。
配置Maven
Maven3.6.3安装及eclipse配置Maven
当然,你可以选择使用Eclipse内置的Maven,但建议把Maven配置文件的settings.xml里面的镜像改为阿里云镜像,这样下载速度会快一点。
创建Maven工程
打开Eclipse,左上角 File——new——other——Maven——Maven Project
Group Id和Artifact Id随便写
打开 pom.xml,配置如下:
你可能需要修改的地方有两处:
<Hadoop-Version>2.9.2</Hadoop-Version> :这里写上你的Hadoop版本,比如我的是2.9.2
最后一个 <dependency>的jdk.tools那里的<version>写上你的JDK版本,比如我的JDK版本是1.8.0_251,写1.8。要确保你的环境变量JAVA_HOME没有中文且是指向你JDK的安装目录!
这个时候你可能会报错Missing artifact jdk.tools:jdk.tools:jar:1.8,可以参考我下面这篇博客
maven报错Missing artifact jdk.tools:jdk.tools:jar:1.8,添加jdk.tools依赖依然报错
<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>com.hadoop</groupId>
<artifactId>hadoop</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<Hadoop-Version>2.9.2</Hadoop-Version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</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>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
</dependencies>
</project>
配置完pom.xml要按 Ctrl+s 保存,然后Maven会自动去仓库下载你需要的jar包及其依赖。
这里有可能你项目的JRE System Library不是你的JDK版本,你可以做一下操作:
打开 Window——Java——Installed JREs,选择你的JDK,如果没有可以点击右边的 Add——Standard VM,选择你的JDK安装目录,Apply and Close
右击项目,点击 Properties——Java Build Path——Add Library——JRE System Library——Alternate JRE,添加你的JDK。然后Remove你原本的那个JRE System Library。
配置log4j.properties
在项目的 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:%L] - %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:%L] - %m%n
编写测试用例
运行测试用例前确保你的hdfs和yarn已经开启且正常运行,还要看一下你的虚拟机服务VMware DHCP Service和VMware NAT Service是否开启。
public class HDFSClient {
public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException {
Configuration conf = new Configuration();
//获取hdfs客户端对象
FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
//在hdfs上创建路径
fs.mkdirs(new Path("/file"));
//fs.delete(new Path("/file"),true);
//关闭资源
fs.close();
System.out.println("finish");
}
}
稍待片刻,程序正常运行完毕后,去 http://master:50070/ 看一下你的目录是否成功创建。
查看源码
不出意外,大家可以直接通过Maven从仓库下载源码。但是我怎么弄也弄不了,源码下不了,如果有小伙伴知道怎么弄可以告诉我 😃.最后我从官网下载对应版本的源码,解压,然后再attach。
到这里,Windows下HDFS客户端环境搭建成功,大家可以继续往下学习了 😃😃😃
参考:
更多推荐
所有评论(0)