hdfs restful API:httpfs与webhdfs的简单使用
HttpFS和WebHDFS 通過http協(xié)議操作hdfs有兩個組件,httpfs和webhdfs,我一開始還以為這兩個是同一個東西,其實不是。webhdfs是namenode、datanode自帶的,httpfs是完全獨立的一個組件。 webhdfs上傳文件等操作需要通過某個datanode進行,而不是直接通過namen
HttpFS和WebHDFS
通過http協(xié)議操作hdfs有兩個組件,httpfs和webhdfs,我一開始還以為這兩個是同一個東西,其實不是。webhdfs是namenode、datanode自帶的,httpfs是完全獨立的一個組件。
webhdfs上傳文件等操作需要通過某個datanode進行,而不是直接通過namenode上傳,客戶端有可能訪問多個機器。而httpfs,所有的操作都通過httpfs進行。
webhdfs和httpfs的使用方法基本是一樣的,只有很小很小的差別。
HttpFS一些常用的操作
查看home目錄
curl “http://osg11-vm06:8014/webhdfs/v1?op=GETHOMEDIRECTORY&user.name=kpi”
創(chuàng)建目錄
curl -i -X PUT “http://osg11-vm06:8014/webhdfs/v1/tmp/chenyk?op=MKDIRS&user.name=kpi”
curl -i -X PUT “http://osg11-vm06:8014/webhdfs/v1/tmp/chenyk/a/b/c?op=MKDIRS&user.name=kpi”
刪除目錄,recursive參數(shù)刪除非空目錄
curl -i -X DELETE “http://osg11-vm06:8014/webhdfs/v1/tmp/chenyk/a?op=DELETE&recursive=true&user.name=kpi”
創(chuàng)建文件(httpfs執(zhí)行這一步?jīng)]意義,上傳也是通過httpfs上傳)
curl -i -X PUT “http://osg11-vm06:8014/webhdfs/v1/tmp/chenyk/test?op=CREATE&user.name=kpi”
創(chuàng)建文件和上傳
這里需要加入header,否則提示出錯,可能是個bug https://issues.cloudera.org/browse/HUE-679
curl -i -X PUT -T /tmp/test.txt “http://osg11-vm06:8014/webhdfs/v1/tmp/chenyk/test?op=CREATE&data=true&user.name=kpi” -H “Content-Type:application/octet-stream”
追加文件
curl -i -X POST -T /tmp/test.txt “http://osg11-vm06:8014/webhdfs/v1/tmp/chenyk/test?op=APPEND&data=true&user.name=kpi” -H “Content-Type:application/octet-stream”
打開文件并讀取
curl -i -L “http://osg11-vm06:8014/webhdfs/v1/tmp/chenyk/test?op=OPEN&user.name=kpi”
參考
http://hadoop.apache.org/docs/r1.0.4/webhdfs.html
總結
以上是生活随笔為你收集整理的hdfs restful API:httpfs与webhdfs的简单使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置HDFS HttpFS和WebHDF
- 下一篇: 解决WSL2中Vmmem内存占用过大问题