spark 读取lzo 环境依赖

问题描述

报错

bug:

22/09/25 23:28:14 INFO GPLNativeCodeLoader: Loaded native gpl library
22/09/25 23:28:14 WARN LzoCompressor: java.lang.NoSuchFieldError: lzoCompressLevelFunc
22/09/25 23:28:14 ERROR LzoCodec: Failed to load/initialize native-lzo library
22/09/25 23:28:14 ERROR Executor: Exception in task 0.0 in stage 1.0 (TID 1)
java.lang.RuntimeException: native-lzo library not available
at com.hadoop.compression.lzo.LzoCodec.getDecompressorType(LzoCodec.java:175)
at org.apache.hadoop.io.compress.CodecPool.getDecompressor(CodecPool.java:176)在这里插入图片描述

由于lzo压缩本身不属于hadoop体系自带压缩方式以及spark自带的解析方式
所以往往需要额外配置

在大数据集群中 所使用压缩完全没有问题的,hadoop以及spark会自己调用lzo存在的目录
进行读取,但是idea 本地环境想要读取lzo文件,就要使本地环境支持lzo依赖

出于开发的便利,需要idea中读取到lzo压缩的数据

参考:http://t.csdn.cn/xIDRa

一共三个文件
在这里插入图片描述

plcompression.dlllzo2.dllhadoop-lzo-0.4.21-SNAPSHOT.jar

gplcompression.dlllzo2.dll 放到 C:\Windows\System32 目录下

增加依赖 【此项可能无作用】

<dependency>
    <groupId>com.hadoop.compression</groupId>
    <artifactId>com.hadoop.compression</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/hadoop-lzo-0.4.20-SNAPSHOT.jar</systemPath>
</dependency>

如果仍然报错

选择官网的jar包进行导入idea 进行依赖的创建

https://archive.apache.org/dist/spark/spark-2.4.5/

官网下载 spark-2.4.5-bin-hadoop2.7.tgz 注意根据lzo和spark的不同更换版本

在这里插入图片描述

参考如下步骤:

(1)将spark解压

在这里插入图片描述

(2)在解压后的spark压缩包中,如下jars文件夹则为spark相关jar
在这里插入图片描述

(3) 在项目工程目录下,新建一个lib目录,用于放依赖jar,

​	[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YPTdZ69X-1664166157628)(file:///C:\Users\geng\AppData\Local\Temp\ksohtml18912\wps3.jpg)]

(4)在lib目录下建一个spark文件夹,将jars内的jar全拷贝到spark文件中,见下图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fA1o27Uh-1664166157628)(file:///C:\Users\geng\AppData\Local\Temp\ksohtml18912\wps4.jpg)]

(5)将 hadoop-lzo-0.4.21-SNAPSHOT.jar 拉入到此目录中

(6)打开“excise”工程双击如下
在这里插入图片描述
(7)点Libraries -> “+”-> java

在这里插入图片描述

(8) 再在弹出框中选中spark下的所有jar后,如下第一张图,点击ok后,出现如下第二张图。最后点OK.
在这里插入图片描述
在这里插入图片描述

(9)注释掉 原理maven导入的依赖 不然会出现 jar重复的依赖

在这里插入图片描述

即可读取 相关数据 注意spark.sql 会自动识别相关压缩

提示

需要开启元数据服务

spark会根据配置文件连接元数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yRFULezc-1664166157630)(spark和lzo idea环境兼容设置_image/image-20220925220417482.png)]

开启元数据服务命令

hive --service metastore

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值