当我从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中。
我尝试编辑主节点安全组的入站/出站规则,到目前为止没有成功。
谢谢迈克尔
答案 0 :(得分:0)
AWS支持人员可以为我提供帮助:问题在于Glue中的数据库位置指向旧的HDFS地址ip-yy-yy-yy-yyy.ec2.internal(与xx.xx.xx.xxx不同) ,根据先前群集的主节点。我转至指向S3的位置,问题已解决。