- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 HDFS API编程;4.1 HDFS API概述;1. C API——libhdfs
libhdfs是Hadoop为C语言提供的一个函数库,为C语言程序提供HDFS文件操作和文件系统管理的访问接口。libhdfs位于$HADOOP_HDFS_HOME/lib/native/libhdfs.so中,该文件是一个预编译文件。libhdfs与Windows系统是兼容的。运行mvn编译器对hadoop-hdfs-project/hadoop-hdfs中的源代码重新编译即可构建Windows版的libhdfs。
libhdfs API是HDFS API的一个子集,其头文件位于$HADOOP_HDFS_HOME/include/hdfs.h,该文件详细地描述了每个API函数的签名。
maven是一个项目构建和管理的工具,其主要Shell命令是mvn,它提供了代码编译、依赖管理、文档管理、项目报告等项目管理功能,它将项目过程规范化、自动化、高效化。使用maven及其插件,可以获得代码检查报告、单元测试覆盖率、实现持续集成等。
;实例见教材P79;2. HFTP
HFTP提供从远程Hadoop HDFS集群读数据的能力,其读操作通过HTTP完成,所读数据来源于各DataNode节点。HFTP是一种只读的文件系统,因此如果你试图用它来写入数据或修改文件系统状态,那么它将抛出异常。
假如你拥有多个不同版本的HDFS集群且需要把一个集群的数据拷贝到另一个集群,则HFTP特别有用。使用HFTP,HDFS不同版本之间的兼容性问题可以得到有效解决。
例如,执行以下的操作:
hadoop distcp -i hftp://srchost:50070/src hdfs://desthost:8020/dest
其中,子命令distcp是Hadoop提供的工具命令,用于在两个HDFS集群之间中拷贝文件。上述操作是将源集群srchost中的src目录复制到目标集群desthost的dest目录中。;Hadoop的REST API有两个:WebHDFS和HttpFS,二者提供几乎相同的功能,使一个集群外的客户机可以不用安装Hadoop和Java环境就可以对集群内的Hadoop进行访问,并且客户端不受程序设计语言的限制。;4. HDFS Java API
HDFS Java API位于org.apache.hadoop.fs包中,这些API能够支持的操作包括:打开文件、读/写文件、删除文件等。;4.1.1 HDFS API简介;4.1.1 HDFS API简介;HDFS Java API为客户端提供了针对文件系统、目录和文件的各种操作功能。在客户端应用程序中,通常按以下步骤来使用HDFS Java API。
1. 实例化Configuration
Configuration类位于org.apache.hadoop.conf包中,它封装了客户端或服务器的配置。每个配置选项是一个键/值对,通常以XML格式保存。
实例化Configuration类的代码如下:
Configuration conf = new Configuration(); ;2. 实例化FileSystem
FileSystem类是客户端访问文件系统的入口,是Hadoop为客户端提供的一个抽象的文件系统,可以是Hadoop的HDFS,也可以Amazon的S3。DistributedFileSystem类是FileSystem的一个具体实现,是HDFS真正的客户端API。
实例化FileSystem并返回默认的文件系统的代码如下:
FileSytem fs = FileSystem.get(conf);;3. 设置目标对象的路径
HDFS API提供Path类来封装HDFS文件路径。Path类位于org.apache.hadoop.fs包中。设置目标对象的路径的代码如下。
Path path = new Path(/test);;4. 执行文件或目录操作
得到FileSystem实例之后,就可以使用该实例提供的方法成员来执行相应的操作,例如打开文件、创建文件、重名文件、删除文件或检测文件是否存在等。
FileSystem的常用成员函数见教材P83.
实例见教材P84;4.2 HDFS Java API客户端编程;1. 创建HDFS目录
通过FileSystem.mkdir()方法可在HDFS中创建目录。该方法支持以下3种重载形式。
boolean mkdirs(Path f),创建一个具有默认访问权限的目录,其中f为子目录的完整路径。
abstract boolean mkdirs(Path f, FsPermission pms),相当于Linux系统的mkdir -p命令,能创建一个具有指
您可能关注的文档
最近下载
- 第2章化学药物工艺路线的设计和选择研究报告.ppt
- 610821017856A03BG100河西联办煤矿隐蔽致灾因素普查报告修编7.19 (2)(1).docx VIP
- InSAR滑坡识别与监测.pptx VIP
- 政治经济学课件-社会主义市场经济体制.ppt VIP
- Unit 6 Useful numbers Part A(课件)人教PEP版(2024)英语三年级上册.pptx VIP
- 美卡素治疗高血压.ppt VIP
- 医院数据沙箱管理控制 .ppt VIP
- 青岛版科学六年级上册期末综合测试卷(含答案).pdf VIP
- 12YD18 太阳能光伏发电系统设计与安装.docx VIP
- 三维细胞培养技术的发展及其在干细胞和肿瘤细胞.PDF VIP
原创力文档


文档评论(0)