Как заставить PySpark работать на кластере Google Cloud Dataproc - PullRequest
0 голосов
/ 18 января 2019

У меня есть ряд вопросов (извините, документация Google ужасна и не удобна для пользователя):

  1. Что эквивалентно Amazon EMR в Google Cloud, Dataproc? Я использую эту документацию для запуска задания Spark: https://cloud.google.com/dataproc/docs/tutorials/gcs-connector-spark-tutorial
  2. Можете ли вы подключиться к главному компьютеру и запустить Spark во всем кластере или использовать команду Google gcloud dataproc jobs submit ...?
  3. Когда я запускаю задание Spark локально и пытаюсь получить доступ к Google Cloud Storage, я делаю это без проблем. Когда я пытаюсь использовать Dataproc, он вылетает.

Я прочитал:

Я уже пробовал:

  • Я разместил gcs-connector-hadoop2-latest.jar и my_project.json на своем главном и рабочем узлах в /etc/hadoop/conf
  • Я добавил следующее на своем главном и рабочем узлах к /etc/hadoop/conf/core-site.xml:

    <property>
      <name>google.cloud.auth.service.account.enable</name>
      <value>true</value>
    </property>
    <property>
      <name>my_project.json</name>
      <value>full path to JSON keyfile downloaded for service account</value>
    </property>
    
  • Я попытался запустить следующие команды:

    sudo gcloud dataproc jobs submit pyspark  spark.py --cluster=${CLUSTER}
    

    и

    sudo gcloud dataproc jobs submit pyspark \
        --jars  /etc/hadoop/conf/gcs-connector-hadoop2-latest.jar \
        spark.py --cluster=${CLUSTER}
    
  • Я получаю следующую ошибку:

    Нет файловой системы для схемы: gs

Я не знаю, что делать дальше.

1 Ответ

0 голосов
/ 18 января 2019
  1. Да, Google Dataproc является эквивалентом AWS EMR.

  2. Да, вы можете ssh войти в главный узел Dataproc с помощью команды gcloud compute ssh ${CLUSTER}-m и отправить задания Spark вручную , но рекомендуется использовать API Dataproc и / или gcloud команда для отправки заданий в кластер Dataproc. Обратите внимание, что вы можете использовать команду gcloud для отправки заданий в кластер Dataproc с любого компьютера, на котором установлено gcloud , вам не нужно делать это из Google Cloud VM, например, Главный узел Dataproc.

  3. Чтобы получить доступ к Google Cloud Storage (GCS) из задания, отправленного в кластер Dataproc, вам не нужно выполнять какую-либо настройку (Dataproc имеет предустановленный разъем GCS , и он уже настроен для доступа к GCS ).

Вы можете отправить задание PySpark в кластер Dataproc с помощью команды (обратите внимание, сначала вам нужно скопировать файл задания PySpark в GCS и использовать его при отправке задания Dataproc):

gsutil cp spark.py gs://<BUCKET>/path/spark.py
gcloud dataproc jobs submit pyspark --cluster=${CLUSTER} \
    gs://<BUCKET>/path/spark.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...