Я пытаюсь настроить Presto на экземпляре AWS EC2, чтобы я мог выполнять запросы к файлам, хранящимся в S3. Я знаю, что вы можете / должны использовать EMR, но я ограничен EC2. Я создал базу данных Derby для своего хранилища метаданных, настроил HDFS в ведре и могу запрашивать файлы данных в S3 с помощью Hive. В интерфейсе командной строки Hive я могу запустить SELECT * FROM testpresto;
(testpresto - это имя моей таблицы), и он правильно отображает все содержимое моего txt-файла S3. Я подключил Presto к хранилищу метаданных Hive, поэтому моя таблица отображается в интерфейсе командной строки presto через SHOW TABLES;
и DESCRIBE testpresto;
.
Однако, когда я запускаю SELECT * FROM testpresto;
, время ожидания запроса истекает с ошибкой ниже.
Запрос 20170109_165917_00007_7pyam завершился неудачно: невозможно выполнить HTTP-запрос: подключиться к $ {MY_BUCKET} .s3-us-west-1.amazonaws.com: 443 [$ {MY_BUCKET} .s3-us-west-1.amazonaws.com / 54.231. 237.24] не удалось: время ожидания подключения истекло
Когда я пытаюсь создать экземпляр новой схемы через Presto CLI, я получаю более описательную ошибку.
Запрос 20170109_175329_00016_7pyam завершился неудачно: java.lang.IllegalArgumentException: необходимо указать идентификатор ключа доступа AWS и секретный ключ доступа в качестве имени пользователя или пароля (соответственно) URL-адреса s3 или путем установки свойств fs.s3.awsAccessKeyId или fs.s3.awsSecretAccessKey (соответственно).
К сожалению, ничто из того, что я делаю, не решает эту ошибку. Из того, что я читал в Интернете, кажется, что добавление ссылки на ресурс в мою конфигурацию Presto (catalog/hive.properties
) через
hive.config.resources=/usr/local/hadoop/etc/hadoop/core-site.xml,/usr/local/hadoop/etc/hadoop/hdfs-site.xml
или добавление ключей напрямую через hive.s3.aws-access-key
и hive.s3.aws-secret-key
должно позволить Presto читать из S3. Я также пробовал использовать hive.s3.use-instance-credentials=true
(как с настройкой ключей, так и без них) для использования роли IAM, но все это вызывает ту же ошибку. Есть ли какой-то другой параметр, который мне не хватает? Я не понимаю, почему Hive может запрашивать, а Presto - нет.