Чтение из хранилища google gs://файловая система из локального искрового экземпляра

61
5

Проблема довольно проста: у вас есть локальный искровой экземпляр (кластер или его запуск в локальном режиме), и вы хотите прочитать из gs://

спросил(а) 2016-11-21T11:52:00+03:00 4 года, 3 месяца назад
1
Решение
95

Я представляю здесь решение, которое я придумал, объединив различные ресурсы:

Загрузите консоль хранения Google Cloud: gs-connector и сохраните его в $SPARK/jars/ folder (проверьте альтернативу 1 внизу)

Загрузить core-site.xml файл из здесь, или скопировать его снизу. Это файл конфигурации, используемый hadoop (который используется искровым).

Храните файл core-site.xml в папке. Лично я создаю папку $SPARK/conf/hadoop/conf/ и сохраняю ее там.

В файле spark-env.sh укажите hasoop conf fodler, добавив следующую строку: export HADOOP_CONF_DIR= =</absolute/path/to/hadoop/conf/>

Создайте ключ OAUTH2 на соответствующей странице Google (Google Console-> API-Manager-> Credentials).

Скопируйте учетные данные в файл core-site.xml.

Альтернатива 1: вместо копирования файла в папку $SPARK/jars вы можете сохранить банку в любой папке и добавить папку в путь класса искры. Один из способов - отредактировать SPARK_CLASSPATH в spark-env.sh''folder but spark-env.sh'', spark-env.sh''folder but SPARK_CLASSPATH 'теперь устарел. Поэтому можно посмотреть здесь, как добавить банку в искровой путь пути

<configuration>
<property>
<name>fs.gs.impl</name>
<value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem</value>
<description>Register GCS Hadoop filesystem</description>
</property>
<property>
<name>fs.gs.auth.service.account.enable</name>
<value>false</value>
<description>Force OAuth2 flow</description>
</property>
<property>
<name>fs.gs.auth.client.id</name>
<value>32555940559.apps.googleusercontent.com</value>
<description>Client id of Google-managed project associated with the Cloud SDK</description>
</property>
<property>
<name>fs.gs.auth.client.secret</name>
<value>fslkfjlsdfj098ejkjhsdf</value>
<description>Client secret of Google-managed project associated with the Cloud SDK</description>
</property>
<property>
<name>fs.gs.project.id</name>
<value>_THIS_VALUE_DOES_NOT_MATTER_</value>
<description>This value is required by GCS connector, but not used in the tools provided here.
The value provided is actually an invalid project id (starts with '_').
</description>
</property>
</configuration>

ответил(а) 2016-11-21T12:01:00+03:00 4 года, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема