
(五)IntelliJ IDEA操作HDFS
发布日期:2021-05-16 12:59:42
浏览次数:17
分类:精选文章
本文共 3389 字,大约阅读时间需要 11 分钟。
导入 HDFS jar 包
在 HDFS 开发过程中,若项目使用 Maven,应将相关 HDFS 依赖添加到项目的 pom 文件中,需与 Hadoop 版本匹配。首次下载可能较慢,请耐心等待。
Maven 项目依赖配置
在 pom.xml 添加以下依赖:
org.apache.hadoop hadoop-common 2.6.5 org.apache.hadoop hadoop-hdfs 2.6.5 org.apache.hadoop hadoop-client 2.6.5
以上配置适用于 Maven 项目,需根据实际 Hadoop 版本调整。
非 Maven 项目环境配置
若不使用 Maven,需手动添加 HDFS 核心和相关客户端 jar 包,建议将以下路径加入类路径:
/usr/local/hadoop/share/hadoop/common/
下的 hadoop-common-2.6.5.jar
和 hadoop-nfs-2.6.5.jar
/usr/local/hadoop/share/hadoop/common/lib/
下的所有 jar 包(包括依赖)/usr/local/hadoop/share/hadoop/hdfs/
下的 hadoop-hdfs-2.6.5.jar
和 hadoop-hdfs-nfs-2.6.5.jar
/usr/local/hadoop/share/hadoop/hdfs/lib/
下的所有 jar 包确保上述路径符合你的实际 Hadoop 安装目录,部署前需确认路径号误。
编写 Java 程序
以下是两组用于操作 HDFS 的 Java 代码示例。
检查 HDFS 中文件是否存在
package Hadoop.demo;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class HdfsTest { public static void main(String[] args) { try { String fileName = "/text/test.txt"; Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://master:9000"); conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); FileSystem fs = FileSystem.get(conf); if (fs.exists(new Path(fileName))) { System.out.println("文件存在"); } else { System.out.println("文件不存在"); } } catch (Exception e) { e.printStackTrace(); } }}
读取 HDFS 文件内容
package Hadoop.demo;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import java.io.BufferedReader;import java.io.InputStreamReader;public class HdfsRead { public static void main(String[] args) { try { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://master:9000"); conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); FileSystem fs = FileSystem.get(conf); Path file = new Path("/text/test.txt"); FSDataInputStream in = fs.open(file); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line = reader.readLine(); System.out.println(line); reader.close(); in.close(); fs.close(); } catch (Exception e) { e.printStackTrace(); } }}
常见问题与解决方案
运行代码可能出现以下错误:
错误示例:
Cannot start process, the working directory 'J:\HadoopTest\HadoopTest' does not exist
解决方法:
检查工作目录是否存在:
- 确保项目根目录路径正确,建议检查
HadoopTest
文件夹是否存在或路径是否符合你的操作系统。
检查相关 Hadoop 服务是否运行:
- 在任务栏任务栏右下角(Win)的运行栏中,检查 Hadoop 的程序是否正在运行:
C:\regular\bin\hadoop.cmd
- 确保 Hadoop 服务在运行,特别是在本地主机是否有 namenode 和 datanode 的错误日志。
处理版本不兼容问题:
- 检查 Hadoop 版本和项目中使用的依赖版本是否相匹配,确保没有类似
版本不兼容
的错误提示。
手动创建工作目录:
- 指定当前项目根目录为工作目录:
chdir J:\HadoopTest\HadoopTest
- 或直接在工作目录下运行代码:
J:\HadoopTest\HadoopTest\helloWorld.bat
注意:
HDFS 是分布式存储,需正确配置网络(jomux)的情况下才能正常工作,请根据实际 [Hadoop 集群配置](http:// hurts:123@ UINavigationController-/search?q=hadoopcluster) 满足网络环境。
建议将 Hadoop 服务 (
hadoop-daemon
) 设置为服务的形式运行,这样在后台管理和停止更为简便。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月23日 08时09分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
: bad interpreter: 没有那个文件或目录
2023-01-23
@ControllerAdvice用法
2023-01-23
#VERDI# 关于Verdi使用的几个常用技巧整理
2023-01-23
@Resource注解的使用
2023-01-23
@ResponseBody 和 @RequestBody
2023-01-23
A + B 九度oj
2023-01-23
A20地址线
2023-01-23
abaqus质量缩放系数取值_ABAQUS的质量缩放
2023-01-23
Accessibility
2023-01-23
08-信息收集之端口收集(总结版)
2023-01-23
15种下载文件的方法&文件下载方法汇总&超大文件下载
2023-01-23
anaconda、python卸载后重装以及anaconda--443
2023-01-23
AWVS工具太顶了,漏洞扫描工具AWVS介绍及安装教程
2023-01-23
CentOS 系列:CentOS 7文件系统的组成
2023-01-23