Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Object Storage
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Бакеты
      • Создание бакета
      • Удаление бакета
      • Ограничение максимального размера бакета
      • Открытие публичного доступа к бакету
      • Шифрование бакета
      • Управление жизненными циклами объектов
      • Управление конфигурацией CORS
      • Управление политикой доступа
      • Управление версионированием бакета
      • Редактирование ACL бакета
      • Включение механизма логирования
    • Объекты
      • Загрузка объекта
      • Получение информации об объекте
      • Скачивание объекта
      • Получение публичной ссылки на объект
      • Удаление объекта
      • Удаление всех объектов
      • Удаление частично загруженного объекта
      • Редактирование ACL объекта
    • Хостинг статических сайтов
      • Настройка хостинга
      • Поддержка собственного домена
      • Поддержка нескольких доменных имен
      • Настройка HTTPS
  • Практические руководства
    • Получение статистики запросов к объекту с использованием S3 Select
    • Получение cтатистики посещения сайта с использованием S3 Select
    • Формирование отчета по ресурсной детализации расходов с использованием S3 Select
    • Шифрование на стороне сервера
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Анализ логов с использованием DataLens
    • Использование скриптов инициализации для настройки GeeseFS в Yandex Data Proc
  • Концепции
    • Обзор
    • Бакет
    • Объект
    • Версионирование бакета
    • Жизненные циклы объектов
    • CORS
    • Хостинг статических сайтов
    • Подписанные (pre-signed) URL
    • Составная (multipart) загрузка
    • Список управления доступом (ACL)
    • Политика доступа (Bucket Policy)
    • Загрузка файла через HTML-форму
    • Класс хранилища
    • Механизм логирования действий с бакетом
    • Резервное копирование
    • Протокол TLS
    • Язык запросов S3 Select
    • Квоты и лимиты
  • Инструменты
    • Все инструменты
    • Консольные клиенты
      • AWS CLI
      • S3cmd
    • Файловые браузеры
      • CyberDuck
      • WinSCP
    • SDK
      • AWS SDK для Java
      • Python SDK (boto)
      • AWS SDK для .NET
      • AWS SDK для C++
      • AWS SDK для PHP
      • AWS SDK для Go
    • FUSE
      • GeeseFS
      • s3fs
      • goofys
    • FTP
      • Docker-контейнер для (S)FTP(S)
  • Справочник API
    • REST (совместимый с Amazon S3)
      • Как пользоваться API
      • Подписывание запросов
      • REST
        • Все сервисы и методы
        • Bucket
          • Все методы
          • create
          • getBucketEncryption
          • getMeta
          • listObjects
          • listBuckets
          • deleteBucket
          • deleteBucketEncryption
          • putBucketEncryption
          • putBucketVersioning
          • getBucketVersioning
          • putBucketLogging
          • getBucketLogging
          • listObjectVersions
        • Object
          • Все методы
          • upload
          • get
          • copy
          • getObjectMeta
          • delete
          • deleteMultipleObjects
          • options
          • selectObjectContent
        • Multipart upload
          • Общий порядок составной загрузки
          • startUpload
          • uploadPart
          • copyPart
          • listParts
          • abortUpload
          • completeUpload
          • listUploads
        • Static Website Hosting
          • Все методы
          • upload
          • get
          • delete
          • Коды ответов статического сайта
        • CORS
          • Все методы
          • XML-структура конфигурации CORS
          • upload
          • get
          • delete
        • Lifecycles
          • Все методы
          • XML-структура конфигурации жизненных циклов
          • upload
          • get
          • delete
        • ACL
          • Все методы
          • XML-структура конфигурации ACL
          • objectGetAcl
          • objectPutAcl
          • bucketGetAcl
          • bucketPutAcl
        • Bucket Policy
          • Все методы
          • GetBucketPolicy
          • PutBucketPolicy
          • DeleteBucketPolicy
          • Схема данных
          • Действия
          • Условия
        • Общие заголовки запросов
        • Общие заголовки ответов
        • Ответы
    • gRPC и REST
      • Аутентификация в API
      • gRPC (англ.)
        • Overview
        • BucketService
        • OperationService
      • REST (англ.)
        • Overview
        • Bucket
          • Overview
          • create
          • delete
          • deleteHTTPSConfig
          • get
          • getHTTPSConfig
          • getStats
          • list
          • setHTTPSConfig
          • update
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
  • Вопросы и ответы
  1. Практические руководства
  2. Использование скриптов инициализации для настройки GeeseFS в Yandex Data Proc

Использование скриптов инициализации для настройки GeeseFS в Yandex 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
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Подготовьте скрипт инициализации
  • Создайте кластер, использующий скрипт инициализации
  • Проверьте доступность бакета
  • Удалите созданные ресурсы