windows调试hadoop-mapreduce任务踩坑记录(使用idea)

首先准备Hadoop链接驱动,放到任意一个文件夹中,并将其bin目录写入path环境环境变量,另取其中的hadoop.dll文件放入c盘System32文件夹中。
建立空maven项目,这是个人所有依赖(maven依赖可能会出现包冲突问题,望自行解决,主要是log4j的冲突)git

<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>

将hadoop四大配置文件放在resources根目录下,还有log4j.properties
再准备你的mapreduce源码,在main函数中写入如下代码github

System.setProperty("HADOOP_USER_NAME", "hadoop");
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://10.32.6.132:9000");//ip依照本身的集群进行定义
conf.set("mapreduce.framework.name", "yarn");
conf.set("mapreduce.app-submission.cross-platform", "true");//容许跨平台提交
conf.set("mapred.jar","E:\\hadooptest\\target\\hadooptest-1.0-SNAPSHOT-jar-with-dependencies.jar");


mapred.jar就写编译出来的jar包位置

idea中运行配置以下
clipboard.pngapache

其中输入路径必定要存在,输出路径必定要不存在,由Hadoop自行建立windows

clipboard.png
此处写hadoop驱动的根目录,以后点击运行便可。服务器

遇到的问题:
1.必定要保证hadoop集群是可运行的,单机版也能够,但必定要保证是正常的。
2.在本机运行过程当中会调用hadoop历史服务器,采用
sbin/mr-jobhistory-daemon.sh start historyserver
命令启动
不启动的异常为10020端口没法访问
3.运行过程当中出现的各类链接异常的警告能够忽视,不可忽视的是异常,端口默认访问地址是0.0.0.0是没法被其余主机访问的,因此任何链接被异常中断时请检查是否在配置文件中显式指定了套接字。app

相关文章
相关标签/搜索