欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > HDFS 的API的操作

HDFS 的API的操作

2025/2/24 6:31:08 来源:https://blog.csdn.net/qq_65745642/article/details/145050179  浏览:    关键词:HDFS 的API的操作

3.1 客户端环境准备(windows)

1)拷贝hadoop-3.1.X到非中文路径(比如d:\)。

2)配置HADOOP_HOME环境变量

3)配置Path环境变量。

注意:如果环境变量不起作用,可以重启电脑试试。

也可以直接添加地址D:\大数据实训汇总\hadoop-3.3.4\hadoop-3.3.4\bin

验证Hadoop环境变量是否正常。双击winutils.exe,如果报如下错误。说明缺少微软运行库(正版系统往往有这个问题)。

 

4)在IDEA中创建一个Maven工程HdfsClientDemo,并导入相应的依赖坐标+日志添加(配置maven环境和下载)

<!-- 添加一个操作hadoop的依赖包-->
<dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.1.4</version></dependency><!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>compile</scope></dependency><!-- 日志包 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.32</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
</dependencies>

在项目的src/main/resources目录下,新建一个文件,命名为“log4j.properties”,在文件中填入 

 //key=value

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

 5)创建包名:com.example.hdfs

6)创建HdfsClient 

public class HdfsClient {@Testpublic void testMkdir()throws IOException, URISyntaxException,InterruptedException{//获取配置对象Configuration conf =new Configuration();//设置dfs不需要权限conf.set("dfs.permissions","false");//获取hdfs文件系统FileSystem fs=FileSystem.get(new URI("hdfs://hadoop101:8020/"),conf);// System.out.println(fs);//创建目录boolean isOk=fs.mkdirs(new Path("/cc"));System.out.println(isOk?"yes":"no");}

错误 :

权限问题permission

方法一:(Hadoop101)

解决在hdfs.site.xml

<property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
</property>

然后用脚本分发

方法二:

导包问题

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.URISyntaxException;
import java.net.URI;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词