[Hadoop]macOS使用IDEA实现访问HDFS操作

关于搭建集群请先移步这篇文章:从安装第一台Linux开始搭建Hadoop完全分布式

想要访问HDFS,我们需要依赖包文件,本篇文章采用pom文件远程下载依赖的方式(这样项目移植性更高)。

使用IDEA创建一个Maven项目:

不需要选择组件,直接下一步,创建好Maven项目后,在pom.xml文件加入以下依赖,并重载pom文件(reload):

<dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>3.3.1</version>
        </dependency>

        <!--  HDFS 模块 -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>3.3.1</version>
        </dependency>

        <!--  MapReduce 模块 -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>3.3.1</version>
        </dependency>

        <!-- YARN 模块 -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-yarn-api</artifactId>
            <version>3.3.1</version>
        </dependency>
</dependencies>

 

等待pom文件重载完成,自动下载好HDFS所需的依赖包。

使用scp命令将Linux集群的配置文件下载到本地resources目录:

scp root@hadoop-master:/usr/local/hadoop/etc/hadoop/core-site.xml resources
scp root@hadoop-master:/usr/local/hadoop/etc/hadoop/hdfs-site.xml resources

编写API测试文件:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;
//import org.apache.hadoop.hdfs.DistributedFileSystem;
//import org.apache.hadoop.hdfs.protocol.DatanodeInfo;

import java.net.URI;

public class API {
    public static FileSystem getFileSystem() {
        try {
            Configuration conf = new Configuration();
            URI uri = new URI("hdfs://hadoop-master:9000");
            FileSystem fs = FileSystem.get(uri, conf);
            return fs;
        } catch (Exception e) {
            // 打印异常信息,方便调试
            e.printStackTrace();
            throw new RuntimeException("Error while getting Hadoop FileSystem: " + e.getMessage(), e);
        }
    }

    public static void listfile() throws Exception {
        Configuration conf = new Configuration();
        URI uri = new URI("hdfs://hadoop-master:9000");
        FileSystem fs = FileSystem.get(uri, conf);
        FileStatus[] status = fs.listStatus(new Path("hdfs://hadoop-master:9000/"));
        Path[] listfile = FileUtil.stat2Paths(status);
        for (Path p : listfile) {
            System.out.println(p);
        }
        fs.close();
    }


    public static void main(String[] args) throws Exception {
        System.out.println(getFileSystem());
        listfile();

    }
}

运行Java文件:

可以看到控制台已经成功列出HDFS文件系统中的目录和文件,我只创建了一个test目录,所以控制台显示信息为:

hdfs://hadoop-master:9000/test

扩展:Big Data Tools工具

这是一个可以连接多种文件系统类型的工具,包括但不限于HDFS。

在IDEA的Pugins中搜索Big Data Tools,安装后重启IDEA:

在右侧边栏点开Big Data Tools新建一个HDFS连接:

Authentication Type选择Explicit uri,输入主节点的主机名或者IP地址,写主机名需要在本地macOS系统hosts文件中添加IP映射。

可以通过下面的Hadoop查看系统状态,右侧的Big Data Tools管理文件系统。

 

版权声明:
作者:小鱼
链接:https://afish.org/index.php/2023/11/16/hadoop_macos/
来源:小鱼的blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录