Я настроил свой локальный сервер S3 с помощью Minio. Я могу получить доступ к файлам, хранящимся в нем, из Spark, следуя эти шаги. Но если я попытаюсь настроить Hive для доступа к внешнему паркетному файлу, хранящемуся на этом сервере, я получаю следующую ошибку:
СБОЙ: ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask. MetaException (сообщение: java.lang.IllegalArgumentException: необходимо указать идентификатор ключа доступа AWS и секретный ключ доступа, задав свойства fs.s3n.awsAccessKeyId и fs.s3n.awsSecretAccessKey (соответственно).)
Моя версия улья: 1.1.
Я использую cdh5.16.1 с Hadoop 2.6.
Моя версия Spark - 1.6.
Я попытался изменить файлы (hive-site.xml и core-site.xml) с указанными свойствами здесь, но я получаю ту же ошибку. Я также попытался добавить эти свойства во время выполнения, введя следующие команды в оболочке Hive:
SET fs.s3a.endpoint=http://127.0.0.1:9003;
SET fs.s3a.access.key=ACCESSKEY;
SET fs.s3a.awsAccessKeyId=ACCESSKEY;
SET fs.s3a.secret.key=SECRETKEY;
SET fs.s3a.awsSecretAccessKey=SECRETKEY;
SET fs.s3a.path.style.access=true;
SET fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem;
Обратите внимание, что у меня есть только fs.s3a.access.key и fs.s3a.secret.key, потому что я не использую AWS S3 (я использую локальный S3), но я добавил свойства AWS KEY в свои файлы конфигурации. из-за сообщения об исключении, которое я получаю. Я также пытался использовать s3n вместо s3a (чтобы проверить, не совместим ли s3a с моей версией Hive), но получаю то же сообщение об исключении.
Команда Create Table, вызывающая исключение:
CREATE EXTERNAL TABLE aml.bgp_pers_juridi3(
internal_id string,
society_type string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3n://oclrh65c034.isbcloud.isban.corp:9003/minio/entities/bgp_pers_juridi2'
Заранее спасибо.