gpt4 book ai didi

hadoop - 如何在Hive 3.1上为DynamoDB创建外部表

转载 作者:行者123 更新时间:2023-12-02 20:19:26 25 4
gpt4 key购买 nike

我想知道是否有可能使用Hive在AWS上有一个指向DynamoDB表的外部表。
我没有使用AWS EMR,而是通过Apache Ambari配置的Hadoop堆栈。

hive 版本: hive 3.1.0.3.1.4.0-315

我所做的是:
直接从Maven存储库中下载了EMR Dynamo-Hive连接器JARS:https://mvnrepository.com/artifact/com.amazon.emr

我在hive.aux.jars.path中加载了所有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)

我知道我没有为Hive 3加载Shims JAR,但是我想知道你们中是否有人尝试并成功在EMR之外使用Hive 3在DynamoDB中使用外部表。

任何帮助或指示将不胜感激!

最佳答案

问题显然是此EMR连接器的源代码有些过时,并且缺少AWS最近为EMR 6.0引入的Hive 3.x支持。

但是,您可以在此处找到有效的3.1实现,该实现是从官方EMR连接器派生的:https://github.com/ramsesrm/emr-dynamodb-connector

安装步骤如下:
1-编译提到的代码(MVN干净包)
2-在您的hive.aux.jars.path中安装3个JAR,以及来自AWS的aws-java-sdk-core和aws-java-sdk-dynamodb JAR(不需要匀速JAR),总共5个。

就是这样。如果您未使用默认的美国地区,请不要忘记将区域指定为TBLPROPERTIES。

关于hadoop - 如何在Hive 3.1上为DynamoDB创建外部表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61371945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com