最近简单的研究了一下Spark on K8s,期间遇到了些许问题,在这里总结一下分享给大家。
环境介绍
hadoop集群:部署在实体机上
spark: k8s上
需求
要实现的功能是使用spark读取远程hadoop集群上的lzo文件
问题
使用Spark官方提供的DockerFile新建容器是没有问题的,但是由于我的测试环境的数据是lzo压缩文件,导致Spark读取数据时会报本地库的错误:
19/09/20 06:02:46 WARN LzoCompressor: java.lang.UnsatisfiedLinkError: Cannot load liblzo2.so.2 (liblzo2.so.2: cannot open shared object file: No such file or directory)!19/09/20 06:02:46 ERROR LzoCodec: Failed to load/initialize native-lzo library19/09/20 06:02:46 ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)java.lang.RuntimeException: native-lzo library not available at com.hadoop.compression.lzo.LzopCodec.createDecompressor(LzopCodec.java:104) at com.hadoop.compression.lzo.LzopCodec.createInputStream(LzopCodec.java:89) at com.hadoop.mapreduce.LzoLineRecordReader.initialize