HTTPFS: 基於HTTP操做hadoop hdfs文件系統

1、HTTPFS簡介

    1:httpfs是cloudera公司提供的一個hadoop hdfs的一個http接口,經過WebHDFS REST API 能夠對hdfs進行讀寫等訪問 html

 
    2:與WebHDFS的區別是不須要客戶端能夠訪問hadoop集羣的每個節點,經過httpfs能夠訪問放置在防火牆後面的hadoop集羣
 
    3:httpfs是一個Web應用,部署在內嵌的tomcat中
 
    用這種方式在數據共享給其餘系統時,網絡安全上更容易實現,使用請參考:
 

2、啓動服務(針對使用cloudera manager安裝了CDH4或CDH5) 

    在cm控制檯,打開hdfs實例頁面,添加httpfs服務,而後啓動便可。 git

3、安裝可參考(手工安裝)

    http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Installation-Guide/cdh4ig_topic_25_8.html     github

   http://blog.csdn.net/ganglia/article/details/25902873 web

4、curl操做命令示例(須要將host替換爲實際部署httpfs的服務器IP)

    curl -c ~/.httpsauth "http://host:14000/webhdfs/v1?op=gethomedirectory&user.name=hdfs"

    curl -b ~/.httpsauth "http://host:14000/webhdfs/v1?op=gethomedirectory"

    curl -b ~/.httpsauth "http://host:14000/webhdfs/v1/test/data1.txt?op=OPEN"

    curl -b ~/.httpsauth -X DELETE "http://host:14000/webhdfs/v1/test/data1.txt?op=DELETE"

    建立和追加都是分爲兩步,測試都沒有成功(注意,必定要追加--header參數,不然建立會失敗)
    curl -b ~/.httpsauth -i -X PUT "http://172.168.63.221:14000/webhdfs/v1/test2?op=CREATE&buffersize=1000"
    curl -b ~/.httpsauth -i -X PUT -T data2.txt --header "Content-Type: application/octet-stream" "http://172.168.63.221:14000/webhdfs/v1/test2/data.txt?op=CREATE&user.name=hdfs&buffersize=1000&data=true" apache

5、基於JAVA操做httpfs的開源代碼

    開源項目地址,有什麼問題能夠直接反饋給我 tomcat

    https://github.com/gitriver/httpfs-client 安全

   說明 服務器

   1  包com.catt.httpfs.client.httpclient是採用commons-httpclient.jar,
    基於http請求實現的,沒有使用到hadoop相關的jar
    2  包org.apache.hadoop.fs.http.client根據httpfs項目的源代碼,
    根據須要修改了一下,使用了hadoop相關的jar 網絡

相關文章
相關標籤/搜索