Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Data Proc
  • Начало работы
  • Практические руководства
    • Все практические руководства
    • Работа с заданиями
      • Обзор
      • Работа с заданиями Hive
      • Работа с заданиями MapReduce
      • Работа с заданиями PySpark
      • Работа с заданиями Spark
      • Запуск заданий Apache Hive
      • Запуск Spark-приложений
      • Запуск заданий с удаленного хоста
    • Настройка сети для Data Proc
    • Использование Yandex Object Storage в Data Proc
    • Обмен данными с Yandex Managed Service for ClickHouse
    • Импорт данных из кластера Yandex Managed Service for MySQL с помощью Sqoop
    • Импорт данных из кластера Yandex Managed Service for PostgreSQL с помощью Sqoop
    • "Использование скриптов инициализации для настройки GeeseFS в Data Proc"
    • Интеграция с сервисом Yandex DataSphere
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к кластеру
    • Изменение кластера
    • Управление подкластерами
    • Изменение подкластера
    • Подключение к интерфейсам компонентов
    • Использование Sqoop
    • Управление заданиями
      • Все задания
      • Задания Spark
      • Задания PySpark
      • Задания Hive
      • Задания MapReduce
    • Удаление кластера
    • Работа с логами
    • Мониторинг состояния кластера и хостов
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
    • Среда исполнения
    • Интерфейсы и порты компонентов Data Proc
    • Задания в Data Proc
    • Автоматическое масштабирование
    • Декомиссия подкластеров и хостов
    • Сеть в Data Proc
    • Техническое обслуживание
    • Квоты и лимиты
    • Хранилище в Data Proc
    • Свойства компонентов
    • Логи в Data Proc
    • Скрипты инициализации
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • ClusterService
      • JobService
      • ResourcePresetService
      • SubclusterService
      • OperationService
    • REST (англ.)
      • Overview
      • Cluster
        • Overview
        • create
        • delete
        • get
        • list
        • listHosts
        • listOperations
        • listUILinks
        • start
        • stop
        • update
      • Job
        • Overview
        • cancel
        • create
        • get
        • list
        • listLog
      • ResourcePreset
        • Overview
        • get
        • list
      • Subcluster
        • Overview
        • create
        • delete
        • get
        • list
        • update
  • История изменений
    • Изменения сервиса
    • Образы
  • Вопросы и ответы
  1. Практические руководства
  2. "Использование скриптов инициализации для настройки GeeseFS в Data Proc"

Использовании скриптов инициализации для настройки GeeseFS в Data Proc

Статья создана
Yandex Cloud
  • Перед началом работы
  • Подготовьте скрипт инициализации
  • Создайте кластер, использующий скрипт инициализации
  • Проверьте доступность бакета
  • Удалите созданные ресурсы

В сервисе Yandex Data Proc вы можете использовать для настройки хостов скрипты инициализации (initialization actions).

С их помощью можно автоматизировать установку и настройку программы GeeseFS, позволяющей хостам кластера Yandex Data Proc монтировать бакеты Yandex Object Storage через FUSE.

Чтобы настроить GeeseFS:

  1. Подготовьте скрипт инициализации.
  2. Создайте кластер, использующий скрипт инициализации.
  3. Проверьте доступность бакета.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работы

  1. Создайте сервисный аккаунт с ролью mdb.dataproc.agent.

  2. Создайте бакет Yandex Object Storage.

  3. Предоставьте сервисному аккаунту доступ на чтение из бакета. Для этого воспользуйтесь одним из способов:

    • Настройте ACL бакета и выдайте сервисному аккаунту разрешение READ.

      Сервисный аккаунт получит доступ на чтение только к указанному бакету.

    • Назначьте сервисному аккаунту роль storage.viewer.

      Сервисный аккаунт получит доступ на чтение ко всем бакетам в каталоге.

Подготовьте скрипт инициализации

  1. Создайте файл скрипта инициализации geesefs_mount.sh, принимающий два позиционных аргумента — имя бакета Yandex Object Storage и директорию в файловой системе хоста, куда он должен быть смонтирован.

    #!/bin/bash
    
    set -e
    
    BUCKET=$1
    MOUNT_POINT=$2
    
    # Загрузка GeeseFS
    wget https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-amd64 -O /opt/geesefs
    chmod a+rwx /opt/geesefs
    mkdir -p "${MOUNT_POINT}"
    
    # Подготовка скрипта, выполняющегося при каждой загрузке
    BOOT_SCRIPT="/var/lib/cloud/scripts/per-boot/80-geesefs-mount.sh"
    echo "#!/bin/bash" >> ${BOOT_SCRIPT}
    echo "/opt/geesefs -o allow_other --iam ${BUCKET} ${MOUNT_POINT}" >> ${BOOT_SCRIPT}
    chmod 755 ${BOOT_SCRIPT}
    
    # Запуск скрипта
    ${BOOT_SCRIPT}
    
  2. Загрузите файл geesefs_mount.sh в созданный ранее бакет Yandex Object Storage.

Создайте кластер, использующий скрипт инициализации

Создайте кластер Data Proc со следующими параметрами:

  • Сервисный аккаунт — выберите созданный ранее сервисный аккаунт.

  • Пользовательские скрипты — добавьте скрипт со следующими настройками:

    • URI — укажите путь к файлу скрипта в бакете, например:

      s3a://<имя бакета>/geesefs_mount.sh
      
    • Аргументы — укажите имя созданного ранее бакета и точку монтирования /mnt/test. Аргументы указываются на отдельных строках:

      <имя бакета>
      /mnt/test
      
  • Имя бакета — выберите созданный ранее бакет.

  • Подкластеры — включите в настройках опцию Публичный доступ. Это позволит подключаться к хостам подкластеров без использования промежуточной виртуальной машины.

Проверьте доступность бакета

  1. После того, как кластер перейдет в статус Alive, подключитесь по SSH от имени пользователя ubuntu к любому из его хостов.

  2. Чтобы убедиться в успешном монтировании бакета, выполните команду:

    ls /mnt/test/<имя бакета>
    

    Она вернет список объектов, хранящихся в корневом каталоге бакета. В данном случае — имя файла geesefs_mount.sh.

Удалите созданные ресурсы

Если созданные ресурсы вам больше не нужны, удалите их:

  1. Удалите кластер Data Proc.
  2. Если для доступа к хостам кластера использовались статические публичные IP-адреса, освободите и удалите их.
  3. Удалите бакет Yandex Object Storage.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Подготовьте скрипт инициализации
  • Создайте кластер, использующий скрипт инициализации
  • Проверьте доступность бакета
  • Удалите созданные ресурсы