0

执行时发生错误select * from xxx

Failed with exception java.io.IOException:java.io.IOException: No LZO codec found, cannot run.

已完成故障排除:

检查了位于 $HADOOP_HOME/share/hadoop/common 中的所有 hadoop 节点的 hadoop-lzo.jar:

# ls $HADOOP_HOME/share/hadoop/common/ | grep lzo
hadoop-lzo-0.4.20.jar

检查在 $HADOOP_HOME/etc/hadoop/core-site.xml 中为所有 hadoop 节点配置的 LZO 编解码器:

<configuration>
    ...
    <property>
        <name>io.compression.codecs</name>
        <value>
            org.apache.hadoop.io.compress.GzipCodec,
            org.apache.hadoop.io.compress.DefaultCodec,
            org.apache.hadoop.io.compress.BZip2Codec,
            org.apache.hadoop.io.compress.SnappyCodec,
            com.hadoop.compression.lzo.LzoCodec,
            com.hadoop.compression.lzo.LzopCodec
        </value>
    </property>
    <property>
        <name>io.compression.codec.lzo.class</name>
        <value>com.hadoop.compression.lzo.LzoCodec</value>
    </property>
</configuration>

我还在 mapreduce 中测试了读取 lzo 文件,它工作正常,所以我认为 hadoop-lzo 配置正确,但它在 hive 中不起作用。

4

0 回答 0