問題
在安裝完Hadoop Lzo后。進入spark-sql shell 正常,但是執(zhí)行查詢語句時候,拋出:
Caused by: java.lang.IllegalArgumentException: Compression codec com.hadoop.compression.lzo.LzoCodec not found.
解決方案
原因:在hadoop中配置了編解碼器lzo,所以當(dāng)使用yarn模式時,spark自身沒有l(wèi)zo的jar包所以無法找到。這是因為在hadoop 的core-site.xml 和mapred-site.xml 中開啟了壓縮,并且壓縮式lzo的。這就導(dǎo)致寫入上傳到hdfs 的文件自動被壓縮為lzo了。而spark沒有l(wèi)zo這個jar包,所以無法被找到。
解決方法很簡單:
ln -s /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar /opt/module/spark-2.1.1-bin-hadoop2.7/jars/hadoop-lzo-0.4.20.jar
軟連接過去就可以了。
或者配置spark-default.conf如下即可:
spark.jars=/opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar
總結(jié)
本文總結(jié)了在hadoop搭建完lzo后,spark找不到j(luò)ar包的問題。