windows下hadoop对lzo的支持

windows下hadoop对lzo的支持,第1张

windows下hadoop对lzo的支持 windows下hadoop对lzo的支持 背景

下半年学习大数据,首当其冲,先学习了hadoop

学习hadoop的过程可谓是艰难重重

其中最麻烦的就是本地调式,写代码总会有bug,在网上也找到一些windows下安装hadoop的方法,也有效,能够成功在windows下运行

map-reduce程序,很好的帮助我调试代码

但是,我前段时间遇到了lzo,它从hadoop的压缩库里移除了,虽然在线上,只要linux系统配置好了lzo,你测试没问题,但是本地单机模式

测试的时候,根本跑不起来,因为不支持!!!

心路历程
  • 开始

要使用lzo格式去压缩和解压文件,首先得添加依赖


	   org.apache.hadoop
	    hadoop-lzo
	    0.4.15
	    provided

有0.4.15 和0.4.20两个版本,我只要添加其中一个,关于lzo的代码能在线上跑起来,本机就不行,因为系统没有lzo支持,而且很坑的是这个

包maven它自动下载不了,自己手动安装了这个包才搞定

  • 测试

因为总要测试,但是数据文件都是lzo格式的文件,本地测试需要解压成txt格式的,这样没法看出我写的lzo代码有没有问题(其实没有问

题),但是没有在本地跑一下,总觉得心里空空的。。。

  • 报错

开始测试各种报错全遇到了

# 报错1 
# 这里报错是说没本地没有这个lzo库,你跑不了
 Error: java.lang.RuntimeException: native-lzo library not available

# 所以我去网上找这个库怎么安装到本地
# 然后在官网上找到了lzo2.10版本,下载下来
# 这个库是c写的!!!
# 我还得找个办法给它编译了,用微软Visual Studio 2010的命令行工具去编译,这个网上有教程
# 这个命令行工具刚安装会少东西,百度解决了
# 但是,这个2010是个很老的版本,比较难找,我直接采用2019最新的版本, 这个下载起来比较方便
# 好了,按照教程编译好了,一跑程序,又报错了

# 报错2
 java.io.IOException: Compressed with incompatible lzo version: 0x2060 (expected 0x2050)

 java.lang.UnsatisfiedlinkError: no gplcompression in java.library.path

# 这两个错误一直遇到,网上的方法极其有限,
# 我还在github上找到了hadoop-lzo库,需要自己编译,上面有教程,但是编译起来很麻烦
# 然后我在这
[传送门](https://blog.csdn.net/coolerzZ/article/details/103952188?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-4.no_search_link&spm=1001.2101.3001.4242.3)
# 找到了这位大哥已经编译好的lzo2.dll文件和gplcompression文件,下载下来放到类路径下就行了,但是这是针对0.4.21版本的编译版本,再在里添加0.4.21的包
# 到类路径,就跑起来了!!!
总结下来,
  • 想要在windows下用hadoop对lzo的支持,
    • 首先你得安装,编译lzo包,用Visual Studio的命令行工具
    • 然后你得找到hadoop-lzo,在github上有,然后编译成jar包,加载到库里
    • 最后你编译的lzo2.dll 和 gplcompression一定要放在环境变量路径里
    • 才能跑起来~~

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4828570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存