我真誠地感謝您閱讀我的文章。LZO壓縮測試失敗
我想在我的服務器(運行至強CPU)上的HBase上安裝LZO 2.03壓縮編解碼器。 我目前使用HBase 0.90.2運行Hadoop 0.20.1。
我遵循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
(與make install
到自定義目錄)的LZO庫。
然後我複製了所有的LZO庫文件和GPL壓縮文件(包括本機/)到$ 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)
我試圖重建在x86_64的-PC的LZO庫W/i386的彙編代碼DISA流血,但仍然導致錯誤。
我很感激任何建議。
你把共享對象放到lib/native /文件夾中嗎? –
我在構建共享對象時也遇到了問題。你檢查過它們是否生成了嗎? – schmmd