栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在没有SPnego的情况下访问由kerberos保护的WebHDFS

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在没有SPnego的情况下访问由kerberos保护的WebHDFS

使用Java代码和Hadoop Java
API打开一个以Kerberized进行的会话,获取该会话的委派令牌,然后将该Token传递给另一个应用程序(如@tellisnz所建议的那样)有一个缺点:Java
API需要 很多资源依赖关系 (即很多JAR,以及Hadoop本机库)。尤其是如果您在Windows上运行应用程序,这将是一个艰难的过程。

另一个选择是使用Java代码和WebHDFS来运行单个SPNEGOed查询并 获取 委托令牌,然后将其传递给另一个应用程序-该选项
在服务器上完全不需要Hadoop库 。准系统版本会像

URL urlGetToken = new URL("http://<host>:<port>/webhdfs/v1/?op=GETDELEGATIONTOKEN") ;HttpURLConnection cnxGetToken =(HttpURLConnection) urlGetToken.openConnection() ;BufferedReader httpMessage = new BufferedReader( new InputStreamReader(cnxGetToken.getInputStream()), 1024) ;Pattern regexHasToken =Pattern.compile("urlString[": ]+(.[^" ]+)") ;String httpMessageLine ;while ( (httpMessageLine =httpMessage.readLine()) != null){ Matcher regexToken =regexHasToken.matcher(httpMessageLine) ;  if (regexToken.find())  { System.out.println("Use that template: http://<Host>:<Port>/webhdfs/v1%AbsPath%?delegation=" +regexToken.group(1) +"&op=...") ; }}httpMessage.close() ;

这就是我用来从Windows
Powershell脚本(甚至是Excel宏)访问HDFS的方式。注意:在Windows中,必须通过将指向适当的keytab文件的JAAS配置传递给JVM,来动态创建Kerberos
TGT。但是无论如何,该警告也适用于Java API。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463839.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号