gpt4 book ai didi

hadoop - LZO 的压缩测试失败

转载 作者:可可西里 更新时间:2023-11-01 14:50:47 24 4
gpt4 key购买 nike

非常感谢您阅读我的帖子。

我正在尝试在我的服务器(运行 Xeon CPU)上的 HBase 上安装 LZO 2.03 压缩编解码器。我目前正在运行 Hadoop 0.20.1 和 HBase 0.90.2。

我遵循了 http://wiki.apache.org/hadoop/UsingLzoCompression 中的指南.我从 http://code.google.com/p/hadoop-gpl-compression/ 下载了 LZO native 连接器 (Hadoop-GPL-Compression) .

我使用 ./configure --prefix=/home/ckwon/wks/test/lzo_lib_x64 --enable-shared --disable-asm --build=x86_64-pc-linux-gnu 安装了 lzo 库

(使用 make install 到自定义目录)。

然后我将所有 LZO 库文件和 GPL 压缩文件(包括 native/)复制到 $HADOOP_HOME/lib/和 $HBASE_HOME/lib

然后我使用以下脚本运行 bin/hbase org.apache.hadoop.hbase.util.CompressionTest:

setenv CLASSPATH_HBASEI    `ls ${HBASE_HOME}/*.jar |& awk '{printf( ":%s", $1 );}'`
setenv CLASSPATH_HBASELIBI `ls ${HBASE_HOME}/lib/*.jar |& awk '{printf( ":%s", $1 );}'`
setenv CLASSPATH_LZO $HBASE_HOME/lib/native/liblzo2.so

setenv CLASSPATH ${CLASSPATH_HBASEI}${CLASSPATH_HBASELIBI}

setenv LD_LIBRARY_PATH64 $HBASE_HOME/lib/native
#setenv LD_LIBRARY $HBASE_HOME/lib/native

ls -l $LD_LIBRARY_PATH64

set JAVA=$JAVA_HOME/bin/java

set JAVA_PLATFORM=`CLASSPATH=${CLASSPATH};${JAVA} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
echo JP=$JAVA_PLATFORM

set JAVA_LIBRARY_PATH=${HBASE_HOME}/lib/native/${JAVA_PLATFORM}
echo
echo java_lib_path---
echo
echo $JAVA_LIBRARY_PATH

cd $HBASE_HOME
./bin/hbase org.apache.hadoop.hbase.util.CompressionTest hdfs://SERVER:PORT/COMPRESSION_TEST_RUNNER.sh lzo

它正在产生

INFO lzo.GPLNativeCodeLoader: Loaded native gpl library
WARN lzo.LzoCompressor: java.lang.UnsatisfiedLinkError: Cannot load liblzo2.so.2 (liblzo2.so.2: cannot open shared object file: No such file or directory)!
ERROR lzo.LzoCodec: Failed to load/initialize native-lzo library
java.lang.RuntimeException: native-lzo library not available
at com.hadoop.compression.lzo.LzoCodec.getCompressorType(LzoCodec.java:135)
at org.apache.hadoop.io.compress.CodecPool.getCompressor(CodecPool.java:98)
at org.apache.hadoop.hbase.io.hfile.Compression$Algorithm.getCompressor(Compression.java:200)
at org.apache.hadoop.hbase.io.hfile.HFile$Writer.getCompressingStream(HFile.java:397)
at org.apache.hadoop.hbase.io.hfile.HFile$Writer.newBlock(HFile.java:383)
at org.apache.hadoop.hbase.io.hfile.HFile$Writer.checkBlockBoundary(HFile.java:354)
at org.apache.hadoop.hbase.io.hfile.HFile$Writer.append(HFile.java:536)
at org.apache.hadoop.hbase.io.hfile.HFile$Writer.append(HFile.java:515)
at org.apache.hadoop.hbase.util.CompressionTest.main(CompressionTest.java:126)

我已经尝试在禁用 i386 汇编代码的 x86_64-pc 中重建 LZO 库,但仍然会导致错误。

如有任何建议,我将不胜感激。

最佳答案

在主服务器和从服务器上安装本地 LZO 库。例如。在 Ubuntu 上

sudo apt-get install liblzo2-dev

如果您在遵循 Cloudera setup instructions 后遇到问题,尝试将 libgplcompression* 文件复制到 Hadoop lib 文件夹中。在 Ubuntu 上,假设您遵循了 Cloudera 设置说明,这将是:

sudo cp /usr/local/hadoop/lib/native/Linux-amd64-64/lib/libgplcompression.* \
/usr/lib/hadoop/lib/native/

关于hadoop - LZO 的压缩测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com