2

私の投稿を読んでいただき、誠にありがとうございます。

サーバー (Xeon CPU を実行) の HBase に LZO 2.03 圧縮コーデックをインストールしようとしています。現在、HBase 0.90.2 で Hadoop 0.20.1 を実行しています。

http://wiki.apache.org/hadoop/UsingLzoCompressionのガイドラインに従いました。そして、LZO ネイティブ コネクタ (Hadoop-GPL-Compression) をhttp://code.google.com/p/hadoop-gpl-compression/からダウンロードしました。

を使用してlzoライブラリをインストールしました./configure --prefix=/home/ckwon/wks/test/lzo_lib_x64 --enable-shared --disable-asm --build=x86_64-pc-linux-gnu

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 ライブラリを再構築しようとしましたが、それでもエラーが発生します。

私はどんな提案にも感謝します。

4

1 に答える 1

2

マスターサーバーとスレーブサーバーの両方にネイティブLZOライブラリをインストールします。例:Ubuntu

sudo apt-get install liblzo2-dev

Clouderaのセットアップ手順に従って問題が発生した場合は、libgplcompression*ファイルをHadooplibフォルダーにコピーしてみてください。Ubuntuでは、Clouderaのセットアップ手順に従ったとすると、次のようになります。

sudo cp /usr/local/hadoop/lib/native/Linux-amd64-64/lib/libgplcompression.* \
    /usr/lib/hadoop/lib/native/
于 2012-11-05T18:52:46.337 に答える