使用hdfs的api接口分别实现从本地上传文件到集群和从集群下载文件到本地。

1)上传文件主要是使用FileSystem类的copyFromLocalFile()方法来实现,另外我们上传文件时可以指定以多大的物理块来存储此文件,使用conf.set("dfs.block.size","8388608")设置物理块大小是8M,此方法第二个参数的单位是字节。另外编译此代码除了需要使用hadoop-core-1.2.1.jar,还需要使用

commons-configuration-1.6.jar包。完整代码如下:

/**
* Created with IntelliJ IDEA.
* User: hadoop
* Date: 16-3-13
* Time: 下午6:31
* To change this template use File | Settings | File Templates.
*/ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; import java.io.IOException; public class uploadFile {
public static void main(String[] args) throws IOException {
Configuration conf=new Configuration();//只读取了core.xml文件
//conf.addResource("hdfs-default.xml");
//Long x=conf.get("dfs.block.size") ;
conf.set("dfs.block.size", args[]);//第二个参数的单位是字节,并且是字符串形式
FileSystem fs=FileSystem.get(conf);
Path src=new Path(args[]);//参数是本地文件的绝对路径的字符串形式
Path dst=new Path(args[]);
fs.copyFromLocalFile(src,dst);
System.out.println("upload to:"+conf.get("fs.default.name"));
}
}

例如将本地test目录下的F1k1k文件上传到集群,所使用的命令就是:

hadoop jar uploadFile.jar uploadFile 8388608 /home/hadoop/test/F1k1k /data0313

2)从集群下载文件类似,只需要将copyFromLocalFile()方法改为copyToLocalFile(),只不过代码中src变成了集群路径,dst是本地路径

如下所示:

 /**
* Created with IntelliJ IDEA.
* User: hadoop
* Date: 16-3-13
* Time: 下午6:31
* To change this template use File | Settings | File Templates.
*/ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; import java.io.IOException; public class uploadFile { public static void main(String[] args) throws IOException {
Configuration conf=new Configuration();
//conf.addResource("hdfs-default.xml");
//Long x=conf.get("dfs.block.size") ;
conf.set("dfs.block.size", args[]);
FileSystem fs=FileSystem.get(conf);
Path src=new Path(args[]);//src是集群路径
Path dst=new Path(args[]);//dst是本地路径
fs.copyToLocalFile(src,dst);
System.out.println("upload to:"+conf.get("fs.default.name"));
}
}

上传--下载HDFS文件并指定文件物理块的大小的更多相关文章

  1. SpringMVC 文件上传下载

    目录 文件上传 MultipartFile对象 文件下载 上传下载示例 pom.xml增加 创建uploadForm.jsp 创建uploadForm2.jsp 创建userInfo.jsp spri ...

  2. 文件上传下载(C#,web,asp.net)

    目的:在浏览器页面启动上传下载CS软件,实现文件的批量下载与上传. 技术路线: 开发上传下载客户端CS程序与注册程序,压缩放到服务器端指定位置: 开发服务器端程序用以接收上传请求,压缩放到服务器端: ...

  3. JavaWeb 文件上传下载

    1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...

  4. 远程文件传输命令•RHEL8/CentOS8文件上传下载-用例

    scp协议 scp [options] [本地用户名@IP地址:]file1 [远程用户名 @IP 地址 :] file2 options: -v 用来显示进度,可以用来查看连接,认证,或是配置错误. ...

  5. 转载:JavaWeb 文件上传下载

    转自:https://www.cnblogs.com/aaron911/p/7797877.html 1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端 ...

  6. 使用Fileupload完成文件的上传下载

    目录 使用Fileupload完成文件的上传下载 为什么需要进行文件上传下载? 引入jar包 文件上传 注意事项 编写一个简单的文件上传jsp页面 编写Servlet Student类用于封装数据,后 ...

  7. JAVA Web 之 struts2文件上传下载演示(二)(转)

    JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...

  8. Hadoop生态圈-Azkaban实现文件上传到hdfs并执行MR数据清洗

    Hadoop生态圈-Azkaban实现文件上传到hdfs并执行MR数据清洗 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果你没有Hadoop集群的话也没有关系,我这里给出当时我 ...

  9. SpringMVC(三) RESTful架构和文件上传下载

    RESTful架构 REST全名为:Representational State Transfer.资源表现层状态转化.是目前最流行的一种互联网软件架构. 它结构清晰.符合标准.易于理解.扩展方便,所 ...

随机推荐

  1. centos的网络设置问题

    遭遇了多次centos的网络连接问题,现将正确配置总结下: 这里是使用vmware虚拟平台,因为涉及到中间这层,所以需要设置下: 保证centos也能连上网,首先物理机连上网,接着物理机的vmware ...

  2. ZooKeeper Watcher注意事项

    zookeeper watch的定义如下:watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher. 需要注意三点: 1.一次性触发器 c ...

  3. 对比append插入数据产生的redo量

    --版本信息 SELECT * FROM v$version; Oracle - Prod PL - Production CORE Production TNS - Production NLSRT ...

  4. Linux命令的返回值

    转摘自:http://hi.baidu.com/suchshow/item/230255b6caab369218469732 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令, ...

  5. Spring学习--HelloWorld

    Spring: Spring 是一个开源框架. Spring 是为简化企业级应用开发而生,使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. Spring 是一 ...

  6. ecma 2018, javascript spread syntax behaves like Object.assign

    as the subject. It is only supported in Chrome version 60+, so, first check the version, or just use ...

  7. Invalidate()(转)

    原文转自 http://m.blog.csdn.net/blog/piaopiaopiaopiaopiao/41521211 使用Invalidate(TRUE)函数时,它会向消息队列中添加了WM_E ...

  8. linux 系统函数之 (dirname, basename)【转】

    转自:http://blog.csdn.net/peter_cloud/article/details/9308333 版权声明:本文为博主原创文章,未经博主允许不得转载. 除非你的原件考虑跨平台. ...

  9. linux内核分析笔记----中断和中断处理程序【转】

    转自:http://www.cnblogs.com/hanyan225/archive/2011/07/17/2108609.html 中断还是中断,我讲了很多次的中断了,今天还是要讲中断,为啥呢?因 ...

  10. Asp.Net Core 项目实战参考

    Asp.Net Core 项目实战链接 http://www.cnblogs.com/fonour/p/5904530.html