Для тестирования Spark с хранилищем S3 мы используем MinIO. Это позволяет запускать тесты локально в Docker не имея доступа к реальной инфраструктуре. Недавно дошли до тестирования Spark с Google Cloud Storage и мне довелось разрабатывать аналогичный тест.
В году этак 2019, я искал способ эмулировать GCS для тестирования приложений, но тогда ничего работающего не нашлось.
В этот раз загуглил ещё раз и наткнулся на Cloud storage - How to emulate it locally? в котором упоминались два проекта:Оба эмулятора без проходят простейший тестовый сценарий:
- Создать новый бакет
- Положить десяток объектов
- Получить список существующих объектов
- Скачать содержимое объектов
Чтобы заставить Hadoop GCS Connector ходить в эти эмуляторы, не пытаясь авторизоваться в GCP, пришлось помучиться. Нужные опции для версии 2.2.18 это "fs.gs.auth.null.enable = true" и "fs.gs.auth.service.account.enable = false". Причём о fs.gs.auth.null.enable я случайно узнал из чейнджлога, а не из описания опций.
При работе с oittaa/gcp-storage-emulator ошибками сыплет сам эмулятор, а с fsouza/fake-gcs-server ошибок в логе эмулятора не видно, но сам Spark ругается на закрытое подключение.
В общем пока отложил идею тестировать что-либо связанное с GCS на них.
Комментариев нет:
Отправить комментарий