win10操作虚拟机中hadoop IntelliJ IDEA直接运行代码(不需要打jar包)

本文介绍了如何在IntelliJ IDEA中直接运行Hadoop MapReduce代码,避免了生成jar包的过程。通过配置环境变量、添加Hadoop依赖到Maven项目,以及解决运行中可能出现的日志和空指针异常问题,可以在Windows环境下连接到虚拟机中的Hadoop进行开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IntelliJ IDEA 2018.2.3 (Ultimate Edition)+Maven
VMware中CentOS6.5
Hadoop2.7.1

上课的时候老师使用的是Eclipse编译器,使用了 eclipse-hadoop的插件。可以直接在eclipse里运行,省去了先生成jar再发送的虚拟机中执行的过程。

由于编译器IDEA没有这种插件所以自己在网上找了一些帖子,对编译器进行配置,达到的效果是可以直接在IDEA中运行MapperReducer等代码并查看代码报错,但是不可以看到hdfs上的文件夹结构(可以在里浏览器使用虚拟机ip50070端口查看),也不可以查看文件内容,只是免去了一直生成jar包的繁琐过程如果大家有可以在idea中可视化文件结构的方法或者其他补充欢迎在下面留言

下面介绍一下操作流程和我遇到的错误:

操作流程

下载对应的Hadoop包
在win10环境变量中添加hadoop包所在的路径(winutils.exe一定要在,其他不确定必不必要)

环境变量怎么找?打开windows的设置然后搜索环境变量,之后在高级设置中打开就可以看到了。
这里写图片描述
找到之后,在用户或者系统环境变量中添加HOME_HADOOP(名字可以自己起)
这里写图片描述
然后在Path中添加%HADOOP_HOME%\bin
这里写图片描述
注意这里\bin是因为我的winutils.exe和hadoop.dll文件在hadoop所在路径的\bin目录下。这个路径要能找到winutils.exe和hadoop.dll文件就可以了。

然后把hadoop.dll文件复制到C:\Windows\System32下(需要管理员权限),然后重启电脑,因为修改了环境变量要给系统一个重新认识自己的过程。

在Maven项目的POM文件中添加hadoop和junit的dependencies如下

<dependencies>
        <dependency>
            <
### 如何在 IntelliJ IDEA 中配置连接到虚拟机上的 Hadoop #### 配置环境 为了实现通过 IntelliJ IDEA 连接到运行虚拟机中的 Hadoop,需完成以下几项准备工作: 1. **安装必要依赖库** 在项目中引入 Apache Hadoop 的核心类库文件。可以通过 Maven 或手动导入 JAR 文件来完成此操作。如果使用 Maven,则需要在 `pom.xml` 文件中添加如下依赖[^1]: ```xml <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.x.x</version> <!-- 替换为实际使用的版本 --> </dependency> ``` 2. **设置 HDFS URL 和端口号** 使用 Java API 访问 HDFS 时,通常会指定 HDFS 的 URI 地址以及对应的端口。默认情况下,NameNode 的 Web UI 页面会在 50070 端口监听请求;而客户端访问 NameNode 则一般通过 8020 端口进行通信。具体地址形式如下所示[^2]: ```java String hdfsUri = "hdfs://<namenode-ip>:8020"; Configuration conf = new Configuration(); conf.set("fs.defaultFS", hdfsUri); FileSystem fs = FileSystem.get(conf); ``` 3. **验证网络连通性** 若无法正常建立与虚拟机内部服务之间的联系,请先确认主机操作系统能够顺利抵达目标机器,并且相应的防火墙策略允许外部流量进入。可尝试执行简单的 ping 测试命令或者利用 telnet 工具探测特定的服务端口状态。 4. **启用 JetBrains Big Data Tools 插件 (推荐)** 自 IntelliJ IDEA 2019 版本之后推出了专门用于大数据处理场景下的工具支持功能模块——Big Data Tools 。借助该插件可以直接图形化管理远程存储资源实例,极大简化了日常开发流程。只需按照提示逐步填写服务器详情即可快速达成目的[^2]. --- #### 示例代码片段 以下是基于官方文档给出的一个基础样例程序演示如何读取位于分布式文件系统路径 `/user/test/input.txt` 下的内容并打印至控制台输出流。 ```java 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) throws Exception{ BasicConfigurator.configure(); // 初始化日志记录器 String uri="hdfs://localhost:8020"; Configuration configuration=new Configuration(); configuration.set("fs.default.name",uri); try(FileSystem fileSystem=FileSystem.get(configuration)){ Path path=new Path("/user/test/input.txt"); if(fileSystem.exists(path)){ System.out.println(new String(fileSystem.open(path).readAllBytes())); }else{ throw new RuntimeException("File not found!"); } } } } ``` --- #### 常见问题排查指南 - 当遇到诸如 “Connection refused” 类型错误消息时,应仔细核查所设定的目标 IP 是否准确无误; - 对于因权限足引发的操作失败情形,考虑调整用户角色定义或是赋予更宽松的安全机制选项; - 如果始终得到预期响应反馈,建议重新启动涉及的所有组件节点服务后再试一次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值