2021-03-18

问题
sparkStream程序做词频统计,将结果写入hdfs文件,出现UnsatisifiedLinkError错误,如下所示:。

Caused by: java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSums(IILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IILjava/lang/String;JZ)V
    at org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSums(Native Method)
    at org.apache.hadoop.util.NativeCrc32.verifyChunkedSums(NativeCrc32.java:59)
    at org.apache.hadoop.util.DataChecksum.verifyChunkedSums(DataChecksum.java:301)
    at 

解决方案
方案一
网上搜了很多帖子,说要把hadoop.dll和winutil.exe文件拷贝到C:/Windows/System32目录下。尝试之后问题没有解决。可能遇到问题的情况不一样。方案一被放弃

方案2
编辑程序启动配置:添加vm options  `-Djava.library.path=$HADOOP_HOME/lib/native`参数。

在idea中操作,如下所示:

原因:由于$HADOOP_HOME/lib/native源码二进制包下,文件默认是32位,而在window下运行需要64位格式,因此需要在网上寻找网友已编译好的对应版本的64位native包,或者自己自行编译Hadoop源码,也可以得到64位native包。

我的hadoop就是64位的,直接指定`-Djava.library.path=$HADOOP_HOME/lib/native` 告诉程序native文件位置。

参考:https://blog.csdn.net/Coder__CS/article/details/79128222

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值