如何解决在 Amazon EMR 上使用 Hue 时出现的“无法访问:s3a://”和“证书验证失败”错误?
上次更新日期:2022 年 9 月 29 日
我的 Amazon EMR 集群使用启用了在途数据加密的安全配置。当我尝试使用 Hue(Hadoop 用户体验)访问集群上的 Amazon Simple Storage Service (Amazon S3) 存储桶时,出现以下错误之一:
- “无法访问:s3a://。”
- “Cannot access: s3a://.The HDFS REST service is not available.”
- “bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')])”
解决方法
“无法访问:s3a://。”和“无法访问:s3a://。HDFS REST 服务不可用。”
当您启动加密集群时,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