Amazon EMR クラスターの Hue (Hadoop User Experience) ウェブインターフェイスから Amazon Simple Storage Service (Amazon S3) テーブルにアクセスできません。「Failed to access path:'s3a://path' Check that you have access to read this bucket and that the region is correct:Bad Request.」のようなエラーメッセージが表示されます。

このエラーは通常、us-east-1 リージョンにない S3 バケットにアクセスしようとする場合に発生します。Hue ウェブインターフェイスで S3 テーブルにアクセスするには、S3 に外部 Hive テーブルを作成してください。hue.iniregion パラメータを更新して S3 バケットのリージョンを一致させてから、Hue を再起動します。

前提条件

  • Amazon EMR クラスターに Hive がインストールされていることを確認してください。
  • Hive のメタストアとして AWS Glue Data Catalog を使用していることを確認してください。
  • 外部 Hive テーブルがあることを確認してください。このテーブルがない場合は、以下のような DDL ステートメントを使用して作成してください。
CREATE EXTERNAL TABLE IF NOT EXISTS urls3(
 id STRING,
 'date' string,
 url STRING,
 expandedUrl STRING,
 domain STRING
) 
PARTITIONED BY ('year' INT, 'month' INT,
    'day' INT)
    
STORED AS PARQUET LOCATION 's3://bucket-name/new/';

Hue 設定をチェックする

デフォルトで、Amazon EMR は Hue の region パラメータを us-east-1 に設定します。us-east-1 以外のリージョンにある S3 テーブルにアクセスするには、hue.ini を変更してください。

1.    region パラメータのコメントを解除します。

sudo sed -i '/region/s/^##//g' /etc/hue/conf/hue.ini

2.    region パラメータを、バケットがあるリージョンに設定します。以下の例では、eu-west-1 にバケットがあります。

sudo sed -i '/region/s,us-east-1,eu-west-1,' /etc/hue/conf/hue.ini

Hue を再起動する

1.    以下のコマンドを実行して、Hue を再起動します。

sudo stop hue ; sudo start hue

2.    Hue ウェブインターフェイスを閉じてから再度開き、その後 S3 テーブルへのアクセスを試行します。これでテーブルにアクセスできるようになりました。


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください

公開日: 2019 年 3 月 19 日