利用CURL命令调用WebHDFS REST API与Kerberos机制
来源:程序员人生 发布时间:2014-10-16 08:23:36 阅读次数:7193次
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=liststatus
Windows下目前我不知道是否有cookiejar.txt类似的文件在哪或怎么生成。但是我试过下面命令是可以成功的。
curl --negotiate -u : http://localhost:14000/webhdfs/v1/?op=liststatus
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠