gpt4 book ai didi

security - HDFS 数据节点不是以 kerberos 开头

转载 作者:可可西里 更新时间:2023-11-01 14:45:40 25 4
gpt4 key购买 nike

在 Windows 8 中使用 kerberos 配置 HDFS。

Namenode成功登录并启动。 Datanode未启动但登录成功。

异常

14/12/10 17:51:55 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/12/10 17:52:00 INFO security.UserGroupInformation: Login successful for user kumar@KUMAR.COM using keytab file C:\kumar.keytab
14/12/10 17:52:00 INFO impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
14/12/10 17:52:00 INFO impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
14/12/10 17:52:00 INFO impl.MetricsSystemImpl: DataNode metrics system started
14/12/10 17:52:05 INFO datanode.DataNode: Configured hostname is hostname.WORKGROUP
14/12/10 17:52:05 FATAL datanode.DataNode: Exception in secureMainjava.lang.RuntimeException: Cannot start secure cluster without privileged resources. at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:737)

查看 link特别是以下内容。我需要设置 JSVC_HOME。如何设置?我在哪里可以获得 JSVC 包。我需要解决方案来解决这个问题。

安全数据节点

由于DataNode的数据传输协议(protocol)没有使用Hadoop的RPC框架,DataNode必须使用dfs.datanode.address和dfs.datanode.http.address指定的特权端口进行 self 认证。此身份验证基于攻击者无法获得根权限的假设。

当您以root身份执行hdfs datanode命令时,服务器进程首先绑定(bind)特权端口,然后放弃特权并以HADOOP_SECURE_DN_USER指定的用户帐户运行。此启动过程使用安装到 JSVC_HOME 的 jsvc。您必须在启动时将 HADOOP_SECURE_DN_USER 和 JSVC_HOME 指定为环境变量(在 hadoop-env.sh 中)。

最佳答案

似乎 JSVC 包不适用于 Windows。花了很长时间后,我找到了解决这个问题的方法。我们可以使用 SASL 而不是 JSVC。

Hadoop-2.6.0 支持使用 SASL 验证数据传输协议(protocol)。请参阅文档:Secure Datanode .

引用该链接:

As of version 2.6.0, SASL can be used to authenticate the data transfer protocol. In this configuration, it is no longer required for secured clusters to start the DataNode as root using jsvc and bind to privileged ports. To enable SASL on data transfer protocol, set dfs.data.transfer.protection in hdfs-site.xml, set a non-privileged port for dfs.datanode.address, set dfs.http.policy to HTTPS_ONLY and make sure the HADOOP_SECURE_DN_USER environment variable is not defined. Note that it is not possible to use SASL on data transfer protocol if dfs.datanode.address is set to a privileged port. This is required for backwards-compatibility reasons.

关于security - HDFS 数据节点不是以 kerberos 开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27401033/

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