如何从安全节点使用webhdfs读取hdfs文件?

时间:2015-07-21 04:59:03

标签: hadoop kerberos webhdfs

我想进行webhdfs调用,以便使用Java从安全节点中检索文件。

这是我正在做的事情 1.使用keytab登录(工作正常)。我得到了一张kerberos票 2.现在当我尝试调用下面的代码时,它会做什么,它试图通过进行https调用来获取委托语,然后它失败了401 https://mynode:50070/webhdfs/v1/?op=GETDELEGATIONTOKEN&user.name=myuser

以下是打开hdfs文件的代码 FileSystem webFS = FileSystem.get(新URI(" swebhdfs://" +域+" myfile"),conf);
BufferedReader br = new BufferedReader(new InputStreamReader(webFS.open(new Path(" swebhdfs://" + domain +" myfile"))));

我的问题是,因为我有kerberos票,我怎么能把那个传递给UserGropupInformation对象?

谢谢,

1 个答案:

答案 0 :(得分:0)

我假设您有权访问keytab个文件。 在连接到hadoop集群之前添加以下代码段 loginUserFromKeytab方法将使用keytab为指定用户加载和验证。 ('以简单的方式登录'

String user = "USER@REALM"
String keyPath = "somekeytab.keytab"
UserGroupInformation.loginUserFromKeytab(user, keyPath)

UserGroupInformation位于hadoop-common jar。

参考:

Authenticating Kerberos Principals in Java Code