使用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. LVS+Keepalived搭建MyCAT高可用負載均衡集群

    1.前面我们已经搭建好mysql主主,并且用mycat实现双写功能,主要配置文件: [root@mycat2 conf]# cat schema.xml <?xml version=" ...

  2. Java之戳中痛点 - (5)switch语句break不能忘以及default不同位置的用法

    先看一段代码: public class Test{ public static void main(String[] args){ System.)); } } public static Stri ...

  3. 模拟实现jdk动态代理

    实现步骤 1.生成代理类的源代码 2.将源代码保存到磁盘 3.使用JavaCompiler编译源代码生成.class字节码文件 4.使用JavaCompiler编译源代码生成.class字节码文件 5 ...

  4. input 单选按钮radio 取消选中(转载)

    input单选按钮: 在radio按钮中添加属性tag  0代表未被选中 HTML代码: <input name="rdo1" value="AA" ty ...

  5. 调整文本输入框placeholder的颜色等样式

    input::-webkit-input-placeholder{     color: white !important;}input:-moz-placeholder{    color: whi ...

  6. hdu1527取石子游戏---(威佐夫博弈)

    感谢 http://www.cnblogs.com/yuyixingkong/p/3362476.html 取石子游戏 Time Limit: 2000/1000 MS (Java/Others)   ...

  7. linux基础——文件的压缩解压缩以及vim编辑

       一.将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat  /etc/{passwd,group} > /1.txt  查看:cat /1.txt   二. ...

  8. Linux kernel中断子系统之(五):驱动申请中断API【转】

    转自:http://www.wowotech.net/linux_kenrel/request_threaded_irq.html 一.前言 本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的 ...

  9. 操作MySQL数据库相关代码

    注意事项: 1.导入驱动包,如我导的是mysql-connector-java-5.1.26-bin.jar 2.修改下面代码中的用户名和密码 3.其中URL为"jdbc:mysql://数 ...

  10. js实现双指缩放图片 手机端双指缩放图片

    首先引入js文件,需要jq,pinchzoom.js.pinchzoom.js需要在jq环境下使用,可以 <meta name="viewport" content=&quo ...