利用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 【[email protected]】
Please enter the password for [email protected]:
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
时间: 2024-10-23 03:41:17

利用CURL命令调用WebHDFS REST API与Kerberos机制的相关文章

Android:利用Java反射调用@hide的API

置使用3G数据功能: 从源代码看到隐藏的API(ConnectivityManager.java): 查看文本打印? /** * Sets the persisted value for enabling/disabling Mobile data. * * @param enabled Whether the mobile data connection should be *            used or not. * @hide */ public void setMobileDa

PHP语言开发微信公众平台(订阅号)之curl命令

在开发过程中,经常会遇到要求用curl命令调用接口的情况 那么,什么是curl,简单来说curl是一个利用url语法规定来传输文件和哦数据的工具,支持很多协议,如 http.ftp.telent 等,所幸php 也支持 curl curl虽然很复杂,但是很可以总结为四步. curl操作四步走: 1.初始化 $ch = curl_init()2.设置参数 curl_setopt($ch,参数)3.执行 curl_exec($ch)4.关闭 curl_close($ch)输出错误信息: curl_e

cmd - 使用curl命令的注意点

前言 最近在cmd中使用curl命令来测试rest api,发现有不少问题,这里记录一下. 在cmd中使用curl命令的注意事项 json不能由单引号包括起来 json数据里的双引号要用反斜杠\转义 json数据里不能带有空格 如果想要在json数据里使用空格则必须用双引号将整个json数据包括起来 Content-type要由双引号包括起来 比如下边的例子就是正确的格式: curl -X POST localhost:8080/employees -H "Content-type:applic

openstack中使用curl命令获取token并访问底层的API

在oepnstack中,访问所提供的服务(如创建虚拟机等)首先需要获取认证的token,也就是一个凭证,获取的方式是通过向OpenStack Identity模块发送一个带负载的认证请求,通常负载中携带的信息是用户名和密码.当访问底层提供的服务的时候,需要将token封装在X-Auth-Token头部中,如果需要访问openstack提供的多个服务,需要为每个服务提供一个token,值得注意的是,每个token都有一个期满时间,过了这个时间,token就会自动失效.下面将结合实例详细阐述使用li

利用alias命令别名对常用运维命令的调用 (给命令起别名)

利用alias命令别名对常用运维命令的调用 在~目录下,修改.bashrc,对进入ezsonar.对应log目录的命令进行别名 [[email protected] ~]# vi .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias l='ls -al' alias ez='cd /usr/local/ezsonar/' al

CURL命令行使用

http://blog.csdn.net/bjbs_270/article/details/14005271 1. CURL 发送磁盘上面的JSON文件 [html] view plain copy 如 curl -X POST  -H 'content-type: application/json'  -d @myjsonfile.txt http://some.url/param 2. CURL在命令行直接发送JSON结构数据 [html] view plain copy curl -i -

如何利用cURL和python对服务端和web端进行接口测试

工具描述 cURL是利用URL语法在命令行方式下工作的文件传输工具,是开源爱好者编写维护的免费工具,支持包括Windows.Linux.Mac等数十个操作系统,最新版本为7.27.0,但是我推荐大家使用7.26.0,从这里可以下载7.26.0版本. 以下是官方介绍的翻译: cURL是一个使用URL语法来传输数据的命令行工具,支持DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP,RTSP,SCP,S

curl命令用法

例: char buf[512] = { 0 };sprintf(buf,"curl %s/NewWanbu/App/Api/index.php/Report/sEmail/aid/%d/reportType/final/",g_profile.m_confData.m_url.c_str(),activeID); //curl http://wanbu.lvzy/NewWanbu/App/Api/index.php/Report/sEmail/aid/3429/reportType/

curl命令使用大全

本文是 http://www.51osos.com/a/Linux_CentOS_RedHat/Linuxjichu/2010/1025/curl.html 以及 http://hi.baidu.com/yschen0925/blog/item/d62851072f10eaca7b894790.html 的汇总. 今天51开源给大家讲细讲解curl这个命令. 可以看作命令行浏览器 1.开启gzip请求 curl -I http://www.sina.com.cn/ -H Accept-Encod