hadoop的idea环境搭建

大数据专栏
上一篇 主目录 下一篇

【前言】
Intellij IDEA连接Hadoop HDFS实现本地调试


1 在IDEA中安装Hadoop插件

插件下载地址
CSDN
GitHub
安装插件
在这里插入图片描述
重启IDEA,菜单栏新增Hadoop
在这里插入图片描述

菜单栏Hadoop–设置,填写连接参数

在这里插入图片描述
连接成功
在这里插入图片描述
每次更改文件,可能都需要以用户登录权限,比较麻烦。这个可以配置,在hdfs-site.xml来配置

<property>
	<name>dfs.permissions</name>
	<value>false</value>
</property>

2 操作虚拟机hdfs集群

2.1 创建Maven项目

在这里插入图片描述
代码结构如下:
在这里插入图片描述

2.2 pom.xml添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
### 如何在 IntelliJ IDEA 中配置 Hadoop 开发环境 #### 创建 Maven 项目并设置依赖项 为了开始构建支持 Hadoop 的应用程序,在 IntelliJ IDEA 中创建一个新的 Maven 项目[^1]。通过这种方式,能够利用 Maven 自动化管理项目的依赖关系。 对于那些偏好手动控制依赖版本的人来说,可以选择不使用Maven而直接向工程中加入所需的Jar文件作为库的一部分;这可以通过菜单栏中的【File】->【Project Structure】->【Libraries】来完成,并在此处添加必要的Hadoop JARs到classpath里去[^2]。 #### 导入 Hadoop 库 无论是采用哪种方式引入外部资源——即通过Maven仓库获取或是从本地路径加载预先下载下来的压缩包形式分发的二进制文件——都需要确保所选版本与目标集群上的Hadoop部署相匹配。如果决定走非Maven路线,则需特别注意正确处理可能存在的冲突以及缺失的依赖问题[^3]。 #### 设置环境变量 (仅限于本地运行时) 当打算让程序访问实际的数据节点而非仅仅模拟执行流程的时候,就需要适当调整系统的`PATH`和其他相关环境变量以便使Java应用能找到命令行工具和服务接口的位置。此步骤通常涉及编辑`.bashrc`或相应的shell初始化脚本以永久生效。 #### 编写测试代码验证配置有效性 最后一步是在IDE内部编写简单的MapReduce作业比如WordCount实例来检验整个集成过程是否成功。记得把源码放置于`src/main/java/...`这样的标准结构之下,因为只有在这个特定位置才允许新建类定义[^4]。 ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class WordCount { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizingMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } public static class TokenizingMapper extends Mapper<Object, Text, Text, IntWritable> {...} public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> {...} } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值