紧接着《Hadoop入门学习笔记---part3》中的继续了解如何用java在程序中操作HDFS。

众所周知,对文件的操作无非是创建,查看,下载,删除。下面我们就开始应用java程序进行操作,前提是按照《Hadoop入门学习笔记---part2》中的已经在虚拟机中搭建好了Hadoop伪分布环境;并且确定现在linux操作系统中hadoop的几个进程已经完全启动了。

好了,废话不多说!实际的例子走起。

在myeclipse中新建一个java工程:

在项目工程中新建一个lib包用于存放项目需要的相关jar包,关于build path我就不多说了。相关jar包如下:

    

  1. 创建文件:

public static final String HDFS_PATH = "hdfs://hadoop:9000/hello";   //创建文件的url
public static void main(String[] args) {
try {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
final URL url = new URL(HDFS_PATH);
final InputStream in = url.openStream();
IOUtils.copyBytes(in, System.out, 1024, true);
} catch (Exception e) {
e.printStackTrace();
}

在浏览器中查看效果:输入http://hadoop:50070/ 然后点击Browse the filesystem 就可以查看到在HDFS根目录下刚刚新建的那个文件了。

    

  2. 上传文件:首先应该明白的就是上传首先需要在HDFS中创建,然后以流的形式写入。

 public static final String HDFS_PATH = "hdfs://hadoop:9000/";
final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());
// 上传文件
final FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH));
final FileInputStream in = new FileInputStream("H:/redTestFileForHadoop");
IOUtils.copyBytes(in, out, 1024, true);

效果如下:直接在浏览器中打开。

  (上传1)

---------------------------------------分割线---------------------------------------------------------

    (上传2)

  3. 下载文件,直接输出到控制台,也可以单独将这个写入到一个文件里面,这里就不介绍了,代码如下:

public static final String HDFS_PATH = "hdfs://hadoop:9000/";
final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());
// 下载文件
final FSDataInputStream in = fileSystem.open(new Path(FILE_PATH));
IOUtils.copyBytes(in, System.out,1024, true);

效果图如下:

    

  4. 删除文件:   

 public static final String HDFS_PATH = "hdfs://hadoop:9000/";
final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());
fileSystem.delete(new Path(FILE_PATH), true);

效果就不用说了,直接在浏览器中看不到这个文件了。

很多时候看起来很复杂的东西其实是自己心里面的认可,实际上也没有想象中的那么难!好好体验一下吧。瞬间感觉这个和我们平常用到的云网盘有几分一样了。哈哈,不妨做一个属于自己的云网盘。绝对可以的!

作者:itRed                                  邮箱:it_red@sina.com
博客:http://www.cnblogs.com/itred 个人网站:http://wangxingyu.jd-app.com
***版权声明:
本文版权归作者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面同意,将其作为他用,本人保留追究责任的所有权利。

Hadoop入门学习笔记---part4的更多相关文章

  1. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  2. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  3. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

  4. Hadoop入门学习笔记(一)

    Week2 学习笔记 Hadoop核心组件 Hadoop HDFS(分布式文件存储系统):解决海量数据存储 Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度 Hadoop Map ...

  5. Hadoop入门学习笔记总结系列文章导航

    一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼数成金成为当务之急.但数据增长 ...

  6. Hadoop入门学习笔记之一

    http://hadoop.apache.org/docs/r1.2.1/api/index.html 适当的利用 null 在map中可以实现对文件的简单处理,如排序,和分集合输出等. 需要关心的内 ...

  7. Hadoop入门学习笔记(二)

    Yarn学习 YARN简介 YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度 YARN功能说明 资源管理系统:集群的硬件资源,和程序运行相关,比如内存.CPU等. 调度平 ...

  8. Hadoop入门学习笔记-第一天 (HDFS:分布式存储系统简单集群)

    准备工作: 1.安装VMware Workstation Pro 2.新建三个虚拟机,安装centOS7.0 版本不限 配置工作: 1.准备三台服务器(nameNode10.dataNode20.da ...

  9. Hadoop入门学习笔记-第二天 (HDFS:NodeName高可用集群配置)

    说明:hdfs:nn单点故障,压力过大,内存受限,扩展受阻.hdfs ha :主备切换方式解决单点故障hdfs Federation联邦:解决鸭梨过大.支持水平扩展,每个nn分管一部分目录,所有nn共 ...

随机推荐

  1. C语言 · 4-3水仙花数

    问题描述 打印所有100至999之间的水仙花数.所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 153=1^3+5^3+3^3. 样例输入 一个满足题目要求的输入范例.例:无 样例输出 ...

  2. Partition2:对表分区

    在SQL Server中,普通表可以转化为分区表,而分区表不能转化为普通表,普通表转化成分区表的过程是不可逆的,将普通表转化为分区表的方法是: 在分区架构(Partition Scheme)上创建聚集 ...

  3. Oracle碎碎念~1

    1. 设置SQL*Plus提示符 SQL> set sqlprompt "_user'@'_connect_identifier>" SYS@orcl> 为了对所 ...

  4. How those spring enable annotations work--转

    原文地址:http://blog.fawnanddoug.com/2012/08/how-those-spring-enable-annotations-work.html Spring's Java ...

  5. Javascript 代理模式模拟一个文件同步功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. IL异常处理

    异常处理在程序中也算是比较重要的一部分了,IL异常处理在C#里面实现会用到一些新的方法 1.BeginExceptionBlock:异常块代码开始,相当于try,但是感觉又不太像 2.EndExcep ...

  7. Win10 UWP开发系列——开源控件库:UWPCommunityToolkit

    在开发应用的过程中,不可避免的会使用第三方类库.之前用过一个WinRTXamlToolkit.UWP,现在微软官方发布了一个新的开源控件库—— UWPCommunityToolkit 项目代码托管在G ...

  8. 云计算下PAAS的解析一

    云计算下PAAS的解析一       PaaS是Platform-as-a-Service的缩写,意思是平台即服务. 把服务器平台作为一种服务提供的商业模式.通过网络进行程序提供的服务称之为SaaS( ...

  9. Register-SPWorkflowService 404

    最近需要做一个SharePoint 2013工作流演示环境. 于是在自己的本子上安装了一个虚拟机. 虚拟机操作系统是Windows Server 2012 R2,计划把AD.SQL Server 20 ...

  10. 【SAP业务模式】之ICS(三):前台操作

    本片博文开始讲解SAP前台是如何实现ICS业务模式的. 一.VA01开立销售订单 我这里为了方便,创建了一个订单类型ZMIV作为公司间销售的订单类型,其实公司间销售订单跟标准的销售订单是一致的.同时, ...