紧接着《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. Javascript生成二维码(QR)

    网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网 ...

  2. ABP文档 - Javascript Api

    文档目录 本节内容: AJAX Notification Message UI Block & Busy Event Bus Logging Other Utility Functions A ...

  3. 关于全局ID,雪花(snowflake)算法的说明

    上次简单的说一下:http://www.cnblogs.com/dunitian/p/6041745.html#uid C#版本的国外朋友已经封装了,大家可以去看看:https://github.co ...

  4. CRL快速开发框架系列教程七(使用事务)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  5. 【转】 FineBI:自助式BI工具打造业务分析的“快与准”

    如今的企业经营方式,业务对于数据分析有极大的需求,但却苦于没有数据以及工具的有效支持,业务分析仍就依赖于IT报表制作.而IT方不断地按业务需求去调研.确认业务逻辑,然后取数做报表,其中还要忍受业务的需 ...

  6. Spark-shell和Spark-Submit的使用

    Spark-shell有两种使用方式: 1:直接Spark-shell 会启动一个SparkSubmit进程来模拟Spark运行环境,是一个单机版的. 2:Spark-shell --master S ...

  7. Spring Security OAuth2 开发指南

    官方原文:http://projects.spring.io/spring-security-oauth/docs/oauth2.html 翻译及修改补充:Alex Liao. 转载请注明来源:htt ...

  8. 【腾讯Bugly干货分享】跨平台 ListView 性能优化

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/FbiSLPxFdGqJ00WgpJ94yw 导语 精 ...

  9. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  10. 关于python中的flush问题

    今天写了一个控制台下的进度条小程序,遇到了关于flush的问题,在这里小小的总结一下. 首先在要flush的字符串必须后边加上'\r'(回车) 将数据送入缓冲区这样在新打印字符的时候就可以将原来的显示 ...