windows环境调试mapreduce代码出错记录

背景

我的运行环境是:64位windows10+vm12+cdh5.15.1
我在本地IDEA上写java代码,实现mapreduce功能,在本地环境添加了hadoop需要的jar包。运行时,连接本地虚拟机的hadoop环境,进行调试。可是,出现两个错误,分别是:

Failed to detect a valid hadoop home directory
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.
Exception in thread "main" java.lang.UnsatisfiedLinkError: 
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

解决方案

第一步:将VM上运行的hadoop打包,打包完点击复制,粘贴到E盘或者某个盘。
第二步:解压tar.gz文件。我使用的是7z解压的,winrar反正我没有成功。
第三步:网上找到对应版本的winutils.exe放到解压后的hadoop的bin目录下。
第四步:网上找到NativeIO.java,在IDEA项目目录建立package,名为org.apache.hadoop.io.nativeio,然后将NativeIO.java放进去。
第五步:在项目运行文件中添加:System.setProperty(“hadoop.home.dir”, “E:\hadoop-2.6.0-cdh5.15.1”),设置主目录。

到此,解决了这个问题,可以运行自己的项目!
文章提到的两个文件,链接: https://pan.baidu.com/s/1Az9yM1meOGrO4hxVI6jaFw 提取码: kvxu

补充:最近有朋友发现这样做了依旧会出现第二个错误,原来是配置了曾经的其他版本HADOOP的HADOOP_HOME,并且在Path中也有配置,删除这些之后运行正常。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值