HDFS的API操作

本文介绍了如何在IDEA中搭建Hadoop开发环境,重点关注HDFS的Java API操作,包括文件的增删改查和上传下载。在Window环境下,需要配置HADOOP_HOME和PATH变量。代码实战部分详细解析了获取HDFS客户端、执行文件操作的步骤,强调了fs.defaultFS配置参数的重要性。
摘要由CSDN通过智能技术生成

HDFS的Java操作(基本的增删改查、文件的上传下载、本地与云服务器交互等)

环境:IDEA、Linux虚拟机上搭建的Hadoop集群
hdfs在生产应用中主要是客户端的开发,其核心步骤是从hdfs提供的api中构造一个HDFS的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS上的文件

1.搭建开发环境

1.1IDEA中的POM文件导入依赖

<build>
        <plugins>
           <!-- 指定JDK的版本--><plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
<dependencies>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.7.3</version>
    </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

注:如需手动;引入jar包,HDFS的jar包–>Hadoop的安装目录的share下

1.2Window下开发的说明

建议在linux下进行hadoop应用的开发,不会存在兼容性问题。如在window上做客户端应用开发,需要设置以下环境:
A、在windows的某个目录下解压一个hadoop的安装包
B、将安装包下的lib和bin目录用对应windows版本平台编译的本地库替换
C、在window系统中配置HADOOP_HOME指向你解压的安装包
D、在windows系统的path变量中加入hadoop的bin目录

2.接下来直接上实战代码

2.1源码

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;

/**
 * @author:
 */
public class HDFSApi {
   
    FileSystem fileSystem;
    /**
     *    获取hadoop的连接对象
     */
   @Before
   public void init(){
   
       //final URI uri, final Configuration conf,
       //        final String user
       Configuration conf = new Configuration();
       conf.set("dfs.replication","1");
       try {
   
            fileSystem = FileSystem.get(URI.create("hdfs://192.168.20.111:9000"), conf, "root");
       } catch (IOException e) {
   
           e.printStackTrace();
       } catch (InterruptedException e) {
   
           e.printStackTrace();
       }
   }

    /**
     * 创建目录或者文件
      */
    @Test
    public void mkdir(){
   
        try {
   
            boolean mkdirs = fileSystem.mkdirs(new Path("/test1/bbb"));
           
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值