Presto на Amazon S3

Я пытаюсь использовать Presto в корзине Amazon S3, но не нашел много соответствующей информации в Интернете.

Я установил Presto на микро-экземпляр, но не могу понять, как мне подключиться к S3. Есть ведро и в нем файлы. У меня есть работающий сервер хранилища метаданных улья, и я настроил его в presto hive.properties. Но когда я пытаюсь запустить команду LOCATION в улье, она не работает.

ИТ выдает ошибку, говоря, что не может найти тип файловой схемы s3.

И также я не знаю, почему нам нужно запускать hadoop, но без hasoop улей не запускается. Есть ли этому объяснение?

Это и это документация, которой я следил при настройке.


person Codex    schedule 09.05.2016    source источник
comment
Немного в стороне от вашего вопроса, а почему вы не используете aws EMR? все эти конфигурации есть из коробки, и, насколько я знаю presto, для хорошей работы нужен кластер, одного экземпляра ec2 недостаточно. Еще одно замечание: если вы не хотите запускать кластер для запуска presto, вы можете использовать aws Athena, сервис, предоставляемый Amazon, который предоставляет Presto как сервис. Цены на Athena указаны за отсканированные данные, поэтому, если ваши данные малы, вы не платите за них, они взимают с вас 5 долларов за 1 отсканированный ТБ. Я настоятельно рекомендую это, если вы просто экспериментируете с Presto   -  person Abdulhafeth Sartawi    schedule 05.07.2018


Ответы (1)


Presto использует хранилище метаданных Hive для сопоставления таблиц базы данных с соответствующими файлами. Эти файлы могут существовать на S3 и могут храниться в нескольких форматах - CSV, ORC, Parquet, Seq и т. Д.

Хранилище метаданных Hive обычно заполняется с помощью HQL (Hive Query Language) путем выполнения операторов DDL, таких как CREATE EXTERNAL TABLE ... с предложением LOCATION ..., ссылающимся на базовые файлы, содержащие данные.

Чтобы заставить Presto подключиться к хранилищу метаданных Hive, вам необходимо отредактировать файл hive.properties (EMR помещает его в /etc/presto/conf.dist/catalog/) и установить параметр hive.metastore.uri для сберегательной службы соответствующей службы хранилища метаданных Hive.

Если вы выберете Hive и Presto, инстансы кластера Amazon EMR настроят это автоматически, так что это хорошее место для начала.

Если вы хотите протестировать это на автономном экземпляре ec2, я бы посоветовал вам сначала сосредоточиться на получении функциональной службы улья, работающей с инфраструктурой Hadoop. Вы должны иметь возможность определять таблицы, которые находятся локально в файловой системе hdfs. Presto дополняет hive, но требует действующей настройки hive, собственные ddl-операторы presto не так полны, как hive, поэтому вы будете создавать большую часть таблиц непосредственно из hive.

В качестве альтернативы вы можете определить соединители Presto для базы данных mysql или postgresql, но это всего лишь передача jdbc, не думаю, что вы много выиграете.

person Euan    schedule 13.05.2016
comment
Спасибо за ответ. Я хочу попробовать presto абсолютно бесплатно. Пожалуйста, проверьте правки, у меня появилось больше сомнений после просмотра соответствующего материала, который вы только что упомянули. - person Codex; 13.05.2016
comment
С Amazon EMR я бы понес расходы, поэтому я стараюсь этого избежать. Есть ли способ для этого? - person Codex; 13.05.2016
comment
Последним я написал следующее сообщение год по теме. С тех пор я не пробовал эту настройку, но есть шанс, что это может помочь. Общая идея состоит в том, чтобы использовать контейнер Docker в качестве хранилища метаданных Hive, поэтому вам не нужна управляемая служба, такая как EMR, только для целей маршрутизации ваших запросов Presto. - person Daniel Corin; 22.02.2017
comment
@Euan - это какая-либо информация (например, как EMR помещает конфигурацию в специальную папку, которую вы не можете найти в документации presto) доступна где-либо, или это все племенные знания на данный момент? Попытка получить базовую настройку Presto - ›Hive -› S3 работает, и это на удивление ужасно. - person a p; 26.05.2017