gpt4 book ai didi

hadoop - 在 Hadoop 中,如何验证我是否对 DFS 传输进行了数据加密?

转载 作者:行者123 更新时间:2023-12-02 20:21:41 24 4
gpt4 key购买 nike

我们在安全数据中心中没有多个用户的环境中运行 Hadoop 3.2.1。我们更喜欢对节点之间的事件进行加密数据传输。我们已经确定不需要设置 Kerberos,因此我正在努力对 block 数据传输和 Web 服务进行加密。

由于 中的以下设置,我似乎启用了 DFS 加密。 hdfs-site.xml :

<!-- SECURITY -->
<property>
<name>dfs.encrypt.data.transfer</name>
<value>true</value>
</property>
<property>
<name>dfs.block.access.token.enable</name>
<value>true</value>
</property>

我在数据节点上遇到握手错误 dfs.encrypt.data.transfer启用,直到我还设置 dfs.block.access.token.enable .

文件系统操作现在工作得很好,但我仍然看到很多这样的:
2020-02-04 15:25:59,492 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false

我认为 SASL 是一个 Kerberos 功能,我不应该期望看到报告是真的。听起来对吗?

有没有办法验证 DFS 是否在节点之间加密数据? (我可以拿出一个嗅探器......)

最佳答案

回答我自己的问题:我从未发现一条日志消息说“是的,您已启用加密”。但是,我确实运行了一个简单的基准测试,并注意到与加密一致的性能差异:

运行 hadoop distcp 所花费的时间:

  • 无加密:5 分钟
  • 3des:70 分钟
  • rc4:12 分钟
  • 3des + AES,128 位:16 分钟
  • 3des + AES,256 位:18 分钟

  • 这是 hdfs-site.xml 的 Jinja 模板。 ,它为 3des、AES 256 位、IF hadoop_dfs_encrypt=true 配置 dfs.encrypt :
    <!-- SECURITY -->
    <property>
    <name>dfs.encrypt.data.transfer</name>
    <value>{{ hadoop_dfs_encrypt | default(false) }}</value>
    </property>
    <property>
    <name>dfs.block.access.token.enable</name>
    <value>{{ hadoop_dfs_encrypt | default(false) }}</value>
    </property>
    <property>
    <name>dfs.encrypt.data.transfer.cipher.suites</name>
    <value>AES/CTR/NoPadding</value>
    </property>
    <property>
    <name>dfs.encrypt.data.transfer.cipher.key.bitlength</name>
    <value>256</value>
    </property>

    根据我的阅读,除非您设置 ,否则 NN 和 DN 之间的 dfs.encrypt key 交换不 protected 。 hadoop.rpc.protection=privacy .无论如何,这需要 Kerberos,但我仍在研究我的选择。

    关于hadoop - 在 Hadoop 中,如何验证我是否对 DFS 传输进行了数据加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60067203/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com