配置Hadoop数据传输加密
设置Hadoop组件安全通道加密
安全加密通道是HDFS中RPC通信的一种加密协议,当用户调用RPC时,用户的login name会通过RPC头部传递给RPC,之后RPC使用Simple Authentication and Security Layer(SASL)确定一个权限协议(支持Kerberos和DIGEST-MD5两种),完成RPC授权。
默认情况下,大数据集群内组件间的通信是不加密的,为防止数据在公网或非可信网络中被截获,集群管理员可以调整Hadoop组件相关配置,使用加密协议对数据传输通道加密。
在HDFS组件的配置界面中设置相关参数的值,设置后全局生效,即Hadoop中各模块的RPC通道是否加密全部生效。
Hadoop中RPC通道包括:
- 客户端访问HDFS的RPC通道。
- HDFS中各模块间的RPC通道,如DataNode与NameNode间的RPC通道。
- 客户端访问Yarn的RPC通道。
- NodeManager和ResourceManager间的RPC通道。
- Spark访问Yarn、Spark访问HDFS的RPC通道。
- Mapreduce访问Yarn、Mapreduce访问HDFS的RPC通道。
- HBase访问HDFS的RPC通道。
在集群Manager管理界面中,选择“集群 > 服务 > 服务名 > 配置”,展开“全部配置”页签,在搜索框中输入参数名称,修改配置参数后需要重启对应服务以使配置生效。
服务名称 |
配置参数 |
说明 |
缺省值 |
---|---|---|---|
HDFS |
hadoop.rpc.protection |
设置Hadoop中各模块的RPC通道是否加密。
本参数设置后全局生效,即Hadoop中各模块的RPC通道的加密属性全部生效。
|
|
HDFS |
dfs.encrypt.data.transfer |
设置客户端访问HDFS的通道和HDFS数据传输通道是否加密,包括DataNode间的数据传输通道、客户端访问DataNode的DT(Data Transfer)通道。 仅当“hadoop.rpc.protection”设置为“privacy”时使用,业务数据传输量较大时,默认启用加密对性能影响严重,使用时请注意。 如果互信集群的一端集群配置了数据传输加密,则对端集群也需配置同样的数据传输加密。
|
false |
HDFS |
dfs.encrypt.data.transfer.algorithm |
设置客户端访问HDFS的通道和HDFS数据传输通道的加密算法。只有在“dfs.encrypt.data.transfer”配置项设置为“true”,此参数才会生效。
|
3des |
HDFS |
dfs.encrypt.data.transfer.cipher.suites |
指定数据加密的密码套件。 可以设置为空或“AES/CTR/NoPadding”,如果不指定此参数,则使用“dfs.encrypt.data.transfer.algorithm”参数指定的加密算法进行数据加密。 |
AES/CTR/NoPadding |
HBase |
hbase.rpc.protection |
设置HBase通道是否加密,包含HBase客户端访问HBase服务端的RPC(remote procedure call)通道,HMaster和RegionServer间的RPC通道。
privacy方式会对传输内容进行加密,包括用户Token等敏感信息,以确保传输信息的安全,但是该方式对性能影响很大,对比另外两种方式,会带来约60%的读写性能下降。 请根据企业安全要求修改配置,且客户端与服务端中该配置项需使用相同设置。 |
|
Web最大并发连接数限制
为了保护Web服务器的可靠性,当访问的用户连接数达到一定数量之后,对新增用户的连接进行限制。防止大量同时登录和访问,导致服务不可用,同时避免DDOS攻击。
在集群Manager管理界面中,选择“集群 > 服务 > 服务名 > 配置”,展开“全部配置”页签,在搜索框中输入参数名称,修改配置参数后需要重启对应服务以使配置生效。
服务名称 |
配置参数 |
说明 |
缺省值 |
---|---|---|---|
HDFS/Yarn |
hadoop.http.server.MaxRequests |
设置各组件Web的最大并发连接数限制。 |
2000 |
Spark/Spark2x |
spark.connection.maxRequest |
JobHistory允许的最大请求连接数。 |
5000 |
相关文档
安全Hadoop RPC相关信息请参考: