【hadoop】Java API连接(操作)HDFS

这篇具有很好参考价值的文章主要介绍了【hadoop】Java API连接(操作)HDFS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

直接连接遇到的问题

直接运行下面的代码,会出现权限不够的问题

@Test
public void test1() throws Exception{
	//指定NameNode地址
	Configuration conf = new Configuration();
	conf.set("fs.defaultFS", "hdfs://192.168.157.111:9000");
		
	//创建一个HDFS的客户端 DistributedFileSystem
	FileSystem client = FileSystem.get(conf);
		
	//创建目录
	client.mkdirs(new Path("/folder1"));
		
	//关闭客户端
	client.close();
}

错误:
org.apache.hadoop.security.AccessControlException: Permission denied: user=lenovo, access=WRITE, inode=“/folder1”:root:supergroup:drwxr-xr-x

下面使用四种方式来解决权限不够的问题。

设置执行的用户为root用户

环境变量 :HADOOP_USER_NAME

@Test
public void test3() throws Exception{
	System.setProperty("HADOOP_USER_NAME", "root");
		
	//指定NameNode地址
	Configuration conf = new Configuration();
	conf.set("fs.defaultFS", "hdfs://192.168.157.111:9000");
		
	//创建一个HDFS的客户端 DistributedFileSystem
	FileSystem client = FileSystem.get(conf);
		
	//创建目录
	client.mkdirs(new Path("/folder1"));
		
	//关闭客户端
	client.close();
}

使用Java的-D参数来设置环境变量

@Test
public void test2() throws Exception{
	//指定NameNode地址
	Configuration conf = new Configuration();
	conf.set("fs.defaultFS", "hdfs://192.168.157.111:9000");
		
	//创建一个HDFS的客户端 DistributedFileSystem
	FileSystem client = FileSystem.get(conf);
		
	//创建目录
	client.mkdirs(new Path("/folder1"));
		
	//关闭客户端
	client.close();
}

根据下面的步骤使用Java的-D参数

【hadoop】Java API连接(操作)HDFS,hadoop,hadoop,java,hdfs
【hadoop】Java API连接(操作)HDFS,hadoop,hadoop,java,hdfs
【hadoop】Java API连接(操作)HDFS,hadoop,hadoop,java,hdfs
【hadoop】Java API连接(操作)HDFS,hadoop,hadoop,java,hdfs

使用chmod的命令赋予权限

在linux上, 执行 hdfs dfs -chmod 777 /folder2
将读写执行的权限都给到/folder2

@Test
public void test4() throws Exception{
	//指定NameNode地址
	Configuration conf = new Configuration();
	conf.set("fs.defaultFS", "hdfs://192.168.157.111:9000");
		
	//创建一个HDFS的客户端 DistributedFileSystem
	FileSystem client = FileSystem.get(conf);
	
	//创建目录
	client.mkdirs(new Path("/folder2/folder3"));
		
	//关闭客户端
	client.close();
}

修改参数配置

先停止HDFS
【hadoop】Java API连接(操作)HDFS,hadoop,hadoop,java,hdfs
进入HADOOP_HOME/etc/hadoop路径,编辑hdfs-site.xml文件

【hadoop】Java API连接(操作)HDFS,hadoop,hadoop,java,hdfs

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

【hadoop】Java API连接(操作)HDFS,hadoop,hadoop,java,hdfs

保存后再启动HDFS,但注意在启动后,等待一段时间在去进行操作,因为HDFS启动的时候有一段时间是安全模式,所以在安全模式下是操作不了HDFS的。文章来源地址https://www.toymoban.com/news/detail-599582.html

到了这里,关于【hadoop】Java API连接(操作)HDFS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HDFS Java API 操作

    Hadoop是使用Java语言编写的,因此使用Java API操作Hadoop文件系统,HDFS Shell本质上就是对Java API的应用,通过编程的形式,操作HDFS,其核心是使用HDFS提供的Java API构造一个访问客户端对象,然后通过客户端对象对HDFS上的文件进行操作(增,删,改,查) 1、hdfs 常见类与接口 Hadoop

    2023年04月12日
    浏览(29)
  • Java Api操作HDFS

    链接:https://pan.baidu.com/s/1yUnJh-j9EKmL2hPF8biAtg?pwd=dv12 提取码:dv12 之前配置的 Hadoop 的 core-site.xml 文件中的配置的 fs.defaultFS 地址是 hdfs://localhost:9000 ,然后后面 Java 连不上 hdfs 9000 端口也是打开了,但就是连不上 9870 端口也能正常访问 防火墙也关闭了,也不行 查阅诸多资料发现问

    2024年04月28日
    浏览(34)
  • HDFS 的Java API操作

    1、环境搭建 基于Linux的Hadoop(2.7.4)集群 windowsp平台的hadoop JDK hadoop和jdk的环境变量 IDEA 2、下载windowsp平台的hadoop,版本要与Linux下的一致 可以使用下载的Linux平台的Hadoop解压。然后在/bin目录下添加Windows相关依赖winutils.exe、winutils.pdb、hadoop.dll 然后在目录hadoopwhadoop-2.7.4etchad

    2024年02月04日
    浏览(26)
  • Java API 操作HDFS文件

    使用JavaAPI操作hdfs 文件的常用操作代码 1.创建目录 2.创建文件 3.重命名 4.上传本地文件到hdfs 5.查看某个目录下的所有文件 6.查看文件块信息 7.文件读写 8.文件上传 9.文件下载 10.使用字节流读取数据 11.删除文件 12.删除文件夹 13.自定义数据输入流

    2024年02月11日
    浏览(27)
  • Java 操作 Hadoop 集群之 HDFS 的应用案例详解

    注意:本文内容基于 Hadoop 集群搭建完成基础上: Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤 本文的内容是基于下面前提: Hadoop 集群搭建完成并能正常启动和访问 Idea 和 Maven 分别安装完成 需要有 JavaSE 基础和熟悉操作hadoop 的 hdfs dfs 命令 Maven 及 idea 中 Maven 相关配置 本地

    2024年04月16日
    浏览(31)
  • 大数据学习:使用Java API操作HDFS

    一、创建Maven项目 二、添加依赖 在 pom.xml 文件里添加 hadoop 和 junit 依赖 三、创建日志属性文件 在 resources 目录里创建 log4j.properties 文件 代码 四、在HDFS上创建文件 在 /ied01 目录创建 hadoop2.txt 文件 创建 net.xxr.hdfs 包,在包里创建 CreateFileOnHDFS 类 编写 create1() 方法 结果 利用H

    2024年02月08日
    浏览(27)
  • Hadoop 使用Linux操作系统与Java熟悉常用的HDFS操作

    注意看评论区获取完整代码资料 目录 一、实验目的 二、实验平台 三、实验步骤 理解HDFS在Hadoop体系结构中的角色; 熟练使用HDFS操作常用的Shell命令; 熟悉HDFS操作常用的Java API。 操作系统:Linux(建议Ubuntu16.04); Hadoop版本:2.7.1; JDK版本:1.8或以上版本; Java IDE:Eclipse。

    2024年02月03日
    浏览(42)
  • 【Hadoop】HDFS API 操作大全

    🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 🍁🪁🍁 🪁🍁🪁🍁 感谢点赞和关注 ,

    2024年02月07日
    浏览(31)
  • Hadoop HDFS的API操作

    hadoop的 Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:)。 配置HADOOP_HOME环境变量 配置Path环境变量。 不能放在包含有空格的目录下,cmd 输入hadoop显示此时不应有 hadoop-3.0.0bin。我放在E:Program Files (x86) hadoop-3.0.0bin中,就出现错误 验证Hadoop环境变量是否正常。双击

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包