bug填坑|hadoop使用

本文针对Hadoop在Windows环境下开发时常见的两个问题提供了详细的解决方案,包括设置hadoop.home.dir环境变量和解决java.lang.UnsatisfiedLinkError错误,通过加载hadoop.dll文件实现跨平台开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hadoop使用中的bug


前言

前一篇文章搭建了hadoop集群,这篇文章,针对的是window上做开发时的日常踩坑。


bug1

这个问题一开始挺郁闷的,HADOOP_HOME and hadoop.home.dir are unset服务器设置环境变量的时候,HADOOP_HOME这个我是有设置的,但这个hadoop.home.dir are unset却是第一次见到。
在这里插入图片描述
在这里插入图片描述

解决

找了些文章,有些竟然说还需要在windows上部署一个和服务器上版本一样的hadoop。。这想想就觉得不可能这么坑吧,程序员都是比较懒的,要不然就不会有那么多框架、组件了,肯定有其他好的解决办法。然后找到如下的解决办法:

GitHub,根据你的hadoop版本下载对应的版本bin文件(原来window上开发,和服务器集群交互时,需要winutil.exe模拟linux下的目录环境?)版本对应对某些hadoop版本来说可能有要求,我是hadoop2.10的,并没有对应的版本,但也能用。

ps:竟然有人用这个东西来赚积分,看到的时候果断关掉网页。。。

我用的springboot,直接在启动的时候加入hadoop.home.dir设置,注意,不用指定到bin文件夹,否则,也会报错,默认读取的时候会自动补上/bin。

public class HadoopApplication {
    public static void main(String[] args) {
        System.setProperty("hadoop.home.dir", "F:\\hadoop-common-2.2.0-bin-master");
   
        SpringApplication.run(HadoopApplication.class);
    }
}

在这里插入图片描述

bug2

这个是在编写MapReduce时候遇到的java.lang.UnsatisfiedLinkError: ,也是有点醉了,找了些资料解决:

java.lang.UnsatisfiedLinkError: 
org.apache.hadoop.io.nativeio.
NativeIO$Windows.access0
(Ljava/lang/String;I)Z

在这里插入图片描述

解决

原来windows上开发,还需要添加一个库,叫做hadoop.dll文件,这个文件在上面下载bin文件夹里头就有。同样在启动的时候进行加载。

@SpringBootApplication
public class HadoopApplication {
    public static void main(String[] args) {
        System.setProperty("hadoop.home.dir", "F:\\hadoop-common-2.2.0-bin-master");
        // 加载库文件
        System.load("F:\\hadoop-common-2.2.0-bin-master\\bin\\hadoop.dll");
        SpringApplication.run(HadoopApplication.class);
    }
}

在这里插入图片描述

总结

上面的解决方案,是基于自己的linux集群上的hadoop2.10版本和本地windows开发环境而总结出的解决方案。除此之外,也还需要注意自己上传到hdfs的地址是否有误,ip或者域名信息是否写对了,这些都是自己马虎造成的,多多审查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值