博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop HDFS(一)
阅读量:6656 次
发布时间:2019-06-25

本文共 1630 字,大约阅读时间需要 5 分钟。

微信公众号:码农小胡

大吼一声,我胡汉三又回来了,最近太忙,终于可以学习自己的东西了,开始更新中,逐步的把hadoop这个补全,工作都是眼泪啊。

Hadoop HDFS(一)

由于时间关系,经常忙着工作,很少写一些文章了,现在重新开始,记录一下自己在学习中所遇到的问题,这次学习Hadoop和其他的文章不一样,减去繁琐的教程,直接记录自己学习的东西,为什么不从搭建环境开始写呢,网上一堆,太多了,所以,自己百度一下全部可以搞定,这里直接从hdfs开始。

HDFS的概念

首先,hdfs是一个文件系统,用来存储文件,通过统一的命名空间---目录树来定位文件 其次,它是分布式的,由多个服务器联合起来,实现功能。

重要特性:

(1)HDFS中的文件在物理上是分块存储的,块的大小是可以通过配置参数来规定,默认的是128M,老版本的是64M。 (2)HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件。 (3)目录结构及文件分块信息的管理由namenode节点承担 namenode是HDFS集群主节点,负责维护整个HDFS文件系统的目录树,以及每一个路径所对应的block块信息(包括block的id,以及所在的datanode服务器) (4)文件的各个block的存储管理由datanode节点承担 dateanode是HDFS集群从节点,每一个block都可以在多个datanode上存储多啊个副本,并可以通过参数设置。 (5)需要注意的是HDFS是设计成适应一词写入,多次读取的场景,且不支持文件的修改 (注意:适合做数据分析,不能做网盘,不便修改,延迟大,网络开销大,成本高,还是使用百度网盘吧)

HDFS工作机制

1、概述

(1)HDFS两个角色:namenode,datanode (2)Namenode负责管理文件系统元数据 (3)Datanode负责管理用户文件数据块 (4)文件按照固定大小切成若干块后分布式存储在若干datanode上 (5)每一额文件块可以有多个副本,放在不用的datanode上 (6)Datanode会定期向Namenode汇报自身保存文件block信息,而namenode则会负责爆出文件的副本数量 (7)HDFS内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来进行

2、HDFS写数据流程

1、namenode通信请求上传文件,namenode检查目标文件是否存在,父目录是否存在。 2、namenode返回是否可以上传。 3、client请求第一个block传输到哪个datanode服务器上 4、namenode返回三个服务器datanade。 5、client请求3台datanode中的一台上传数据(其实是一个RPC调用,建立pipeline),A收到请求会调用B,B调用C将pipline建立完成,返回客户端一个响应,告诉客户端以及准备好. 6、client开始往A上传第一额block,以pcaket为短文,A收到一个packet就会传输给B,B传给C,A每传一个packet会放入一个应答队列等待应答 7、当一个block传输完成之后,client再次请求namenode上传第二个block (注:上传数据时,datanode选择策略: 1、第一给副本先考虑client 端最近的(同机架)2、第二个副本考虑跨机架挑选,增加副本可靠性,3、第三个副本就在第一个副本同机架另外选一台datanode存放 如何知道哪个机器在哪个机架上,可配置机架感知)

3、HDFS读数据流程

1、跟namenode通信查询元数据,找到文件所在大datanode服务器。 2、挑选一台datanode服务器,请求建立scoket流。 3、datanode发送数据,以packet 为单位做校验 4、客户端以packet为单位接受,先在本地缓存,然后写入目标文件

转载地址:http://snxto.baihongyu.com/

你可能感兴趣的文章
更改Linux系统日志的时间格式
查看>>
FC-SAN vs. IP-SAN详细技术比较
查看>>
sequioadb源码分析
查看>>
基于嵌入式Linux系统设备驱动程序的开发
查看>>
【smart-transform】取自 Atom 的 babeljs/coffeescript/typescript 智能转 es5 库
查看>>
基于S3C6410的Touch驱动详解
查看>>
使用Jekyll托管github pages的好处
查看>>
java、javaw和javaws的区别
查看>>
Git 远程分支
查看>>
华为S9300、s5700交换机端口镜像配置
查看>>
按下Enter焦点移至下一个控件的实现js代码
查看>>
zabbix系统日志文件监控key
查看>>
Salttack笔记
查看>>
如何利用ucenter实现单点登录
查看>>
apache-tomcat-6.0.37 部署
查看>>
sns推广技巧四步骤
查看>>
Web Service
查看>>
关于编程语言的一些认识
查看>>
Linux管理查看工具htop、glances、dstat
查看>>
网页中的代码
查看>>