Облачная платформаAdvanced

Подключение Spark к OBS

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Подключение к OBS

В кластере MRS Location можно задать путь к файловой системе OBS при создании таблицы Spark, и Spark может подключаться к OBS через Hive Metastore.

  • Задание пути к OBS при создании таблицы:
    1. Войдите в узел, где установлен клиент, под пользователем установки клиента, и откройте клиент spark-sql.

      cd Директория установки клиента

      kinit Пользователь операции компонента

      spark-sql --master yarn

    2. Set Location to the OBS file system path when creating a table.

      Например, чтобы создать таблицу с именем test, у которой Location равен obs://obs-test/test/Database name/Table name, выполните следующую команду:

      create external table testspark(name string) location "obs://obs-test/test/Database name/Table name";

  • Подключение Spark к OBS через Hive Metastore:
    1. Complete the configurations by referring to Interconnecting Hive with OBS using MetaStore.
    2. Log in to FusionInsight Manager, choose Cluster > Services > Spark and choose Configurations > All Configurations.
    3. In the navigation pane on the left, choose SparkResource > Customization. In the custom configuration items, add spark.sql.warehouse.location.first to the custom parameter and set its value to true.

      Рисунок 1 spark.sql.warehouse.location.first configuration


    4. В панели навигации слева выберите JDBCServer > Customization. В элементах пользовательской конфигурации добавьте spark.sql.warehouse.location.first в параметр custom и установите его значение true.

      Рисунок 2 spark.sql.warehouse.location.first configuration


    5. Нажмите Save, чтобы сохранить конфигурацию. Нажмите вкладку Dashboard, выберите More > Restart Service, введите пароль, нажмите OK и снова нажмите OK, чтобы перезапустить Spark.
    6. После перезапуска Spark, выберите More > Download Client, чтобы снова загрузить и установить клиент Spark. Затем перейдите к 7.

      Если вы не загружаете и не устанавливаете клиент повторно, вы можете выполнить следующие шаги для обновления файла конфигурации клиента Spark (например, каталог клиента /opt/client):

      1. Войдите в узел, где развернут клиент Spark, под пользователем root, и перейдите в каталог установки клиента.

        cd /opt/client

      2. Выполните следующую команду, чтобы изменить hive-site.xml в каталоге файлов конфигурации клиента Spark:

        vi Spark/spark/conf/hive-site.xml

        Измените значение hive.metastore.warehouse.dir на соответствующий путь OBS, например, obs://hivetest/user/hive/warehouse/.

        <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>obs://hivetest/user/hive/warehouse/<value>
        </property>
      3. Выполните следующую команду, чтобы изменить файл spark-defaults.conf в каталоге файлов конфигурации клиента Spark и установить spark.sql.warehouse.location.first в true:

        vi Spark/spark/conf/spark-defaults.conf

    7. Configure the OBS directory permission for the component operation user in clusters with Kerberos authentication enabled by referring to Configuring Ranger Permissions.
    8. Перейдите в SparkSQL CLI и spark-beeline, создайте таблицу и проверьте, является ли расположение таблицы путём OBS.

      source bigdata_env

      kinit Service user (пропустите этот шаг для обычных кластеров)

      • Перейдите к SparkSQL CLI.

        spark-sql

        create table d(a int);

        desc formatted d;

        Как показано на следующем рисунке, расположение таблицы d находится в указанном пути OBS.

      • Перейдите к spark-beeline.

        spark-beeline

        create table e(a int);

        desc formatted e;

        Как показано на следующем рисунке, расположение таблицы e находится в указанном пути OBS.

Настройка разрешений Ranger

  1. Войдите в FusionInsight Manager и выберите System > Permission > User Group. На отображаемой странице нажмите Create User Group.
  2. Создайте группу пользователей без роли, например, obs_spark, и привяжите группу пользователей к соответствующему пользователю.
  3. Войдите в страницу управления Ranger как пользователь rangeradmin.
  4. На главной странице нажмите component plug-in name OBS в области EXTERNAL AUTHORIZATION.
  5. Нажмите Add New Policy, чтобы добавить разрешения Read и Write на пути OBS в группу пользователей, созданную в 2. Если пути OBS отсутствуют, создайте их заранее (символ подстановки * не допускается).

Note
  • Каскадная авторизация не поддерживается для представлений таблиц.
  • Каскадную авторизацию можно выполнять только для баз данных и таблиц, но не для разделов. Если путь раздела не входит в путь таблицы, необходимо вручную авторизовать путь раздела.
  • Каскадная авторизация для Deny Conditions в политике Hive Ranger не поддерживается. То есть разрешение Deny Conditions ограничивает только разрешение таблицы и не может создать разрешение источника хранилища HDFS.
  • Разрешение политики HDFS Ranger имеет приоритет над разрешением источника хранилища HDFS, созданным каскадной авторизацией. Если разрешение HDFS Ranger уже задано для источника хранилища HDFS таблицы, каскадное разрешение не вступает в силу.

Настройка разрешений для пользователей сервиса CDL

Если Kerberos authentication is enabled for the cluster (the cluster is in security mode) и необходимо сохранять данные в реальном времени в OBS после соединения, выполните следующие действия, чтобы предоставить пользователю конкретные разрешения Read и Write на соответствующий путь OBS:

  1. Войдите в FusionInsight Manager и выберите System > Permission > User Group. На отображаемой странице нажмите Create User Group.
  2. Создайте группу пользователей без роли, например, obs_cdl, и привяжите группу к соответствующему пользователю сервиса CDL, например, cdluser.
  3. Войдите в страницу управления Ranger как пользователь rangeradmin.
  4. На главной странице нажмите component plug-in name OBS в области EXTERNAL AUTHORIZATION.
  5. Нажмите Add New Policy, чтобы добавить разрешения Read и Write на пути OBS в созданную группу пользователей. Если пути OBS отсутствуют, создайте их заранее (символ подстановки * не допускается).

    На следующем рисунке показаны настройки, необходимые для добавления разрешений Read и Write на obs://OBS parallel file system name/cdldata в группу пользователей obs_cdl.