关于使用eclipse对hdfs进行操作权限不足的问题

 使用eclipse在hdfs上创建目录时提示错误

 如图是权限不够的问题到  usr/local/hadoop-2.6.4/logs/mapred-root-historyserver-master.out

目录下的  core-site.xml增加

<property>

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

<configuration>
   <property>
   <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
    </property>
   <property>
    <name>hadoop.tmp.dir</name>
   <value>/var/log/hadoop/tmp</value>
   </property>
<property>

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

之后在赋予权限hadoop fs -chmod -R 777 /

再次运行程序就解决了没有Exception了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HDFS的Java API可以在Eclipse使用。首先,需要在Eclipse中创建一个Java项目,并将Hadoop的jar文件添加到项目的classpath中。然后,可以使用HDFS的Java API来编写代码,例如读取和写入文件,创建目录等。在运行代码之前,需要确保Hadoop集群正在运行,并且可以通过配置文件连接到HDFS。可以使用以下代码来连接到HDFS: Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://localhost:9000"); FileSystem fs = FileSystem.get(conf); 其中,"localhost:9000"是HDFS的默认地址。然后,可以使用FileSystem对象来执行各种操作,例如: // 创建一个新的目录 fs.mkdirs(new Path("/mydir")); // 写入一个文件 FSDataOutputStream out = fs.create(new Path("/myfile.txt")); out.writeBytes("Hello, world!"); out.close(); // 读取一个文件 FSDataInputStream in = fs.open(new Path("/myfile.txt")); byte[] buffer = new byte[1024]; int bytesRead = in.read(buffer); in.close(); // 删除一个文件 fs.delete(new Path("/myfile.txt"), true); 这只是HDFS Java API的一小部分,还有很多其他的操作和函数可以使用。 ### 回答2: HDFS是Hadoop分布式文件系统的缩写,是一个可扩展的、基于分布式的文件系统。使用HDFS可以存储大型数据集并运行大型数据处理应用程序,其Java API可用于与HDFS进行交互和操作。其中,Eclipse作为一种流行的Java开发环境,也可以用于开发基于HDFS的Java应用程序。 在使用Eclipse开发HDFS Java程序之前,我们需要下载和安装Hadoop,并在Eclipse中设置其环境变量。接下来,我们可以在Eclipse中创建一个Java项目,并将Hadoop的相关JAR包添加到项目的类路径中,以便能够使用Hadoop API。 首先,我们需要创建一个Configuration对象,该对象用于指定运行Hadoop的集群配置信息。该配置信息包括文件系统URI、用户ID和集群节点等信息。在创建Configuration对象时,我们可以使用已知的XML配置文件,也可以从程序中指定。 接下来,我们可以使用FileSystem对象来操作HDFS文件系统。我们可以使用FileSystem的get()方法获取一个FileSystem实例,也可以从Configuration对象中获取默认的文件系统。然后,我们可以使用FileSystem的一系列方法来操作HDFS文件系统,包括创建、删除、读取和写入文件等操作。 比如,我们可以使用FileSystem的create()方法创建一个HDFS文件,并使用write()方法向该文件写入数据;也可以使用mkdirs()方法在HDFS上创建一个目录;使用delete()方法删除一个文件或目录;使用open()方法读取一个文件,并使用read()方法读取文件数据等。此外,我们还可以使用FileStatus和FileStatus类来操作HDFS上的文件属性,比如获取文件大小、修改时间等信息。 总之,使用HDFS的Java API可以方便地操作Hadoop分布式文件系统,而通过在Eclipse中创建Java项目和添加Hadoop JAR包,我们可以使用Eclipse来开发基于HDFS的Java应用程序。 ### 回答3: HDFS (Hadoop Distributed File System) 是 Hadoop 生态中的关键组件之一,它为大数据存储提供了高可靠性和高扩展性的解决方案。HDFS 的 Java API 充分利用了 Java 语言的优势,为 Java 开发者提供了方便的 HDFS 操作接口。本文介绍 HDFS Java API 在 Eclipse 开发环境下的使用方法。 1. 安装 Hadoop 首先需要在本地或远程服务器上安装 Hadoop 。安装方法不在本文讨论范围内,可以参考 Hadoop 官方文档或其他资料。 2. 新建 Java 项目 在 Eclipse 中新建一个 Java 项目。这里以 Eclipse 2019-12 版本为例。点击菜单栏 File -> New -> Java Project,输入项目名称,点击 Finish 按钮即可创建项目。 3. 导入 Hadoop 依赖库 在项目中使用 Hadoop 的 Java API 需要导入 Hadoop 相关的依赖库。可以手动下载相关的 jar 包,也可以使用 Maven 或 Gradle 等构建工具自动获取依赖。 3.1 手动导入依赖库 手动导入依赖库需要先从 Hadoop 官网上下载相关的 jar 包,然后将其添加到项目的 build path 中。 方式1:直接复制 jar 包到项目 lib 目录下,然后在 Eclipse 中右键项目 -> Build Path -> Add Library 选择 User Library,再点击 Next -> User Libraries -> New,输入 User library name,选择 jar 包,点击 OK、Finish 即可。 方式2:在项目右键 -> Properties -> Java Build Path -> Libraries 中点击 Add External Jars… 按钮,选择 jar 包,然后点击 OK 即可。 3.2 使用 Maven 导入依赖库 使用 Maven 导入 Hadoop 依赖库需要在项目的 POM 文件中添加 Hadoop 相关的依赖项。具体做法是打开项目的 POM 文件,添加以下配置项: ```xml <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.3.0</version> </dependency> </dependencies> ``` 4. 使用 HDFS Java API 完成依赖库的导入后,就可以开始使用 HDFS Java API 进行操作了。以下是一些基本操作的示例代码: ```java import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HdfsClient { public static void main(String[] args) throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://localhost:9000"); FileSystem fs = FileSystem.get(conf); // 创建文件夹 String dirName = "/test"; Path dirPath = new Path(dirName); fs.mkdirs(dirPath); System.out.println("Create directory " + dirName + " successful"); // 创建文件 String fileName = "/test/readme.txt"; byte[] data = "Hello, Hadoop World!".getBytes(); Path filePath = new Path(fileName); fs.create(filePath).write(data); System.out.println("Create file " + fileName + " successful"); // 读取文件 byte[] buffer = new byte[data.length]; fs.open(filePath).read(buffer); System.out.println("Read file content: " + new String(buffer)); } } ``` 以上代码实现了创建文件夹、创建文件、读取文件等操作。需要注意的是,这里的 HDFS 根目录是 localhost:9000,可以根据实际情况进行修改。 5. 运行代码 完成代码编写后,就可以运行代码并验证操作结果了。选择 HdfsClient.java 文件,右键 -> Run As -> Java Application 即可运行代码。在控制台输出中查看操作结果。 总结 HDFS Java API 提供了方便的操作接口,使得 Java 开发人员能够在 Eclipse 等开发环境下轻松使用 Hadoop 分布式文件系统。通过上述步骤,可以在 Eclipse使用 HDFS Java API 进行开发,进而实现大规模数据存储和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值