当前位置:网站首页 > Java教程 > 正文

java hdfs操作教程



下述步骤适用于 Windows 系统,其他系统可忽略。

在 Windows 系统直接运行 Hadoop 相关代码,会提示缺少 和 文件:

 

原因:通过代码访问 Hadoop 集群,本地开发环境相当于 Hadoop 客户端,需要有 Hadoop 相关软件才可正常运行。

配置步骤:

1)到 https://github.com/cdarlint/winutils 下载与集群版本相匹配的文件夹,然后将此文件夹拷贝到没有中文和空格的路径下,比如 ;

2)在 Windows 的环境变量中添加 ,值为上面的路径,并将 添加到 中;

3)把上述文件夹 bin目录下的 文件拷贝到系统盘 目录;

4)重启 Windows 电脑。

鉴于篇幅有限,相关 Maven 依赖请参见:《https://github.com/healchow/bigdata-study/blob/main/pom.xml》

通过 Java API 操作 HDFS,主要涉及以下 class:

1)

主要用来封装客户端 / 服务端的配置。

2)

这个类的对象是一个文件系统对象,可以用该对象的一些方法来对文件进行操作。

可通过静态方法获得该对象:

 

如果代码中没有指定 ,并且工程的 ClassPath 下也没有相应的配置,此参数的默认值就由 Hadoop Jar 包中的 文件来确定:

默认值是 ,获取的不是 DistributedFileSystem 的实例,而是一个本地文件系统的客户端对象。

方式1:

 

方式2:

 
 
 

HDFS URL 打开 InputStream 的方式:

 

FileSystem 打开 InputStream 的方式:

 

FileSystem#copyToLocalFile() 的方式:

 
 

从上面的 API 练习,不难发现:只要得到了 HDFS 的 URL(即 )配置项,能访问到集群的任何人都能读写 HDFS 上的数据,这会导致数据的安全性完全无法得到保障。

为了解决这个问题,HDFS 有 访问权限控制的方法,只有通过认证的用户,按照其所拥有的权限,读取或写入某些目录下的文件。

开启 HDFS 访问权限控制的方法如下:

1)停止 HDFS 集群:

 

2)修改 中的配置,添加如下内容:

 

4)重启 HDFS 集群:

 

5)上传测试文件到 HDFS 集群,这里将上传后的一个文件的权限修改为 ,即只能所有者读写:

 

6)通过代码下载文件:

 

说明:本地测试失败。无论用哪个用户,访问都成功。

查了很多资料,没有说得通的。劳烦有了解的大佬,留言告知我呀🙏



作者:瘦风(https://healchow.com)

出处:博客园-瘦风的南墙(https://www.cnblogs.com/shoufeng)

感谢阅读,公众号 「瘦风的南墙」 ,手机端阅读更佳,还有其他福利和心得输出,欢迎扫码关注🤝

本文版权归博主所有,欢迎转载,但 [必须在页面明显位置标明原文链接],否则博主保留追究相关人士法律责任的权利。

  • 上一篇: java教程打印
  • 下一篇: java 开发 登录 教程
  • 版权声明


    相关文章:

  • java教程打印2025-03-15 10:02:06
  • 网易java皮肤教程2025-03-15 10:02:06
  • java改软教程2025-03-15 10:02:06
  • java 教程opengl2025-03-15 10:02:06
  • 哪个java教程最好2025-03-15 10:02:06
  • java 开发 登录 教程2025-03-15 10:02:06
  • sqlite java 教程2025-03-15 10:02:06
  • 张孝祥java入门教程2025-03-15 10:02:06
  • java string 菜鸟教程2025-03-15 10:02:06
  • java视频教程 设计模式2025-03-15 10:02:06