欢迎光临散文网 会员登陆 & 注册

HDFS Java API应用

2023-06-28 14:35 作者:thisishui  | 我要投稿

CSDN链接:https://blog.csdn.net/m0_69488210/article/details/131430350

1、找到IDEA的MAVEN插件安装目录,修改settings.xml文件,在文件中添加MAVEN淘宝镜像库

修改IDEA的maven插件安装目录下的settings.xml文件

2、在IDEA中新建Marven项目,修改pom.xml,在pom.xml文件中的根节点中,添加一个子节点,如下图:


3、查询maven组件配置https://mvnrepository.com/
!!注意在查询组件时选择的组件要和实际安装的hadoop版本一致,下面的以hadoop-3.1.2版本为例
需要查询的组件:
hadoop-client

hadoop-hdfs

hadoop-common

将所有查询到的组件的XML插入到节点中去,如下图:

pom.xml修改完毕后,点击右下角的"Import Changes"即可将MAVEN库中的JAR包下载到项目中,默认情况下,会从MAVEN官网下载,速度比较慢;可事先配置MAVEN淘宝镜像库,基本方法就是在IntelliJ IDEA的安装目录下,找到MAVEN插件的安装目录,修改其配置文件,将镜像设置添加到配置文件中即可


4、首先在D盘新建一个uploadtohdfs.txt文件,然后运行下面的代码:(注意:以下代码的IP地址要替换为hadoop集群中虚拟机主节点实际的IP地址)


5、运行代码实现hdfs上传文件操作

6、通过命令在hdfs上查看文件上传情况

7、附:HDFS Java API常见异常解决方案

异常记录:

Exception in thread “main” org.apache.hadoop.fs.UnsupportedFileSystemException: No FileSystem for scheme “hdfs”

缺少hadoop-core配置,hadoop-core版本太低,疑似已被放弃,使用hadoop-client代替


Exception in thread “main” java.lang.IllegalArgumentException: Wrong FS: hdfs://192.168.137.10:9000/uploadtohdfs.txt, expected: file:///

未识别到hdfs服务器导致,应该与jdk版本、hadoop-client等配置有关


Exception in thread “main” org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

客户端版本太低,不能使用hadoop-core,而应使用hadoop-client


could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node

HDFS问题,检查DataNode是否启动,如果无异常,可能是元数据异常导致,须清空所有节点中的dfs/name,dfs/data和tmp目录,并重新格式化NameNode


Permission denied: user=Administrator, access=WRITE, inode=“/tmp”:root:supergroup:drwxr-xr-x

写入权限问题,解决此问题后可完成API调试

解决方案之一:

(1)NameNode所在节点创建一个和windows一样的用户(注意大小写)

如:adduser Administrator

(2)创建一个子目录,将权限赋予该用户

如:hadoop fs -mkdir /usr

hadoop fs -chown Administrator /usr

(3)通过java代码可将文件上传到该目录

HDFS Java API应用的评论 (共 条)

分享到微博请遵守国家法律