Чтение из хранилища google gs://файловая система из локального искрового экземпляра
Проблема довольно проста: у вас есть локальный искровой экземпляр (кластер или его запуск в локальном режиме), и вы хотите прочитать из gs://
Я представляю здесь решение, которое я придумал, объединив различные ресурсы:
Загрузите консоль хранения 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>
Еще в рубрике
- Вопросы
- Google-cloud-platform
- Чтение из хранилища google gs://файловая система из локального искрового экземпляра