Hadoop之HDFS客户端操作

Posted linkworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop之HDFS客户端操作相关的知识,希望对你有一定的参考价值。

1. HDFS 客户端环境准备

1.1 windows 平台搭建 hadoop 2.8.5

2. 创建Maven工程

# pom.xml
<dependencies>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
          <version>2.8.2</version>
      </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-common</artifactId>
          <version>2.8.5</version>
      </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-client</artifactId>
          <version>2.8.5</version>
      </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-hdfs</artifactId>
          <version>2.8.5</version>
      </dependency>
  </dependencies>

2.1 配置src/main/resources/log4j.properties

## 输出到控制台
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d    %p    [%c] - %m%n

## 输出到文件
#log4j.appender.logfile=org.apache.log4j.FileAppender
#log4j.appender.logfile.File=target/spring.log
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d    %p    [%c] - %m%n

2.2 创建HDFSClient类

public class HDFSClient {

    public static void main(String[] args) {
        
        Configuration conf = new Configuration();
        // NameNode地址
        conf.set("fs.defaultFS", "hdfs://服务器IP地址:9000");
        
        try {
            // 1. 获取hdfs客户端对象
            FileSystem fs = FileSystem.get(conf);
            
            // 2. 在hdfs上创建路径
            fs.mkdirs(new Path("/0526/noodles"));
            
            // 3. 关闭资源
            fs.close();
            
            // 4. 程序结束
            System.out.println("操作结束==========");
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2.2.1 异常处理

  • “Permission denied”

技术图片

技术图片

2.3 HDFSClient类(升级版)

import java.net.URI;

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 Exception {
        
        Configuration conf = new Configuration();
        // 1. 获取hdfs客户端对象
        FileSystem fs = FileSystem.get(new URI("hdfs://服务器IP地址:9000"), conf, "root");
        
        // 2. 在hdfs上创建路径
        fs.mkdirs(new Path("/0526/test002"));
        
        // 3. 关闭资源
        fs.close();
        
        // 4. 程序结束
        System.out.println("操作结束==========");
    }
}


参考资料:

以上是关于Hadoop之HDFS客户端操作的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop之HDFS客户端操作

大数据技术之Hadoop(HDFS)概述Shell操作API操作读写流程工作机制

大数据技术之Hadoop(HDFS)概述Shell操作API操作读写流程工作机制

Hadoop之HDFS的存储原理(运行原理)

大数据技术之_04_Hadoop学习_01_HDFS_HDFS概述+HDFS的Shell操作(开发重点)+HDFS客户端操作(开发重点)+HDFS的数据流(面试重点)+NameNode和Seconda

hadoop之hdfs安全模式