在 AWS 中國 (北京) 區域使用 Hive 和 Presto 啟動 Amazon EMR 叢集時,為什麼收到「提供的權杖格式錯誤或無效」錯誤?

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] 查詢 20200912_072348_00009_qqx96 失敗: 提供的權杖格式錯誤或無效。(服務: Amazon S3;狀態碼: 400;錯誤代碼: InvalidToken;請求 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 和 Trino

AWS 官方
AWS 官方已更新 2 年前