DynamoDBStorageHandler Hive连接器

时间:2019-12-04 11:19:48

标签: hadoop hive amazon-dynamodb amazon-emr

当我从EMR群集中的Hive shell运行以下命令时:

CREATE EXTERNAL TABLE my_db.my_table
     (col1 string, ...)
 STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
 TBLPROPERTIES (
     "dynamodb.table.name" = "table_name", 
     "dynamodb.column.mapping" = "col1:col1  ... "
 );

我收到以下错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.net.ConnectTimeoutException Call From ip-xx-xx-xx-xxx.ec2.internal/xx.xx.xx.xxx to ip-yy-yy-yy-yyy.ec2.internal:8020 failed on socket timeout exception: org.apache.hadoop.net.ConnectTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=ip-yy-yy-yy-yyy.ec2.internal/yy.yy.yy.yyy:8020]; For more details see:  http://wiki.apache.org/hadoop/SocketTimeout)

EMR群集位于VPC中。
我尝试编辑主节点安全组的入站/出站规则,到目前为止没有成功。

谢谢迈克尔

1 个答案:

答案 0 :(得分:0)

AWS支持人员可以为我提供帮助:问题在于Glue中的数据库位置指向旧的HDFS地址ip-yy-yy-yy-yyy.ec2.internal(与xx.xx.xx.xxx不同) ,根据先前群集的主节点。我转至指向S3的位置,问题已解决。