Hue (Hadoop User Experience) を使用して、Amazon EMR クラスターの Amazon Simple Storage Service (Amazon S3) バケットにアクセスしています。次のいずれかのエラーメッセージが表示されています。
検索条件に一致するファイルはありません。
パス「s3a://awsdoc-example-bucket.hue1」へのアクセスに失敗しました。ホスト名「awsdoc-example-bucket.hue1.s3.amazonaws.com」は「.s3.amazonaws.com」または「s3.amazonaws.com」のいずれかに一致しません
バケットの取得に失敗しました。ホスト名「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 を s3.amazonaws.com ではなく Amazon S3 エンドポイントとして扱います。
解決方法
このエラーを解決するには、エンドポイント形式を 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