我正在使用 Hue (Hadoop User Experience) 存取 Amazon EMR 叢集上的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。我收到下列其中一個錯誤訊息: 沒有符合搜尋條件的檔案。無法存取路徑 "s3a://awsdoc-example-bucket.hue1":主機名稱 u'awsdoc-example-bucket.hue1.s3.amazonaws.com' 不符合 '.s3.amazonaws.com' 或's3.amazonaws.com' 無法擷取儲存貯體:主機名稱 u'awsdoc-example-bucket.hue1.s3.amazonaws.com' 不符合 '.s3.amazonaws.com' 或 's3.amazonaws.com'
簡短描述
Hue 的預設 Amazon S3 調用格式是 https://awsdoc-example-bucket.s3.amazonaws.com。如果您的 S3 儲存貯體名稱中有點 (.),則 Amazon S3 端點中會包含部分儲存貯體名稱。例如,如果您的儲存貯體命名為 awsdoc-example-bucket.hue,則 Hue 將 hue.s3.amazonaws.com 視為 Amazon S3 端點,而不是 s3.amazonaws.com。
解決方法
若要解決此錯誤,請將端點格式變更為 https://s3.amazonaws.com/awsdoc-example-bucket。使用此格式時,儲存貯體名稱中可以有任意數量的點。
1. 開啟 /etc/boto.cfg 檔案。
2. 將下列行新增至 boto.cfg 檔案中:
[s3]
calling_format=boto.s3.connection.OrdinaryCallingFormat
3. 重新啟動 Hue 服務:
對於早於 5.30 的 Amazon EMR 版本:
$ sudo stop hue
$ sudo start hue
對於 Amazon EMR 5.30 及更高版本:
$ sudo systemctl restart hue
相關資訊
Boto3 組態
Hue