Как включить поддержку pyspark HIVE на главном узле Google Datapro c - PullRequest
4 голосов
/ 09 января 2020

Я создал кластер datapro c и вручную установил ноутбук conda и Jupyter. Затем я устанавливаю pyspark от Conda. Я могу успешно запустить spark по

from pyspark import SparkSession
sc = SparkContext(appName="EstimatePi")

Однако я не могу включить поддержку HIVE. Следующий код застревает и ничего не возвращает.

from pyspark.sql import SparkSession
spark = (SparkSession.builder
         .config('spark.driver.memory', '2G')
         .config("spark.kryoserializer.buffer.max", "2000m")
         .enableHiveSupport()
         .getOrCreate())

Python версия 2.7.13, Spark версия 2.3.4

Любой способ включить поддержку HIVE?

Ответы [ 2 ]

2 голосов
/ 10 января 2020

Cloud Datapro c теперь имеет возможность устанавливать дополнительные компоненты в кластере datapro c, а также имеет простой способ доступа к ним через шлюз. Вы можете найти подробности установки Jupyter и Conda здесь - https://cloud.google.com/dataproc/docs/tutorials/jupyter-notebook

Подробную информацию о шлюзе компонента можно найти здесь - https://cloud.google.com/dataproc/docs/concepts/accessing/dataproc-gateways. Обратите внимание, что это Альфа.

2 голосов
/ 09 января 2020

Я не рекомендую устанавливать вручную pyspark. Когда вы делаете это, вы получаете новую установку spark / pyspark, которая отличается от собственной установки Datapro c и не получает конфигурацию / tuning / classpath / et c. Это, вероятно, причина того, что поддержка Hive не работает.

Чтобы получить conda с правильно настроенным pyspark, я предлагаю выбрать ANACONDA и JUPYTER дополнительные компоненты на изображении 1.3 (по умолчанию) или более поздние.

Кроме того, на 1.4 и более поздних изображениях Mini-Conda является пользователем по умолчанию Python с предварительно настроенным pyspark. Вы можете pip / conda установить Jupyter самостоятельно, если вы будете sh.

См. https://cloud.google.com/dataproc/docs/tutorials/python-configuration

Также, как указывает @Jayadeep Jayaraman, дополнительный компонент Jupyter работает с Component Gateway , что означает, что вы можете использовать его по ссылке в консоли разработчика, в отличие от открытия портов в мир или туннелирования S SH.

tl / dr : я рекомендую эти флаги для вашего следующего кластера: --optional-components ANACONDA,JUPYTER --enable-component-gateway

...