Создание Spark с предоставленным Hadoop - PullRequest
0 голосов
/ 17 декабря 2018

Я пытался построить собственную сборку Spark с помощью пользовательского Hadoop (мне нужно применить патч к Hadoop 2.9.1, который позволяет мне использовать S3Guard на путях, начинающихся с s3://).

Вот как я создаю Spark после клонирования и использования Spark 2.3.1 на моем Dockerfile:

ARG HADOOP_VER=2.9.1
RUN bash -c \
    "MAVEN_OPTS='-Xmx2g -XX:ReservedCodeCacheSize=512m' \
    ./dev/make-distribution.sh \
    --name hadoop${HADOOP_VER} \
    --tgz \
    -Phadoop-provided \
   -Dhadoop.version=${HADOOP_VER} \
   -Phive \
   -Phive-thriftserver \
   -Pkubernetes"

Это успешно компилируется, но когда я пытаюсь использовать Spark с s3://paths У меня все еще есть ошибка в коде Hadoop, которую, я уверен, я удалил через свой патч при его компиляции.Так что сборка Spark не использует мои JAR-файлы, предоставленные Hadoop, насколько я могу судить.

Как правильно компилировать Spark, чтобы он не включал JAR-файлы Hadoop и использовал тот, который я предоставляю.

Примечание : я работаю в автономном режиме и задаю SPARK_DIST_CLASSPATH=$(hadoop classpath), чтобы он указывал на мой путь к классу Hadoop.

1 Ответ

0 голосов
/ 01 января 2019

Для пользовательских версий hadoop вам необходимо получить свои собственные артефакты на локальных компьютерах и в файле spark tar, который распространяется по кластеру (обычно в HDFS), и загружен при развертывании рабочих (в YARN; нетидея о k8s)

Лучший способ сделать это надежно - это локально создать релиз Hadoop с новым номером версии и создать искру против этого.

dev/make-distribution.sh -Phive -Phive-thriftserver -Pyarn -Pkubernetes -Phadoop-3.1 -Phadoop-cloud -Dhadoop.version=2.9.3-SNAPSHOT

Это создаст искрудистрибутив с hadoop-aws и соответствующим SDK, который вы создали.

Это довольно медленно: запустите nailgun / цинк, если можете, для некоторого ускорения.Если вы ссылаетесь на версию, которая также есть в общедоступных репозиториях, есть большая вероятность того, что кешированные копии в вашем репозитории maven ~ / .m2 / repository проникли.

Затем: вызовите оболочку spark и выполните тестирование изтам, прежде чем пытаться выполнить более сложные настройки.

Наконец, есть некоторая открытая JIRA для s3guard, чтобы не беспокоиться о s3 vs s3a в URL.Это ваш патч?Если нет, это работает?мы могли бы получить его в будущих выпусках Hadoop, если люди, которые в этом нуждаются, счастливы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...