Искра и HADOOP_PATH

Есть два дистрибутива с веб-страницы spark. Один с хаупом, другой без.

Я использую python для кодирования искры, поэтому я установил искру через pip. Я полагаю, что дистрибутив, загруженный pip, должен быть таким же, как сборка с hadoop, доступная на веб-сайте spark, поскольку они оба содержат одинаковый набор jar-файлов.

Непонятная проблема возникает, когда я пытаюсь создать sparksession .master('local[*]') с этой конфигурацией .config('spark.jars.packages', 'org.apache.hudi:hudi-spark3.3-bundle_2.12:0.13.0').

Если я использую искровую сборку с Hadoop, все работает отлично. Загружены банки, создана искровая сессия....

Но когда я использую версию pip, возникает эта ошибка java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset, и мне не удалось создать сеанс искры....

Проблему можно решить, установив переменную среды HADOOP_HOME, я пробовал, и это работает. Я просто не могу объяснить разницу в их поведении... Когда я использую Spark со сборкой hadoop, мне просто нужно добавить в переменную PATH и ничего HADOOP_PATH не требуется. Но это не так, когда я использую версию pip — мне нужно установить HADOOP_PATH, чтобы все заработало.

Как может произойти это волшебство?

я использую окно, и в папке hadoop_path есть несколько двоичных файлов (winutils.exe/hadoop.dll), которых нет в искре с дистрибутивом hadoop.

Я думал, что разница между искрой с хаупом и искрой без распределения хаупа заключалась в том, что не хватало какой-то банки хаупа. Правильно ли я понимаю?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
107
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, что дистрибутив, загруженный pip, должен быть таким же, как сборка с помощью hadoop

Это не. Как написано на странице PyPi для PySpark, он не поставляется с Hadoop.

Эта упакованная на Python версия Spark подходит для взаимодействия с существующим кластером (будь то автономный Spark, YARN или Mesos), но не содержит инструментов, необходимых для настройки собственного автономного кластера Spark.

Ваша проблема в основном связана с тем, что Hudi полагается на библиотеки Hadoop, а не на сам Spark.

winutils.exe/hadoop.dll) в папке hadoop_path, которых нет в искре с дистрибутивом hadoop.

Правильно, потому что Hadoop создается и распространяется только для систем Linux. Пользователям Mac и Windows потребуются дополнительные шаги установки.

просто хочу подтвердить, что разница между искрой с Hadoop и без Hadoop заключается только в банках Hadoop? После поиска в Интернете я чувствую, что версия с HADOOP на самом деле не содержит установки Hadoop. Он просто содержит еще несколько банок

Hawii Hawii 10.04.2023 12:18

Я считаю, что это правильно. Spark действительно нужен только путь к классам Java, а не сценарии для настройки Hadoop. Версия «без hadoop» и pyspark предполагает, что команда hadoop classpath уже работает

OneCricketeer 10.04.2023 20:12

Другие вопросы по теме