2017-09-04 41 views
0

在歐盟地區使用Hive & DynamoDB時出現問題。配置單元 - DynamoDB導出不在歐洲工作?

我的測試情況是:

  • 蜂巢版本 - 2.3.0歐盟 - 中部 - 1
  • Dynamodb表 - test_input EU-中央1

蜂巢腳本:

CREATE EXTERNAL TABLE raw_data (id STRING, parent_id STRING, value STRING) 
    STORED BY "org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler" 
    TBLPROPERTIES (
     "dynamodb.table.name" = "test_input", 
     "dynamodb.region"="eu-central-1", 
     "dynamodb.column.mapping" = "id:id,value:value,parent_id:parent_id" 
    ); 

運行腳本後我得到:

FAILED:執行錯誤,從org.apache.hadoop.hive.ql.exec.DDLTask返回代碼1。 java.lang.RuntimeException:無法在DynamoDB中查找表test_input。

根據陳步https://forums.aws.amazon.com/thread.jspa?messageID=326618,我嘗試了很多步驟來解決它。 加入後: SET dynamodb.endpoint = dynamodb.eu-central-1.amazonaws.com。 同樣的錯誤。

我試着也補充:

<property> 
    <name>dynamodb.endpoint</name> 
    <value>dynamodb.eu-central-1.amazonaws.com</value> 
    <description>DynamoDB endpoint</description> 
</property> 

要/etc/hive/conf/hive-default.xml和/etc/hive/conf/hive-site.xml。仍然有相同的結果。 我搜索互聯網找到沒有成功解決方案:(

任何想法如何解決呢

回答

1

解決通過增加/etc/hadoop/conf/core-site.xml:

<property> 
    <name>fs.s3.awsAccessKeyId</name> 
    <value>Key</value> 
</property> 
<property> 
    <name>fs.s3.awsSecretAccessKey</name> 
    <value>Secret</value> 
</property> 

只有這是必需的,EMR使用此帳戶代替角色。