Короче говоря
Я хочу настроить свое приложение для использования сжатия lz4 вместо мгновенного, что я сделал:
session = SparkSession.builder()
.master(SPARK_MASTER) //local[1]
.appName(SPARK_APP_NAME)
.config("spark.io.compression.codec", "org.apache.spark.io.LZ4CompressionCodec")
.getOrCreate();
но, глядя на вывод консоли, он все еще использует snappy в исполнителе
org.apache.parquet.hadoop.codec.CodecConfig: Compression: SNAPPY
а также
[Executor task launch worker-0] compress.CodecPool (CodecPool.java:getCompressor(153)) - Got brand-new compressor [.snappy]
Согласно это сообщение, то, что я сделал здесь, только настроил драйвер, но не исполнителя. Решение в посте состоит в том, чтобы изменить файл spark-defaults.conf, но я запускаю spark в локальном режиме, у меня нигде нет этого файла.
Еще немного деталей:
Мне нужно запустить приложение в локальном режиме (для модульного теста). Тесты отлично работают локально на моей машине, но когда я отправляю тест в механизм сборки (RHEL5_64), я получаю сообщение об ошибке
snappy-1.0.5-libsnappyjava.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
Я провел некоторое исследование, и кажется, что самое простое решение — использовать lz4 вместо snappy для кодека, поэтому я пробую вышеуказанное решение.
Я застрял в этой проблеме в течение нескольких часов, любая помощь приветствуется, спасибо.