Я хотел бы знать, возможно ли иметь внешнюю таблицу, указывающую на таблицу DynamoDB на AWS, используя Hive. Я не использую AWS EMR, я использую стек oop, настроенный через Apache Ambari.
Версия Hive: Hive 3.1.0.3.1.4.0-315
То, что я сделал: загрузил JAR-файл EMR Dynamo-Hive соединителя непосредственно из репозитория maven: https://mvnrepository.com/artifact/com.amazon.emr
Я загрузил все JARS в hive.aux.jars. путь:
emr-dynamodb-hadoop-4.12.0.jar
emr-dynamodb-hive-4.12.0.jar
emr-dynamodb-tools-4.12.0.jar
hive1.2-shims-4.12.0.jar
hive1-shims-4.12.0.jar
hive2-shims-4.12.0.jar
hive2-shims-4.15.0.jar
shims-common-4.12.0.jar
shims-loader-4.12.0.jar
Но когда я пытаюсь создать таблицу с:
CREATE EXTERNAL TABLE dynamo_LabDynamoHive
(id double, nome string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES (
"dynamodb.table.name" = "LabDynamoHive",
"dynamodb.column.mapping" = "id:id,nome:nome"
);
я получаю следующую ошибку:
INFO : Starting task [Stage-0:DDL] in serial mode
ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Shim class for Hive version 3.1.1000 does not exist
INFO : Completed executing command(queryId=hive_20200422142624_6ebabdc8-8942-4025-84a8-411505d20895); Time taken: 0.203 seconds
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Shim class for Hive version 3.1.1000 does not exist (state=08S01,code=1)
Я знаю, что я не загружать JAR-файл Shims для Hive 3, но я хотел бы знать, пытался ли кто-нибудь из вас попытаться использовать внешнюю таблицу с DynamoDB и использовать Hive 3 вне EMR.
Любая помощь или указания будут с благодарностью!