AWS 中国 (北京) リージョンで Hive と Presto を使用して Amazon EMR クラスターを起動すると、「The provided token is malformed or otherwise invalid」(提供されたトークンの形式が正しくないか、無効です) というエラーが表示されるのはなぜですか?

所要時間1分
0

AWS 中国 (北京) リージョン (cn-north-1) で Amazon EMR クラスターを起動し、Presto と Apache Hive を使用して Amazon Simple Storage Service (Amazon S3) バケットから外部テーブルを作成しました。Hive と Presto を使用してテーブルをクエリすると、次のようなエラーが表示されます。 presto:default> select * from mydata; Query 20200912_072348_00009_qqx96, FAILED, 1 node Splits: 1 total, 0 done (0.00%) 0:03 [0 rows, 0B] [0 rows/s, 0B/s] Query 20200912_072348_00009_qqx96 failed: The provided token is malformed or otherwise invalid.(Service: Amazon S3; Status Code: 400; Error Code: InvalidToken; Request ID: 811359ED1D9F8250)

簡単な説明

以前の Amazon EMR リリースバージョンでは、Presto は S3 バケットがあるリージョンを自動的に使用しません。このエラーを解決するには、次のいずれかのオプションを使用します。

  • Amazon EMR リリースバージョン 5.12.0 以降にアップグレードする。
  • Amazon EMR リリースバージョン 5.11.x 以前を使用するには、hive.s3.pin-client-to-current-region プロパティを true に設定します。

解決方法

Amazon EMR リリースバージョン 5.12.0 以降へアップグレード

新しいクラスターを起動し、Amazon EMR リリースバージョン 5.12.0 以降を選択します。詳細については、「Amazon EMR リリースについて」を参照してください。

hive.s3.pin-client-to-current-region プロパティを true に設定します (バージョン 5.11.x以前)

1.    各ノードで [hive.properties] ファイルを開き、hive.s3.pin-client-to-current-region プロパティを [true] に設定します。例:

sudo vim /etc/presto/conf/catalog/hive.properties
hive.s3.connect-timeout=2m
hive.s3.max-backoff-time=10m
...
hive.s3.pin-client-to-current-region=true

2.    各ノードで Presto を再起動します。

sudo restart presto-server

3.    新しい構成が期待どおりに動作することを確認するには、中国 (北京) リージョンで Hive と Presto を使用してテーブルを照会します。


関連情報

Apache Hive

Presto and Trino (Presto と Trino)

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ