[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
二维码
文章目录
关闭
共有 0 条评论