如何从命令行对Hadoop进行身份验证?删除`ls:SIMPLE身份验证未启用'错误

时间:2016-09-14 21:13:13

标签: security hadoop authentication kerberos

我正在Hadoop集群上设置Kerberos身份验证。从群集外的计算机上,每当我hadoop fs -ls时,我都会收到以下消息:ls: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS],这很好,因为这就是我想要的。但现在我的问题是,我如何成功地执行该命令?我知道如果我不进行身份验证,我就无法继续,但如何从命令行进行身份验证?

2 个答案:

答案 0 :(得分:2)

尝试以下步骤

Server

kadmin.local
addprinc user@realm.com

Client

kinit user@realm.com

klist查看主体

答案 1 :(得分:0)

需要在Hadoop服务器和尝试访问它的客户端中修改内容。

服务器

在服务器中,您需要向领域添加新用户,为此您可以使用以下命令:

kadmin.local shell中,键入以下命令:addprinc user@realm.com。出现提示时,键入两次密码。

<强>客户端

确保已安装kinit并指向群集的Kerberos服务器,然后运行以下命令从Kerberos服务器获取令牌:kinit user@realm.com。要验证您是否已成功获取它,请键入klist

最后,但并非最不重要:确保您的客户端core-site.xml文件与相应的服务器端配置一致。特别是,如果您的服务器中hadoop.security.authentication不是simple,请确保密钥simple的值不是Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices(); // If there are paired devices if (pairedDevices.size() > 0) { // Loop through paired devices for (BluetoothDevice device : pairedDevices) { // Add the name and address to an array adapter to show in a ListView mArrayAdapter.add(device.getName() + "\n" + device.getAddress()); } }