Hadoop分布式文件系统(HDFS)Java接口(HDFS Java API)详细版

本文详细介绍了如何使用Hadoop的Java API进行HDFS操作,包括创建目录、上传文件、查看文件列表、统计文件信息、修改文件权限、创建文件、追加内容以及读取文件内容等步骤,提供了完整的代码示例和结果验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

误用聪明,何若一生守拙
滥交朋友,不如终日读书

相关连接

HDFS相关知识

Hadoop集群连接

WordCount程序示例

使用Java API编写WordCount程序

HDFS Java API

代码下载

MyHadoop.java下载 提取码z458

具体介绍

注意:在使用Eclipse或者IntelliJ IDEA成功连接Hadoop集群后,方可进行如下操作

  • 本测试类类名为MyHadoop,其包含FileSystem类的属性fs和Configuration类的属性conf
  • 需要定义HDFSUtil()方法
  • 需要在主函数中加入System.setProperty(“HADOOP_USER_NAME”, ”root”);,以解决org.apache.hadoop.security.AccessControlException:Permission denied: user=...错误
package neu.software;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;

import java.io.IOException;

public class MyHadoop {
   
    private FileSystem fs;
    private Configuration conf;

    public static void main(String args[]) throws IOException {
   
        System.setProperty("HADOOP_USER_NAME","root");
        MyHadoop myHadoop = new MyHadoop();
        myHadoop.HDFSUtil();
    }
    public void HDFSUtil() throws IOException {
   
        conf = new org.apache.hadoop.conf.Configuration();
        fs = FileSystem.get(conf);
    }
}

1. 在HDFS中创建目录 /data/test

方法定义
public boolean mkdir(String path) throws IOException {
   
        Path srcPath = new Path(path);
        return fs.mkdirs(srcPath);
    }
方法测试
public static void main(String args[]) throws IOException {
   
	System.setProperty("HADOOP_USER_NAME","root");
	MyHadoop myHadoop = new MyHadoop();
	myHadoop.HDFSUtil();
	myHadoop.mkdir("/data/test");
}
结果验证(XShell命令窗口)
[root@master ~]# hadoop fs -ls /data
Found 1 items
drwxr-xr-x   - root supergroup          0 2019-10-15 11:14 /data/test

2. 将本地文件夹mytest通过Java API上传到HDFS的 /data/test 目录中

方法定义
public void put(String src, String dst, boolean delSrc, boolean overwritted) throws IOException {
   
        Path srcPath = new Path(src);
        Path dstPath = new Path(dst);
        //调用文件系统的文件复制函数,delSrc参数指是否删除原文件,true为删除
        fs.copyFromLocalFile(delSrc, overwritted, srcPath, dstPath);
    }
方法测试
public static void main(String args[]) throws IOException {
   
	System.setProperty("HADOOP_USER_NAME","root");
	MyHadoop myHadoop = new MyHadoop();
	myHadoop.HDFSUtil();
	//myHadoop.mkdir("/data/test"); //不能二次执行
	myHadoop.put("C:\\Users\\Lenovo\\Desktop\\localfile\\mytest", "/data/test/", 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值