[置顶] 【Hadoop--03】HDFS写文件

标签: hdfs
443人阅读 评论(0) 收藏 举报
分类:

这里写图片描述

1.客户端将文件写入本地磁盘的N#x4E34;时文件中

2.当临时文件大小达到一个block大小时,HDFS client通知NameNode,申请写入文件

3.NameNode在HDFS的文件系统中创建一个文件,并把该block id和要写入的DataNode的列表返回给客户端

4.客户端收到这些信息后,将临时文件写入DataNodes

4.1 客户端将文件内容写入第一个DataNode(一般以4kb为单位进行传输)
4.2 第一个DataNode接收后,将数据写入本地磁盘,同时也传输给第二个DataNode
4.3 依此类推到最后一个DataNode,数据在DataNode之间是通过pipeline的方式进行复制的
4.4 后面的DataNode接收完数据后,都会发送一个确认给前一个DataNode,最终第一个DataNode返回确认给客户端
4.5 当客户端接收到整个block的确认后,会向NameNode发送一个最终的确认信息
4.6 如果写入某个DataNode失败,数据会继续写入其他的DataNode。然后NameNode会找另外一个好的DataNode继续复制,以保证冗余性
4.7 每个block都会有一个校验码,并存放到独立的文件中,以便读的时候来验证其完整性
5.文件写完后(客户端关闭),NameNode提交文件(这时文件才可见,֘#x5982;果提交前,NameNode垮掉,那文件也就丢失了。fsync:只保证数据的信息写到NameNode上,但并不保证数据已经被写到DataNode中)

Rack aware(机架感知)

通过配置文件指定机架名和DNS的对应关系

假设复制参数是3,在写入文件时,会在本地的机架保存一份数据,然后在另外一个机架内保存两份数据(同机架内的传输速度快,从而提高性能)

整个HDFS的集群,最好是负载平衡的,这样才能尽量利用集群的优势

查看评论

java hadoop hdfs 上写文件

项目中会用到往hdfs 上写文件  ,为下面kafka 往hdfs 上写文件做基础。 实例如下: 1、配置文件:com/xiefg/config/system.properties    ...
  • u010011737
  • u010011737
  • 2017-02-06 11:20:18
  • 1484

HDFS写文件过程分析

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

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

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

采用文件流写HDFS大文件

最近有个需求,要把笔记本上的一个近30GB的文件写到HDFS上去。无奈虚拟机服务器的本地硬盘都只有20GB的容量,原始文件无法采用copyFromLocal。试了一下笔记本通过copyFromLoca...
  • bluejoe2000
  • bluejoe2000
  • 2017-06-17 23:01:55
  • 708

hadoop非mapreduce过程对hdfs文件的读写

package cn.ytu.hdfsrwfile; import java.util.ArrayList; import java.util.List; import org.apache.ha...
  • XX_123_1_RJ
  • XX_123_1_RJ
  • 2015-03-22 11:14:27
  • 1944

多线程、分布式任务如何向HDFS加载数据

大数据计算时,多线程与分布式的并行能够很好的加速数据的处理速度。而在大数据存储时,分布式的文件存储系统对并发的写请求支持存在天然的缺陷。这是一对天然的矛盾,暂时无法解决,只能缓和。 要想缓和,可通过...
  • student1218
  • student1218
  • 2015-04-27 10:47:48
  • 1570

HDFS读写文件实例与解析

使用实例: 1.项目结构(引入包hadoop-0.20.2-core.jar和commons-logging.jar) 2.代码 HdfsCommon.java public clas...
  • whuqin
  • whuqin
  • 2011-08-29 17:49:23
  • 18836

HDFS读写文件流程

1.HDFS写流程: 客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode...
  • qq_20641565
  • qq_20641565
  • 2016-11-24 23:49:50
  • 7693

hadoop源码解析之hdfs写数据全流程分析---创建文件

概述 DFSClient创建文件 namenode创建文件 概述hdfs中写数据应该是hdfs中最复杂的业务之一了,hadoop中的每个文件由多个block组成,每个块又有多个备份,这些备份又放在了不...
  • zhangjun5965
  • zhangjun5965
  • 2017-07-09 17:37:38
  • 545
    个人资料
    持之以恒
    等级:
    访问量: 53万+
    积分: 9847
    排名: 2241
    加入群

    数据分析[1群] qq群:697118923

    数据挖掘[1群] qq群:331583141

    我的微信:laidefa

    最新评论