Невозможно импортировать pyspark в кластер dataproc на GCP

Я просто настраиваю кластер на Google Cloud Platform для выполнения некоторых заданий pyspark. Изначально я использовал ipython.sh (из репозитория github) в качестве скрипта инициализации кластера. Это позволило кластеру нормально запуститься, однако при попытке импортировать pyspark в блокнот Ipython я получил ошибку «не могу импортировать аккумуляторы имен».

После некоторого поиска я подумал, что это как-то связано с тем, что путь установки pyspark не включен в мой путь к Python, поэтому я удалил свой кластер и хотел создать новый, используя jupyter.sh в качестве сценария инициализации.

Однако теперь мой кластер вообще не запускается, я получаю сообщение об ошибке. Проверяя журнал «dataproc-initialization-script-0_output», он просто говорит:

/ usr / bin / env: bash: нет такого файла или каталога

Любые идеи о том, что мне здесь не хватает?


Изменить:

Я получил кластер для запуска с публичным скриптом инициализации в gs: //dataproc-initialization-actions/jupyter/jupyter.sh

Однако я все еще сталкиваюсь с теми же проблемами при попытке загрузить pyspark в записную книжку pyspark, когда я пытаюсь что-то вроде «from pyspark import SparkConf», я получаю ошибки (как ни странно, я получаю другую ошибку, если запускаю тот же импорт второй раз).

Есть отзывы на данном этапе?

Это результат моей записной книжки: вывод записной книжки html


person Tr1pzz    schedule 19.09.2016    source источник
comment
У вас есть cluster_uuid или operation_id, которыми вы можете поделиться здесь или лично с [email protected]?   -  person Dennis Huo    schedule 19.09.2016
comment
Cluster_uuid: cluster-1:192c22e4-e0f6-4970-8428-687327016c49 и cluster-1:a1218d27-1b5a-4c7f-97ec-71b34cf76b5f, спасибо!   -  person Fematich    schedule 19.09.2016


Ответы (1)


Последнее действие инициализации Jupyter для Dataproc было создано для Dataproc --image-version 1.0, поэтому изменение версии по умолчанию на 1.1, которая включает Spark 2.0.0, похоже, незаметно нарушило работу ядра PySpark (к сожалению, вместо ошибки во время развертывания ядро ​​PySpark просто не может создать правильную среду Spark).

Щедрый участник на самом деле действительно отправил запрос на перенос некоторое время назад, когда Dataproc 1.1 был вот-вот станет вариантом по умолчанию, но во время проверки команда Dataproc захотела провести рефакторинг скрипта для лучшей защиты в будущем, не сохраняя явно отдельные форки конфигураций ядра.

Я пошел дальше и разработал запрос на включение рефакторинга, который позволяет использовать базовое ядро генератор для работы как с Dataproc 1.0, так и с Dataproc 1.1. Как только это будет объединено, новые кластеры, использующие стандартный gs://dataproc-initialization-actions/jupyter/jupyter.sh, автоматически начнут работать правильно. А пока вы можете сделать одно из двух:

  1. Попробуйте вернуться к Dataproc 1.0 / Spark 1.6.2:

    gcloud dataproc clusters create --initialization-actions gs://dataproc-initialization-actions/jupyter/jupyter.sh \
        --image-version 1.0
    
  2. Попробуйте мои обновления на месте (и, таким образом, оставьте самые свежие Dataproc 1.1 + Spark 2.0.0), прежде чем они будут объединены с ведущим ведущим сервером:

    gcloud dataproc clusters create --initialization-actions gs://dataproc-initialization-actions/jupyter/jupyter.sh \
        --metadata INIT_ACTIONS_REPO=https://github.com/dennishuo/dataproc-initialization-actions.git,INIT_ACTIONS_BRANCH=dhuo-fix-jupyter-spark2
    
person Dennis Huo    schedule 22.09.2016
comment
К вашему сведению, вчера он был объединен и синхронизирован с GCS, поэтому новые кластеры, созданные с помощью всего gcloud dataproc clusters create --initialization-actions gs://dataproc-initialization-actions/jupyter/jupyter.sh, теперь должны работать нормально. - person Dennis Huo; 24.09.2016