Hadoop编程调用HDFS文档格式.docx
- 文档编号:15916283
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:12
- 大小:17.70KB
Hadoop编程调用HDFS文档格式.docx
《Hadoop编程调用HDFS文档格式.docx》由会员分享,可在线阅读,更多相关《Hadoop编程调用HDFS文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
∙Java1.6.0_29
∙Hadoop1.1.2
如何搭建Hadoop集群环境?
请参考文章:
Hadoop历史版本安装
开发环境
▪Win764bit
▪Java1.6.0_45
▪Maven3
▪Hadoop1.1.2
▪EclipseJunoServiceRelease2
如何用Maven搭建Win7的Hadoop开发环境?
用Maven构建Hadoop项目
注:
hadoop-core-1.1.2.jar,已重新编译,已解决了Win远程调用Hadoop的问题,请参考文章:
Hadooop命令行:
javaFsShell
~hadoopfs
Usage:
javaFsShell
[-ls]
[-lsr]
[-du]
[-dus]
[-count[-q]]
[-mv]
[-cp]
[-rm[-skipTrash]]
[-rmr[-skipTrash]]
[-expunge]
[-put...]
[-copyFromLocal...]
[-moveFromLocal...]
[-get[-ignoreCrc][-crc]]
[-getmerge[addnl]]
[-cat]
[-text]
[-copyToLocal[-ignoreCrc][-crc]]
[-moveToLocal[-crc]]
[-mkdir]
[-setrep[-R][-w]]
[-touchz]
[-test-[ezd]]
[-stat[format]]
[-tail[-f]]
[-chmod[-R]PATH...]
[-chown[-R][OWNER][:
[GROUP]]PATH...]
[-chgrp[-R]GROUPPATH...]
[-help[cmd]]
上面列出了30个命令,我只实现了一部分的HDFS的命令!
新建文件:
HdfsDAO.java,用来调用HDFS的API。
publicclassHdfsDAO{
//HDFS访问地址
privatestaticfinalStringHDFS="
hdfs:
//192.168.1.210:
9000/"
;
publicHdfsDAO(Configurationconf){
this(HDFS,conf);
}
publicHdfsDAO(Stringhdfs,Configurationconf){
this.hdfsPath=hdfs;
this.conf=conf;
//hdfs路径
privateStringhdfsPath;
//Hadoop系统配置
privateConfigurationconf;
//启动函数
publicstaticvoidmain(String[]args)throwsIOException{
JobConfconf=config();
HdfsDAOhdfs=newHdfsDAO(conf);
hdfs.mkdirs("
/tmp/new/two"
);
hdfs.ls("
/tmp/new"
}
//加载Hadoop配置文件
publicstaticJobConfconfig(){
JobConfconf=newJobConf(HdfsDAO.class);
conf.setJobName("
HdfsDAO"
conf.addResource("
classpath:
/hadoop/core-site.xml"
/hadoop/hdfs-site.xml"
/hadoop/mapred-site.xml"
returnconf;
//API实现
publicvoidcat(StringremoteFile)throwsIOException{...}
publicvoidmkdirs(Stringfolder)throwsIOException{...}
...
}
说明:
查看目录文件
对应Hadoop命令:
~hadoopfs-ls/
Found3items
drwxr-xr-x-conansupergroup02013-10-0305:
03/home
drwxr-xr-x-Administratorsupergroup02013-10-0313:
49/tmp
drwxr-xr-x-conansupergroup02013-10-0309:
11/user
Java程序:
publicvoidls(Stringfolder)throwsIOException{
Pathpath=newPath(folder);
FileSystemfs=FileSystem.get(URI.create(hdfsPath),conf);
FileStatus[]list=fs.listStatus(path);
System.out.println("
ls:
"
+folder);
=========================================================="
for(FileStatusf:
list){
System.out.printf("
name:
%s,folder:
%s,size:
%d\n"
f.getPath(),f.isDir(),f.getLen());
fs.close();
/"
控制台输出:
/
==========================================================
hdfs:
9000/home,folder:
true,size:
0
9000/tmp,folder:
9000/user,folder:
3.mkdir操作
创建目录,可以创建多级目录
~hadoopfs-mkdir/tmp/new/one
~hadoopfs-ls/tmp/new
Found1items
drwxr-xr-x-conansupergroup02013-10-0315:
35/tmp/new/one
publicvoidmkdirs(Stringfolder)throwsIOException{
if(!
fs.exists(path)){
fs.mkdirs(path);
Create:
/tmp/new/two
/tmp/new
9000/tmp/new/one,folder:
9000/tmp/new/two,folder:
4.rmr操作
删除目录和文件
~hadoopfs-rmr/tmp/new/one
Deletedhdfs:
//master:
9000/tmp/new/one
drwxr-xr-x-Administratorsupergroup02013-10-0315:
38/tmp/new/two
publicvoidrmr(Stringfolder)throwsIOException{
fs.deleteOnExit(path);
Delete:
+fold
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop 编程 调用 HDFS