一、前言
使用IDEA在本地书写MR程序时候,需要打JAR包上传到服务器执行,不利于调试程序,本文探讨在反复修改程序调试的过程中利用本地环境就可以进行HDFS上的测试。
使用软件为IDEA2021.3+MAVEN3.8.8+HADOOP3.3.6
二、步骤
1、下载HADOOP3.3.6到本地磁盘,解压,注意这个bin目录,一会用到。
2、下载HADOOP的WIN工具,因为HADOOP版本较新,没有对应的,我选择的是3.3.5的。可以从https://github.com/cdarlint/winutils下载。
把其中的hadoop.dll和winutils.exe文件拷贝到刚才解压的HADOOP路径下的bin目录中。注意:最好放到C:\Windows\System32一份,不然有可能不能运行,可以自己测试。
3、配置系统环境变量,这里HADOOP_USER_NAME属性配置你的虚拟机上的用户,有的不写也行,但是最好指定。
4、将Hadoop的相关配置文件添加到项目的resources文件夹下,没有的话可以创建此文件夹。
注意:也有博客说把mapred-site.xml放进来,可以自己测试
如果想打印日志的话,还需要加上log4j.properties文件,里边代码如下:
需要有日志出现 则需要将下面的添加到src下的log4j.properties下(IDEA需要放在resource的目录下)
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c]-%m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c]-%m%n
5、书写程序,利用Maven创建项目,pom文件部分如下:
<dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>3.3.6</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>3.3.6</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.3.6</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>3.3.6</version></dependency>
MR作业的驱动类,指定HDFS运行的路径即可
6、开启集群,然后调试修改程序
7、可能出现的情况:
1)连接不到集群,配置下win的hosts文件
假如你是虚拟机的话就配置
192.168.70.15 master 这里的映射换成你自己的实际IP和hostname
检查下虚拟机网络配置,让虚拟机也可以上网
版权归原作者 Mickey_flY 所有, 如有侵权,请联系我们删除。