- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pycurl 实现 hadoop 的客户端功能
目前在测试一个 hadoop 的功能,需要频繁的和 hadoop 打交道。刚开始采用的 python 的
subprocess 模块来调用底层的 hadoop 提供的命令行工具实现的。一,hadoop 提供的命令行格式说明:
hadoop fs [cmd] 具体的命令有:
hadoop fs [-fs local | file system URI] [-conf configuration file] [-D property=value] [-ls path] [-lsr path] [-du path]
[-dus path] [-mv src dst] [-cp src dst] [-rm [-skipTrash] src]
[-rmr [-skipTrash] src] [-put localsrc ... dst] [-copyFromLocal localsrc ... dst] [-moveFromLocal localsrc ... dst] [-get [-ignoreCrc] [-crc] src localdst
[-getmerge src localdst [addnl]] [-cat src]
[-copyToLocal [-ignoreCrc] [-crc] src localdst] [-moveToLocal src localdst] [-mkdir path] [-report] [-setrep [-R] [-w] rep path/file]
[-touchz path] [-test -[ezd] path] [-stat [format] path] [-tail [-f] path] [-text path]
[-chmod [-R] MODE[,MODE]... | OCTALMODE PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...] [-chgrp [-R] GROUP PATH...]
[-count[-q] path]
[-help [cmd]]
从上面可以看出命令提供的功能还是挺强大的。包括了文件和对目录的各种操作。举个例子:
要列出 hadoop 的根目录下面的文件,具体命令如下:
#hadoop fs -ls hdfs://12:50081/
drwx---r-x - test test 0 2013-03-08 11:20 /static
drwx---r-x - test test 0 2013-02-19 15:40 /system
drwxrwxrwx - test test 0 2013-01-22 18:42 /video
其他的命令功能就不一一介绍了,相信看帮组文档自己也可以看懂。
这样会有一个问题,每执行一个命令都会新生成一个 jvm,对运行命令的机器造成很大的负担,在命令多的情况下,查看 top 可以看到 java 的进程会跑到 99%,严重影响到的使用。于是有了下面的实现方法。
二,hadoop 提供的 web 方式
在网上查看官方的客户端 API,发现 hadoop 提供一个 web REST API,既采用curl 的方式可以轻松实现。
上面对使用方式进行充分的说明。
curl 的方式可以进行对 hadoop 中的文件和目录进行一些基本的操作。目前官网上提供的有
1,创建并写入文件
2,追加文件
3,打开并读入文件
4,创建目录
5,重命名文件或者目录
6,删除文件或者目录
7,列出文件或者目录状态
8,列出目录列表
下面提供一些具体的使用例子:
a,列出目录的状态
#curl -i 12:50071/webhdfs/v1/?op=GETFILESTATUS HTTP/1.1 200 OK
Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
{FileStatus:{accessTime:0,blockSize:0,group:TEST,length:0,modificationTime:136 2812718704,owner:TEST,pathSuffix:,permission:705,replication:0,type:DIREC TORY}}
b,重命名目录
#curl -i -X PUT 12:50071/webhdfs/v1/test?op=RENAMEdestination=/test1
HTTP/1.1 200 OK
Content-Type: application/json Transfer-Encoding: ch
您可能关注的文档
最近下载
- 预制板桥梁吊装方案(完整版).docx
- 工程质量管理体系与保证措施.doc VIP
- 室外承插式铸铁给水管道锚固工作量的结算问题.pdf VIP
- 2025至2030中国稀土元素行业产业运行态势及投资规划深度研究报告.docx
- 统编版2025-2026学年上学期六年级语文上册第二单元基础达标卷(有答案).pdf VIP
- 学堂在线 新闻摄影 期末考试答案.docx VIP
- 某某游客中心建设项目初步设计(替代可研报告).doc VIP
- 学堂在线 研究生的压力应对与健康心理 期末考试答案.docx VIP
- 学堂在线 研究生的压力应对与健康心理 章节测试答案.docx VIP
- GBT50344-2019建筑结构检测技术标准.docx VIP
文档评论(0)