Amazon EMR で Hue を使用しているときに発生する「Cannot access: s3a://」(アクセスできません: s3a://) および「certificate verify failed」(証明書の検証に失敗しました) というエラーを解決するにはどうすればよいですか?
最終更新日: 2020 年 9 月 14 日
私の Amazon EMR クラスターは、転送中のデータの暗号化が有効になっているセキュリティ設定を使用しています。Hue (Hadoop ユーザーエクスペリエンス) を使用してクラスター上の Amazon シンプルストレージサービス (Amazon S3) バケットにアクセスしようとすると、次のいずれかのエラーが表示されます。
- 「Cannot access: s3a://.」
- 「Cannot access: s3a://.The HDFS REST service is not available.」
- 「bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')])」
解決方法
「Cannot access: s3a://.」と「Cannot access: s3a://.The HDFS REST service is not available.」
暗号化されたクラスターを起動すると、Amazon EMR はすべての接続が安全であると想定します。ただし、デフォルトのプロトコルは HTTPS ではなく HTTP です。これらのエラーを解決するには、次の手順を実行します。
1. /etc/hue/conf/hue.ini ファイルを開きます。
2. webhdfs_url プロパティで、プロトコルが https で、ポートが 50470であることを確認してください。次に例を示します。
webhdfs_url = https://master-node-private-ip-address:50470/webhdfs/v1
3. 次のコマンドを実行して Hue サービスを再起動します。
$ sudo stop hue
$ sudo start hue
「bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')])」
自己署名証明書を使用している場合は、「bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')]).」 というエラーが発生することもあります。 これは、Hue が認証局 (CA) で証明書を検証しようとしたときに発生します。自己署名証明書を使用する場合は、これは不可能です。このエラーを解決するには、次の手順を実行します。
1. /etc/hue/conf/hue.ini ファイルを開きます。
2. ssl_cert_ca_verify プロパティを true から falseに変更します。
ssl_cert_ca_verify=false
3. 次のコマンドを実行して Hue サービスを再起動します。
$ sudo stop hue
$ sudo start hue