首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于LZO的CompressionTest失败

用于LZO的CompressionTest失败
EN

Stack Overflow用户
提问于 2011-07-09 02:43:52
回答 1查看 6.5K关注 0票数 2

我由衷地感谢您阅读我的帖子。

我正在尝试在我的服务器(运行至强CPU)的HBase上安装LZO2.03压缩编解码器。我目前运行的是Hadoop0.20.1和HBase 0.90.2。

我遵循了http://wiki.apache.org/hadoop/UsingLzoCompression的指导方针。我从http://code.google.com/p/hadoop-gpl-compression/下载了LZO原生连接器(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-Compression文件(包括native/)复制到$HADOOP_HOME/lib/和$HBASE_HOME/lib

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

代码语言:javascript
复制
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

它正在生成

代码语言:javascript
复制
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库,但仍然导致错误。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-06 02:52:46

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

代码语言:javascript
复制
sudo apt-get install liblzo2-dev

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

代码语言:javascript
复制
sudo cp /usr/local/hadoop/lib/native/Linux-amd64-64/lib/libgplcompression.* \
    /usr/lib/hadoop/lib/native/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6628962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档