news 2026/6/26 1:29:36

HDFS javaAPI-windows的IDEA中java文件在linux中的hadoop平台运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HDFS javaAPI-windows的IDEA中java文件在linux中的hadoop平台运行

运行前提

1、windows能ping通虚拟机IP地址【虚拟机网络改为桥接模式,改为固定IP】

2、Linux开放端口:9000,9870,8088【使用windows的 PowerShell,执行:Test-NetConnection IP地址 -Port 9000,需要修改linux中hadoop配置文件hdfs-site.xml和core-site.xml】

3、windows配置Hadoop本地依赖

4、Maven中pom.xml文件中引入和linux中hadoop集群版本一致的hadoop依赖

5、hdfs的RPC地址为:hdfs:ip地址:9000,不用9870网页端口

一、在IDEA的Maven项目中创建MkDirDemo类

(1)先确认目录结构(Maven 标准目录,必须按这个来)

项目根目录

└── src

├── main

│ └── java // 业务代码存放位置(创建Java文件在这里)

└── test

└── java // 单元测试代码存放位置

关键前提

main/java 文件夹必须是蓝色源码根目录,否则右键不会出现 Java Class 选项。

(2)hdfs java操作代码输入

import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class MkdirDemo { public static FileSystem getFileSystem() throws IOException, URISyntaxException, InterruptedException { Configuration conf=new Configuration(); URI url=new URI("hdfs://192.168.17.128:9000"); final FileSystem fileSystem=FileSystem.get(url,conf,"root"); return fileSystem; } public static void list(String dir) throws Exception{ FileSystem fileSystem=getFileSystem(); FileStatus[] listStatus=fileSystem.listStatus(new Path(dir)); for(FileStatus fileStatus : listStatus){ boolean isDir=fileStatus.isDirectory(); String name=fileStatus.getPath().toString(); System.out.println(isDir+" "+name); } } public static void mkdir(String path) throws Exception{ final FileSystem fileSystem=getFileSystem(); fileSystem.mkdirs(new Path(path)); //遍历文件夹下的内容 list("/"); } public static void create(String path) throws Exception{ final FileSystem fileSystem=getFileSystem(); fileSystem.create(new Path(path)); //遍历文件夹下的内容 list("/"); } public static void delete(String path) throws Exception{ final FileSystem fileSystem=getFileSystem(); fileSystem.delete(new Path(path),true); //遍历文件夹下的内容 list("/"); } public static void main(String[] args) throws Exception{ mkdir("/bigdata"); // delete("bigdata"); // create("demo.txt"); } }

(3)验证pom.xml文件中hadoop依赖是否和linux中hadoop版本一致

在linux中查看hadoop版本

hadoop version

修改Maven项目中pom.xml中的hadoop依赖版本与其一致,并更新Maven

(4)确认 HDFS RPC 地址(关键)

Linux 执行查看代码连接地址:

hdfs getconf -confKey fs.defaultFS

# 输出应为 hdfs://192.168.17.128:9000

二、Windows 本地配置 Hadoop 运行环境(必做,否则报 winutils 缺失)

(1)下载 Windows 适配 hadoop 二进制包Hadoop3.x 下载对应 win 工具包,解压到无中文路径,例:D:\hadoop-3.x-win

内部 bin 文件夹包含 winutils.exe、hadoop.dll2.2 Windows 系统环境变量配置

(2)新建系统变量:HADOOP_HOME=D:\hadoop-3.x-win

(3)Path 新增:%HADOOP_HOME%\bin

(4)重启 IDEA(环境变量生效)

三、虚拟机 Linux 网络 & 防火墙配置

(1)虚拟机网络设置VMware/VirtualBox 网卡改为桥接模式,重启虚拟机,IP 固定为 192.168.17.128

linux中查看虚拟IP:

ip addr

Windows CMD 测试连通:ping 192.168.17.128

(2) Linux 放行端口bash运行

(1) 永久开放RPC 9000、网页9870、YARN8088

firewall-cmd --add-port=9000/tcp --permanent

firewall-cmd --add-port=9870/tcp --permanent

firewall-cmd --add-port=8088/tcp --permanent

firewall-cmd --reload

# 查看开放端口

firewall-cmd --list-ports

测试时:可以直接关闭防火墙systemctl stop firewalld

(2)修复hadoop配置【可以解决windows中ping通虚拟机IP地址访问9000端口】

进入 hadoop 配置目录

cd $HADOOP_HOME/etc/hadoop

修改配置一:vim hdfs-site.xml,添加下面配置,让 NameNode 监听全部网卡

<property>

<name>dfs.namenode.rpc-bind-host</name>

<value>0.0.0.0</value>

</property>

修改配置二: core-site.xml

错误写法(仅本地访问):

<value>hdfs://localhost:9000</value>

正确写法(绑定虚拟机实际 IP):

<property>

<name>fs.defaultFS</name>

<value>hdfs://192.168.17.128:9000</value>

</property>

第三步:重启 Hadoop 集群生效

第四步:启动完再次执行 netstat -tlnp | grep 9000,确认 Local Address 变为 0.0.0.0:9000。

tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 1234/java【正确】

0.0.0.0:9000 = 监听所有网卡,Windows 可以连接。

tcp 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1234/java【错误】

127.0.0.1:9000 = 仅本机 Linux 内部能访问,Windows 远程直接拒绝连接。

最后验证端口是否通:

windows中 PowerShell 端口检测工具(比 curl 更直观)

Win+X 打开 PowerShell,执行:

Test-NetConnection 192.168.17.128 -Port 9000

返回 TcpTestSucceeded: False = 端口被拒绝;True = 端口正常

四、执行

执行结果如下图所示:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 1:28:16

X浏览器:免费又极简,建议收藏 !

手机上自带的浏览器要么臃肿要么广告满天飞&#xff0c;用着糟心。之前一直用夸克&#xff0c;后来广告越来越多就换了&#xff0c;折腾了好几个才发先X浏览器&#xff0c;用到现在没再换过。这浏览器安装包才2MB&#xff0c;启动基本是秒开&#xff0c;装完占的存储也小德离谱…

作者头像 李华
网站建设 2026/6/26 1:27:35

Web渗透测试实战入门:从信息收集到漏洞利用的标准化流程

1. 项目概述&#xff1a;从“黑盒”到“白盒”的实战思维刚入行那会儿&#xff0c;看别人挖洞、渗透&#xff0c;总觉得像电影里的黑客&#xff0c;敲几行代码&#xff0c;网站就“沦陷”了&#xff0c;神秘又刺激。后来自己上手&#xff0c;才发现根本不是那么回事。真正的网站…

作者头像 李华
网站建设 2026/6/26 1:26:29

MuleSoft企业级AI编排:LLM服务化治理与生产落地实践

1. 项目概述&#xff1a;当企业级集成平台遇上大语言模型“AI Orchestration in Action: How MuleSoft and LLMs Fuel the Future of Enterprise AI”——这个标题不是一句空泛的行业口号&#xff0c;而是我在过去18个月里亲手落地的三个生产级AI增强型集成项目的统一内核。它讲…

作者头像 李华
网站建设 2026/6/26 1:24:03

TestDisk PhotoRec终极指南:三步快速恢复丢失的分区和文件

TestDisk & PhotoRec终极指南&#xff1a;三步快速恢复丢失的分区和文件 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 你是否曾因误删分区而惊慌失措&#xff1f;是否因格式化硬盘而追悔莫及&#xff…

作者头像 李华
网站建设 2026/6/26 1:20:45

课堂笔记写不完不会整理?2026如何快速整理课堂笔记哪个好怎么选

针对“课堂笔记写不完不会整理&#xff0c;2026如何快速整理课堂笔记哪个好怎么选”这个问题&#xff0c;直接给核心结论&#xff1a;选工具优先看三个标准&#xff0c;一是课堂录音转写准确率够不够&#xff0c;二是整理完能不能直接辅助复习记忆&#xff0c;三是能不能适配论…

作者头像 李华
网站建设 2026/6/26 1:20:46

5秒解锁网易云音乐NCM加密文件:ncmdump无损转换全攻略

5秒解锁网易云音乐NCM加密文件&#xff1a;ncmdump无损转换全攻略 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲&#xff0c;却发现在其他设备上无法播放&#xff1f;当你精心收藏的音乐被…

作者头像 李华