hadoop3.x HDFS java第一个例子

idea 创建maven工程

略

idea创建maven工程必须修改idea配置

修改pom.xml

添加如下依赖:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>3.0.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>3.0.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>3.0.3</version>
    </dependency>
</dependencies>

在 pom.xml 点击右键 -> 【maven】 -> 【reimport】 导入依赖

log4j.properties

打印 hadoop debug 信息

在 resources 文件夹下创建 log4j.properties 文件,内容如下:

log4j.rootLogger=DEBUG, 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

创建测试类

在 test -> java 下创建类 top.malaoshi.test.Main,内容如下:

package top.malaoshi.test;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;

import java.net.URI;

public class Main {
    @Test
    public void mkdir() throws Exception {
        Configuration config = new Configuration();
        // 1 获取文件系统。设置集群url、操作用户
        FileSystem fs = FileSystem.get(new URI("hdfs://hadoop1:8020"), config, "root");

        // 2 创建目录
        boolean res=fs.mkdirs(new Path("/test"));
        System.out.println("result:"+res);

        // 3 关闭
        fs.close();
    }
}

解释:hdfs://hadoop1:8020

hdfs://hadoop1:8020 是 linux hadoop $HADOOP_HOME/etc/hadoop/core-site.xml 中的配置

  • 端口号要一致

解释:root

在 hadoop-env.sh 最下面配置的用户就是 root,如下:

export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

hadoop查看

web方式

http://hadoop1:9870

命令方式

执行下面命令:

hadoop fs -ls /

可以看到已经创建的文件夹


原文出处:/show_1IXaCj4VLZj.html