关闭

浅读HDFS文件上传部分的过程源码

572人阅读 评论(0) 收藏 举报
分类:

FileSystem类的继承结构

 

 

FileSystem的文件注释:

An abstract base class for a fairly generic filesystem. It may be implemented as a distributed filesystem, or as a "local" one that reflects the locally-connected disk.

The local version exists for small Hadoop instances and for testing. All user code that may potentially use the Hadoop Distributed File System should be written to use a FileSystem object.

The Hadoop DFS is a multi-machine system that appears as a single disk. It's useful because of its fault tolerance and potentially very large capacity. The local implementation is LocalFileSystem and distributed implementation is DistributedFileSystem.

FileSystem的文件译文:

一个通用文件系统的抽象基类。可以被分布式文件系统或者本地文件系统实现;如果分布式文件系统实现连接到分布式文件系统。本地文件系统实现的话,将会连接本地磁盘。

本地版本的存在是为了小规模hadoop实例或者测试用。所有的用户代码如果需要使用hdfs的都需要使用FileSystem对象。hdfs是将多个机器组成近视看做是一块磁盘。它的高容错和强大的存储能力是非常有用的。FileSystem的本地实现是LocalFileSystem,分布式实现是DistributedFileSystem。

上传文件源码过程:

第一步:创建配置实例,然后获取FileSystem实例。

 

第一个红色框:如果scheme和authority都为空的话,在if条件语句中get函数中最终调用

返回本地文件系统实例,即为:LocalFileSystem实例。(DEFAULT_FS = file:///可以看出是本地文件系统

 

 

第二个红色框:如果scheme的值为hdfs,则根据authority的值来进行创建DistributedFileSystem实例。

 

 

 

第二步:FSDataOutputStream是hdfs文件系统的输出流。

底层调用:

f是hdfs文件系统的文件路径,overwrite文件存在是否覆盖重写。

 

 

 

第三步:创建本地文件输入流,将本地文件输入流复制到hdfs文件的输出流中。IOUtils是hadoop的一个I/O工具类(自行查看文档,不再介绍)。

 

第四步:关闭文件流即可。

 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Hhadoop-2.7.0中HDFS写文件源码分析(二):客户端实现(1)

一、综述      HDFS写文件是整个Hadoop中最为复杂的流程之一,它涉及到HDFS中NameNode、DataNode、DFSClient等众多角色的分工与合作。      首先上一段代码,客...
  • lipeng_bigdata
  • lipeng_bigdata
  • 2016-12-19 16:12
  • 1280

hadoop put内部调用,hdfs写文件流程

HDFS是一个分布式文件系统,在HDFS上写文件的过程与我们平时使用的单机文件系统非常不同,从宏观上来看,在HDFS文件系统上创建并写一个文件,流程如下图(来自《Hadoop:The Definiti...
  • aaa1117a8w5s6d
  • aaa1117a8w5s6d
  • 2015-03-10 15:58
  • 2395

HDFS基本原理及数据存取实战

本文主要介绍了hdfs的基本原理、hdfs基本操作、hdfs的读取数据流程、namenode工作机制,rpc编程以及常见的两种必会的面试题等,旨在于全面深入的理解HDFS的基本工作流程并可以开发出简易...
  • sdksdk0
  • sdksdk0
  • 2016-06-10 11:58
  • 8566

struts2 文件上传和下载,以及部分源码解析

struts2 文件上传 和部分源码解析,以及一般上传原理 (1) 单文件上传 一.简介 Struts2并未提供自己的请求解析器,也就是就Struts2不会自己去处理multipar...
  • u013890660
  • u013890660
  • 2014-04-21 10:53
  • 957

hdfs上传文件的源码分析

之前上传下载hdfs文件都是使用的IOUtils.copyBytes(...),不过也看见过别的方式FileSystem.copyFromLocalFile(boolean delSrc, boole...
  • a822631129
  • a822631129
  • 2015-05-22 11:18
  • 723

HDFS文件上传:8020端口拒绝连接问题解决!

忙了一整天,一直在解决hdfs上传文件时的错误,昨天最后有了一些头绪,但是没来得及验证,今天上午终于验证了自己的想法,从而顺利解决了困扰了自己许久的问题。以这个问题为契机,自己对Hadoop的配置文件...
  • IAProgramer
  • IAProgramer
  • 2016-05-27 22:22
  • 273

springMVC + hadoop + httpclient 文件上传请求直接写入hdfs

springMVC + hadoop + httpclient 文件上传请求直接写入hdfs
  • Dopamy_BusyMonkey
  • Dopamy_BusyMonkey
  • 2016-04-01 13:50
  • 2628

hadoop 中实现一次将多文件上传至HDFS

需求场景分析   在某个单一操作中处理一系列文件是很常见的。例如一个日志处理的MapReduce作业可能要分析一个月的日志量。如果一个文件一个文件或者一个目录一个目录的声明那就太麻烦了,我们可以使用...
  • u010330043
  • u010330043
  • 2016-04-16 20:49
  • 2173

HDFS中JAVA API的使用(hadoop的文件上传和下载)

HDFS是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件、删除文件、读取文件内容等操作。下面记录一下使用JAVA API对HDFS中的文件进行操作的过程。   对分H...
  • z714303584
  • z714303584
  • 2014-10-13 22:46
  • 5883

hadoop中hdfs文件上传

这里不讲解hdfs上传文件的代码,只讲hdfs文件上传的过程中内部的工作 原理一、客户端对hdfs各种操作的代码package com.Lin_wj1995.bigdata.hdfs;import ...
  • Lin_wj1995
  • Lin_wj1995
  • 2016-08-09 12:10
  • 3182
    个人资料
    • 访问:138277次
    • 积分:3122
    • 等级:
    • 排名:第12818名
    • 原创:172篇
    • 转载:52篇
    • 译文:0篇
    • 评论:15条
    最新评论