hdfs上传流程

首先客户端向nn请求上传文件、
nn经过检查回应客户端是否可以上传、
客户端得到同意后向nn请求上传第一块文件的dn、
nn返回给客户端dn的地址、
客户端与其中一个dn1建立连接然后dn1再与dn2连接,dn2再与dn3进行连接、
dn3,dn2,dn1,客户端逐级回应连接成功、
客户端开始向dn1上传第一个block以packet为单位,dn1收到一份packet后自己保存一份还会给dn2,再由dn2向dn3传输一份,
当三台dn都保存了block后则第一块上传完成,可以开始上传第二块了

hdfs下载流程

客户端向nn请求下载某个文件,
nn通过查询元数据找到文件地址返回文件地址给客户端,
客户端挑选一台dn开始请求数据
dn开始传输数据,以packet的形式传输给客户端
客户端拿到所有的packet后合并为一个完整的文件
**下载的过程可以并发进行下载,也就是同时找不同的dn进行下载不同的块文件

HDFS的上传下载流程的更多相关文章

  1. FastDFS初步认识--上传下载流程介绍

    什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用 F ...

  2. Hadoop HDFS 整合 上传 下载 删除

    新建一个Java项目,导入jar,新建一个测试类,编写代码实现文件操作功能: package com.bw.test; import java.io.FileInputStream; import j ...

  3. HDFS文件上传下载过程(详图)

  4. Hadoop之HDFS原理及文件上传下载源码分析(上)

    HDFS原理 首先说明下,hadoop的各种搭建方式不再介绍,相信各位玩hadoop的同学随便都能搭出来. 楼主的环境: 操作系统:Ubuntu 15.10 hadoop版本:2.7.3 HA:否(随 ...

  5. Hadoop之HDFS原理及文件上传下载源码分析(下)

    上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文 ...

  6. Hadoop HDFS文件系统通过java FileSystem 实现上传下载等

    package linlintest; import java.io.File; import java.io.FileOutputStream; import java.io.IOException ...

  7. 【转】Java IOUtils方式上传下载文件 on HDFS

    [From]https://www.cnblogs.com/areyouready/p/9795442.html package com.css.hdfs04; import java.io.File ...

  8. HDFS的上传流程以及windows-idea操作文件上传的注意

    HDFS的上传流程 命令:hdfs dfs -put xxx.wmv /hdfs的文件夹 cd进入到要上传文件的当前目录,再输入hdfs命令上传,注意-put后tab可以自动补全, 最后加上你要上传到 ...

  9. 【FTP】FTP文件上传下载-支持断点续传

    Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...

随机推荐

  1. DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ | TRAINING A CLASSIFIER

    你已经知道怎样定义神经网络,计算损失和更新网络权重.现在你可能会想, 那么,数据呢? 通常,当你需要解决有关图像.文本或音频数据的问题,你可以使用python标准库加载数据并转换为numpy arra ...

  2. epoll(1)

    #include<stdio.h> #include<fcntl.h> #include<unistd.h> #include<sys/epoll.h> ...

  3. IoC容器-Bean管理注解方式(注入属性@Autowired和Qualifier)

    基于注解方式实现属性注入 (1)@Autowired:根据属性类型进行自动装配 第一步 把 service 和 dao 对象创建,在service 和 dao 类添加创建对象注解 第二步 在servi ...

  4. logrotate 日志切割

    logrotate是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用. 配置文件 Linux系统默认安装logrotate工具,它默认 ...

  5. 虚拟化技术kvm,xen,vmware比较

    目前市面上常用的虚拟机技术主要有KVM.xen.vmware. KVM是指基于Linux内核(Kernel-based)的虚拟机(Virtual Machine).KVM最大的好处就在于它是与Linu ...

  6. Device or resource busy

    格式化磁盘显示忙碌,如何解决呢? [root@jp33e503-11-8 ~]# mkfs.xfs /dev/sdc mkfs.xfs: cannot open /dev/sdc: Device or ...

  7. Java 锁 概念介绍

    一   Java中的锁是什么? /* * 一 Java锁定义? * 在计算机科学中,锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制. * 锁旨在强制 ...

  8. JavaScripts之迪卡算法求积(n*n)适用于SKU信息计算等场景

    迪卡算法求积(n * n) 使用 array.reduce 的方式实现 笛卡尔积算法 const arr = [ ['黑色', '白色', '蓝色'], ['1.2KG', '2.0KG', '3.0 ...

  9. Vue之性能调优

    打包优化 1. 屏蔽 sourceMap sourceMap作用:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错. 在config目录的index.js ...

  10. NSTimer的使用

    开启定时器 @property (nonatomic, weak) NSTimer *timer; // 返回一个自动开始执行任务的定时器 self.timer = [NSTimer schedule ...