首页 > 代码库 > 利用CURL命令调用WebHDFS REST API与Kerberos机制
利用CURL命令调用WebHDFS REST API与Kerberos机制
1. CURL安装
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。CURL官方网站:http://curl.haxx.se/
1.1 Linux安装
这个网上资料比较多,只要搜索“curl 安装 linux”就应该有不少介绍。
1.2 Windows安装
这篇博客介绍了windows下的安装:http://blog.csdn.net/ichliebephone/article/details/6602537
但是它比较简单,有可能会出问题。比如需要先Install Visual C++ 2010 Redistributable Package。
下面这个链接给的应该比较全:http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/13_2/storageservice/restrict_rw_accs_cntainers_REST_API/files/installing_curl_command_line_tool_on_windows.html
不过比较不幸地是,我装完之后,始终无法支持参数 --negotiate
最后我是从http://www.confusedbycode.com/curl/直接安装后才好了的。
2. WebHDFS REST API介绍
Hadoop官方文档中有比较详细的WebHDFS REST API介绍:http://hadoop.apache.org/docs/r1.0.4/webhdfs.html#OPEN
一些常用操作:
打开读取文件:
curl -i -L "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=OPEN [&offset=<LONG>][&length=<LONG>][&buffersize=<INT>]"
列出目录:
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS"
3. HDFS安全Kerberos配置与访问
对于没有安全机制的hadoop,我们只需要直接运行上面的curl命令就可以了。但是如果需要配置安全机制如kerberos,则不仅涉及到hadoop服务器,还有客户端。
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.3.0/CDH4-Security-Guide/cdh4sg_topic_7_2.html这个链接里面有比较好的配置hadoop来启动HttpFS安全机制,以及在客户端的访问方式。
我们需要通过:“curl -V”命令来查看curl的版本以及是否支持HTTP SPNEGO。对于不支持SPNEGO可能就无法来访问配置了kerberos的webhdfs了。
下一步则是登陆kdc获取ticket,然后curl来调用。
curl -V kinit 【ztan@domain】 Please enter the password for ztan@domain: curl --negotiate -u : -b ~/cookiejar.txt -c ~/cookiejar.txt http://localhost:14000/webhdfs/v1/?op=liststatusWindows下目前我不知道是否有cookiejar.txt类似的文件在哪或怎么生成。但是我试过下面命令是可以成功的。
curl --negotiate -u : http://localhost:14000/webhdfs/v1/?op=liststatus
利用CURL命令调用WebHDFS REST API与Kerberos机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。