Apache Spark で LZ4 圧縮を使用しようとしていますが、通常のtextFile
方法で十分であることを理解しています。ただし、圧縮されていないファイルをロードするとすべてが期待どおりに機能しますが、lz4 圧縮すると出力が空になります。
問題が圧縮と解凍の方法に関連しているかどうか疑問に思っています。Java ライブラリhttps://github.com/jpountz/lz4-javaバージョン 1.3.0 (lz4 バージョン 123) を使用してファイルを圧縮しています。ただし、Spark ワーカーがインストールされているマシンには、他のバージョン用の Hadoop ネイティブ ライブラリがあります。コマンドを実行してそれらを確認すると、次のように表示されます。
./hadoop checknative -a
15/03/04 05:11:51 WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version
15/03/04 05:11:51 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /opt/hadoop/hadoop-2.4.0/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
snappy: false
lz4: true revision:99
bzip2: false
次に、lz4.so ライブラリをインストールするためにインストールする RPM は次のとおりです。
ご覧のとおり、LZ4 の 3 つの異なるバージョンがあるようですが、同じバージョンを見つけることができません。私の最初の質問は、同じバージョンを持っていなくても、これは機能するのでしょうか?
そうでない場合、Spark のネイティブ ライブラリを正しく構成して lz4 圧縮ファイルを理解するにはどうすればよいですか?
私は Spark 1.1.0 を使用しており、--driver-library-path
with経由でネイティブ ライブラリの場所を渡していますspark-submit
。