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 はすべての接続が安全であると想定します。ただし、デフォルトのプロトコルは HTTP ではなく、HTTPS です。こうしたエラーを解決するには:
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
関連情報
データ暗号化用のキーと証明書の作成
Hue