我正在使用 Cloudera Hadoop 环境。
这几天我已经熟悉了WebHDFS。我使用它通过 REST API 执行各种 HDFS 操作。
但是,现在我需要保护与 WebHDFS 的通信,即使用 SSL/HTTPS。
这可能吗?如果是,是否有任何明确的步骤来实现这一目标?
PS:目前,我不想使用 Kerberos。
最佳答案
您可以在 hdfs-site.xml 中设置一些属性,以启用与名称节点和数据节点的 HTTPS/SSL 连接:
- http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
- 查看
dfs.https.enable
属性 - 查看 ssl-server.xml(或客户端)的
dfs.https.server.keystore.resource
和dfs.client.https.keystore.resource
属性定义 key 和信任路径/密码等的文件(conf 文件夹中有示例 ssl-server 和 ssl-client 文件)
- 查看
您需要在此文件中设置一些属性(并将其 + 您的服务器证书/信任库分发到 NN 和集群中的每个 DN,然后重新启动 HDFS)。
还有一些更详细的解释,以下是 Google 提供的一些链接:
请注意,Kerberos 不会为您提供“安全”通信(如果您所说的安全是指加密),Kerberos 只是提供一种身份验证机制。
关于java - 是否可以通过 HTTPS 与 WebHDFS 进行加密安全通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20373573/