利用CURL命令調用WebHDFS REST API與Kerberos機制
來源:程序員人生 發布時間:2014-10-16 08:23:36 閱讀次數:7564次
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
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈