IDEA远程调试mapreduce程序
来源:互联网 发布:淘宝美工是干嘛的 编辑:程序博客网 时间:2024/05/23 16:09
之前很多人跑mapreduce任务只知道在在本地打成jar,提交到hadoop集群上去跑任务,如果出现错误往往很难定位错误,所以远程debug是开发中不可或缺的技能。通常大家都是在本地写好mapreduce任务,希望能在window环境下运行。
1.这里我的运行环境为:win10,IDEA2017.1.3
2.集群环境:系统centos7.hadoop2.6.0,共7个节点,其中nn节点192.168.236.100,rm节点为192.168.236.102.
3.以一个比较简单的wordcount为示范
4.中途遇到了一些问题的解决方法
配置
1.首先从拷贝集群的hadoop的文件夹,放在电脑磁盘的一个目录,这里我放在D盘
2.在本地配置环境变量:
HADOOP_HOME=D:\hadoop-2.6.0
HADOOP_BIN_PATH=%HADOOP_HOME%\bin
HADOOP_PREFIX=D:\hadoop-2.6.0
3.如果要在window上运行,必须需要对应版本的hadoop.dll放到C;\Windows\System32下
还有对应版本的winutils.exe放在D:\hadoop-2.6.0\bin
4.host文件最好改一下,把集群的ip地址和hostname配在一起
5.在IDEA创建maven项目
把集群上的core-site.xml,mapred-site.xml和yarn-site.xml文件配置到项目的resource目录下,其中把log4j.properties也放在下面。
其中log4j.properties配置如下:
log4j.rootLogger=INFO, stdout#log4j.logger.org.springframework=INFO#log4j.logger.org.apache.activemq=INFO#log4j.logger.org.apache.activemq.spring=WARN#log4j.logger.org.apache.activemq.store.journal=INFO#log4j.logger.org.activeio.journal=INFOlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
6.pom.xml中配置
<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-jobclient</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.6.0</version> </dependency></dependencies>
8.编辑运行参数
添加输入输出hdfs上的路径
working directory选择之前配hadoop环境的目录
9.修改程序
给conf对象添加一些配置:
Configuration conf=new Configuration();System.setProperty("hadoop.home.dir", "D:\\hadoop2.6.0\\hadoop-2.6.0");conf.set("mapreduce.framework.name", "yarn");conf.set("fs.default.name", "hdfs://192.168.236.100:9000");conf.set("mapreduce.app-submission.cross-platform", "true");//跨平台提交
10.用maven打包程序,运行完的jar放在一个固定的路径下,然后在程序中设置
conf.set("mapred.jar","D:\\java\\mapreduce\\target\\mapreduce-1.0-SNAPSHOT-jar-with-dependencies.jar");
此时点击运行,就可以成功
问题
1.报不停地连接rm的8032端口,但是一直连不上的错误:
这个问题是由于集群的8032端口没开,要在yarn-site.xml里面配置rm的节点地址:
<property> <name>yarn.resourcemanager.address</name> <value>192.168.236.102:8032</value></property>
2.administrator没有权限访问集群上hadoop中的/tmp目录
这是由于本机的administrator没有操作hadoop目录的权限,需要配置hadoop_name,为方便起见就不在环境变量里面配置,直接在程序中加入:
System.setProperty("HADOOP_USER_NAME", "hadoop");
这里的hadoop是我集群的用户,配置完了之后就可以运行了。
如果出现其他错误,可以检查一下集群是否运行正常。
- IDEA远程调试mapreduce程序
- eclipse远程调试mapreduce程序
- idea Intellij 远程调试java程序
- IDEA 远程执行MapReduce
- mapreduce远程调试
- MapReduce远程调试
- idea 远程调试
- IDEA远程debug调试
- IDEA远程调试Tomcat
- IDEA远程调试Tomcat
- idea远程调试
- IDEA远程部署+调试
- IDEA远程调试Tomcat
- IDEA远程调试
- IDEA远程调试配置
- IntelliJ IDEA远程调试
- IDEA远程调试Jetty
- Intellj Idea 远程调试
- jsonp跨域请求API接口[自己写接口]
- Linux 网卡驱动学习(四)(缓存描述符 Buffer Description)
- 二.Groovy的介绍
- maven配置
- HDU 4115 Eliminate the Conflict (2-SAT)
- IDEA远程调试mapreduce程序
- 198. House Robber
- 错误积累
- ARouter源码解析06-openDebug
- 数据库安装之各种问题二(创建ODBC源,VB丢失Microsoft Data Environment Instance6.0解决办法)
- 【MVC】过滤器应用-代码
- Android 通过 localstorage 向 HTML5 传参
- 词汇暴增计划
- Oracle按不同时间查询