Собственная библиотека snappy недоступна

#scala #apache-spark #dataframe #snappy #snappydata

#scala #apache-spark #фрейм данных #snappy #snappydata

Вопрос:

Я пытаюсь выполнить множество соединений в некоторых фреймах данных, используя spark в scala . Когда я пытаюсь получить количество конечного фрейма данных, который я генерирую здесь, я получаю следующее исключение. Я запускаю код с помощью spark-shell.

Я попробовал некоторые параметры конфигурации, подобные приведенным ниже, при запуске spark-shell. Но ни один из них не работал. Есть ли что-то, чего мне здесь не хватает? :

 --conf "spark.driver.extraLibraryPath=/usr/hdp/2.6.3.0-235/hadoop/lib/native/"
--jars /usr/hdp/current/hadoop-client/lib/snappy-java-1.0.4.1.jar 
  

Вызвано: java.lang.RuntimeException: собственная библиотека snappy недоступна: эта версия libhadoop была собрана без поддержки snappy.
в org.apache.hadoop.io.compress.Загружен SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:65)
в org.apache.hadoop.io.compress.SnappyCodec.getDecompressorType(SnappyCodec.java:193)

Комментарии:

1. Snappy — это собственная библиотека, это означает, что она написана на C или другом языке, который может быть скомпилирован на ассемблере и установлен в виде общего .so файла в вашей системе. Библиотека Java — это просто оболочка над реальной snappy, чтобы упростить процесс ее вызова. Как говорится в сообщении об ошибке, ваш дистрибутив hadoop был создан без поддержки snappy. Вы можете попробовать задать вопрос в блоге hontorworks.

Ответ №1:

Попробуйте обновить файл jar Hadoop с 2.6.3. на 2.8.0 или 3.0.0 . В более ранней версии Hadoop была ошибка: собственная библиотека snappy была недоступна. После изменения jar ядра Hadoop вы должны иметь возможность выполнять сжатие / распаковку snappy.