1

Amazon の EMR で Hive をセットアップして、DynamoDB テーブルからデータをプルして S3 にダンプしようとしています。ここにある指示に従いましたが、ほとんどのテーブルで成功しました。ただし、DynamoDB テーブルが 1 つの場合、エラーが発生します (以下を参照)。

問題のテーブルには多くの列 (>100) があり、マッピングをそれらのサブセットのみに削減するとスクリプトを実行できるため、これが問題であると想定していますが、ドキュメントが見つかりませんこのあたり。

定義できる列の数にある種の厳しい制限はありますか? または、ここでヒットする可能性が高い他の制限はありますか? これを回避する方法はありますか?


私が得ているエラーは次のようになります:

FAILED: Error in metadata: javax.jdo.JDODataStoreException: Put request failed : INSERT INTO `TABLE_PARAMS` (`PARAM_VALUE`,`TBL_ID`,`PARAM_KEY`) VALUES (?,?,?)
NestedThrowables:
org.datanucleus.store.mapped.exceptions.MappedDatastoreException: INSERT INTO `TABLE_PARAMS` (`PARAM_VALUE`,`TBL_ID`,`PARAM_KEY`) VALUES (?,?,?)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

実行しようとしているスクリプトは次のようになります。

CREATE EXTERNAL TABLE hive_WSOP_DEV_STATS_input (col1 string, col2 string...)
    STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
    TBLPROPERTIES ( "dynamodb.table.name" = "DYNAMO_TABLE_NAME",
        "dynamodb.column.mapping" = "col1:col1,col2:col2...");
4

1 に答える 1

2

私は数年前に同様の問題に遭遇しました。私が正しく思い出せば、問題は、ハイブがデータベースに書き込むクエリのテキストの長さに制限を設けることです。コール スタックを見ると、その変数が構成可能かどうか、そうでない場合はコードを編集する場所がわかります。

于 2012-05-03T15:18:27.850 に答える