hadoop入门(2)——HDFS2.0应用场景、原理、基本架构及使用方法
一、HDFS概述
优点:高容错性、适合批处理、适合大数据处理、流式文件访问:一次写入,多次读取。
缺点:不适合低延迟数据访问、不适合小文件存取(受限于NameNode)、不适合并发写入。
二、HDFS基本架构和原理
考虑一个问题:如何实现一个分布式文件系统?
业务场景:目前有几个T级别的大文件,有数个大容量存储主机。
初期思路:将每个文件创建几个副本,通过冗余机制,分别存放到不同的机器上。另外,通过一台专门的主机master,记录这些文件及其副本都存储到了哪些机器上。
初期思路的缺点:①存储负载不均衡。②读取文件时无法并行读取,受限于单台机器的IO性能。③master存在单点故障风险。④当文件大于存储机器的磁盘容量时,就无法进行存储了。
HDFS的思路:基本原理是将大文件分块,每个文件块大小相同(64M),用一个节点master记录文件块的存放位置。每个文件块建立多个副本。采用NameNode和DataNode的方式,两者通过心跳进行检测。同时为了避免单点故障,提供一个standby的NameNode。client负责切分文件,并与NameNode交互,获取文件位置信息。
HDFS数据块(block):
HDFS写流程:通过client类,首先询问当前文件是否存在。然后client通过流水线的方式写入。每次会把block拆分成更加小的packet。写完一个之后继续下一个,然后datanode传输之前写入的packet。以此类推,直至写完。
HDFS读流程:client通过询问NameNode获取该文件所在的datanode位置,然后将文件读取出来。
HDFS的物理拓扑:集群内有多个机架,每个机架上有多个节点。所以分配block时需要考虑跨机架的效率问题。
HDFS副本放置策略:副本1写在和client相同 的节点上。副本2写在不同机架的节点上。副本3写在与副本2同机架的另一个节点上。
HDFS可靠性策略:
3种常见错误:文件损坏、网络或者机器失效、NameNode挂掉。
文件完整性校验:通过CRC32校验,用其他副本去掉损坏文件。
Heartbeat:检测datanode机器是否失效。
元数据信息:FSImage\多份存储、主备切换。
HDFS不适合存储小文件:①NameNode的内存是有限的。②大量小文件寻址时间长。③NameNode存储block数目是有限的。
三、HDFS程序设计
HDFS访问方式:HDFS shell 、Java api、rest api、fuse协议、lib hdfs、其他语言编程API。
HDFS Shell命令一览表:通过hadoop提供的命令行工具完成。也提供了很多的管理脚本。(详见后续介绍)
Java API: Configuration类、FileSystem类、FSDataInputStream、FSDataOutputStream。
其他语言:略。
四、HDFS2.0新特性
1、NameNode HA:
2、NameNode Federation:集群中提供多个NameNode,每个NameNode负责管理一部分DataNode。
3、HDFS 快照:帮助用户保存某个时刻的数据。防止用户误删数据。使用命令开启该功能。
4、HDFS 缓存:
5、HDFS ACL:启用时需要修改配置文件。原来的方式受限于单一user和单一group机制。
6、异构层级存储结构:原本是将所有的存储介质抽象成性能相同的DISK。
每个节点是由多种异构存储介质组成的。
当前功能尚在完善中。
hadoop入门(2)——HDFS2.0应用场景、原理、基本架构及使用方法的更多相关文章
- [转帖]kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
kafka入门:简介.使用场景.设计原理.主要配置及集群搭建 http://www.aboutyun.com/thread-9341-1-1.html 还没看完 感觉挺好的. 问题导读: 1.zook ...
- hadoop入门(3)——hadoop2.0理论基础:安装部署方法
一.hadoop2.0安装部署流程 1.自动安装部署:Ambari.Minos(小米).Cloudera Manager(收费) 2.使用RPM包安装部署:Apache ...
- 大数据技术hadoop入门理论系列之二—HDFS架构简介
HDFS简单介绍 HDFS全称是Hadoop Distribute File System,是一个能运行在普通商用硬件上的分布式文件系统. 与其他分布式文件系统显著不同的特点是: HDFS是一个高容错 ...
- 《区块链DAPP开发入门、代码实现、场景应用》笔记5——区块链福利彩票的设计
笔者一直强调,一定要利用区块链的特点来解决行业存在的问题,并且该问题最好用区块链解决或者说只能用区块链解决.彩票行业就是个例子. 在讲解代码之前,首先讲解一下业务设计,如图6.15所示. 图6.15 ...
- 大数据学习笔记之Hadoop(一):Hadoop入门
文章目录 大数据概论 一.大数据概念 二.大数据的特点 三.大数据能干啥? 四.大数据发展前景 五.企业数据部的业务流程分析 六.企业数据部的一般组织结构 Hadoop(入门) 一 从Hadoop框架 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- 初识Hadoop入门介绍
初识hadoop入门介绍 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. < ...
- 《Ruby语言入门教程v1.0》学习笔记-01
<Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...
- 大数据:Hadoop入门
大数据:Hadoop入门 一:什么是大数据 什么是大数据: (1.)大数据是指在一定时间内无法用常规软件对其内容进行抓取,管理和处理的数据集合,简而言之就是数据量非常大,大到无法用常规工具进行处理,如 ...
随机推荐
- eclipse安装和配置
一.下载eclipse eclipse下载页 (选择"Eclipse IDE for Java EE Developers",适用于web和android开发) 我用的是luna的 ...
- Nginx编译配置杂记
1.http://nginx.org/download/nginx-1.6.3.tar.gz 2. [root@track nginx-1.6.3]#./configure --prefix=/usr ...
- 基于Linux平台的libpcap源码分析和优化
目录 1..... libpcap简介... 1 2..... libpcap捕包过程... 2 2.1 数据包基本捕包流程... 2 2.2 libpcap捕包过程... ...
- <<< MyEclipse软件中的快捷键
-------------------------------------MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 ...
- Yocto开发笔记之《Tip-stdlib库函数strtod返回nan错误》(QQ交流群:519230208)
2015.04-imx_v2015.04_3.14.38_6ul_ga+g5d63276 (Jan 04 2016 - 18:07:08) FSL Community BSP : https://co ...
- Spring系列之AOP实现的两种方式
AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ). 首先复习下AOP中一些比较重要的概念: Joinpoint(连接点):程序执行 ...
- rails 常用的知识点
按惯例先上网址: http://guides.ruby-china.org/ 适合初学者很好的文章 ===========================知识点================ ...
- Shell case esac语句
case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: ...
- /usr/bin/cd 是什么鬼
上文中曾讲到,我在我的 Mac 上发现很多和 Bash 内部命令同名的外部命令,在那 24 个外部命令中,我发现个奇怪的现象:它们中有 15 个居然是 Shell 脚本,更奇怪的是,居然是同一个 Sh ...
- CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(1)设定背景图
技术的新发展,除计算机可以接入互联网之外,平板电脑.智能手机.智能电视等其他设备均可访问互联网.在多设备时代,构建多屏体验也不是听说的那么难. 但是这也增加了学习CSS的难度?不知道如何上手,只懂一点 ...