码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop的简单了解与安装

时间:2018-11-01 13:34:15      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:packet   获取   原理   提高   实时   apr   流程   行操作   pack   

hadoop

一, Hadoop  分布式 简介
Hadoop  是分布式的系统架构,是  Apache  基金会顶级金牌项目

技术分享图片

分布式是什么?学会用大数据的思想来看待和解决问题 思 想很重要

 1-1 、Hadoop  的思想之源:
来自于 Google 03 年发布 3 大论文, GFS、MapReduce、Bigtable ;Dougcutting 用 Java 实现

1-2 、Hadoop  创始人介绍
Hadoop 作者 Doug cutting,就职 Yahoo 期间开发了 Hadoop项目,目前在 Cloudera 公司从事架构工作

技术分享图片

1-3 、Hadoop  发展历程

2003-2004 年,Google 公开了部分 GFS 和 Mapreduce 思想的细节,以此为基础 Doug Cutting 等人用了 2 年业余时间实现了DFS 和 Mapreduce 机制,一个微缩版:Nutch
Hadoop 于 2005 年秋天作为 Lucene 的子项目 Nutch 的一部分正式引入 Apache 基金会。2006 年 3 月份,Map-Reduce 分布式离线计算 和 Nutch Distributed File System (NDFS) nutch 分布式文件系统分别被纳入称为 Hadoop 的项目中。(Hadoop 如今是 Apache 基金会顶级金牌项目)Hadoop 这名字来源于 Doug Cutting 儿子的玩具大象

1-4 、Hadoop  组成:
Hadoop = hdfs(存储) + mapreduce(计算) + yarn(资源管理)

1-4-2、 、统 分布式存储系统 HDFS  (Hadoop Distributed File
System  )
– 分布式存储系统
– 提供了 高可靠性、高扩展性和高吞吐率的数据存储服务
1-4-2、 、架 分布式计算框架 MapReduce
– 分布式计算框架(计算向数据移动)
– 具有 易于编程、高容错性和高扩展性等优点。
1-4-3、 、架 分布式资源管理框架 YARN (Yet Another Resource Management )
– 负责集群资源的管理和调度

二、 分布式 文件存储系统  HDFS
2 2- -1 1 、S HDFS  是什么?
HDFS 是 Hadoop 分布式文件存储系统
为什么会有分布式的文件存储系统出现?
面对的大量的数据和如何计算的难题大量【pb 级以上】的网页怎么存储问题 (之前是用磁柜存储)

分布式存储系统 HDFS (Hadoop Distributed File System)
主要解决大数据的存储问题。经过多年的发展,HDFS 的应用已经非常成熟非常多,如百度网盘 360 云盘 腾讯微云 阿里云(不仅提供服务器和云存储还提供服务,比一般的强多了)大数据好多技术框架都架构于这个文件存储系统之上的。

hadoo2.x生态系统

技术分享图片

2-2 、HDFS  架构图( 重点) :

技术分享图片

如图所示有 HDFS 中有哪些模块?
那么接下来我就一一给大家介绍这些功能模块及 HDFS 的原理!
众所周知关系型数据库是按什么储存的?行! 那么 HDFS 呢?

 

2-3 、HDFS  的功能模块及原理详解( 非常重要)
2-3-1 、HDFS  数据存储单元(block )
--文件被切分成固定大小的数据块 block
? 默认数据块大小为 128MB (hadoop2.x),可自定义配置
? 若文件大小不到 128MB ,则单独存成一个 block
- 一个文件存储方式

按大小被切分成若干个 block ,存储到不同节点上
? 默认情况下每个 block 都有 3 个副本
- Block 大小和副本数通过 Client 端上传文件时设置,文件上传成功后副本数可以变更,Block Size 不可变更

技术分享图片

技术分享图片

hdfs 存储模型:字节
– 文件线性切割成块(Block):偏移量 offset (byte)

– Block 分散存储在集群节点中
– 单一文件 Block 大小一致,文件与文件可以不一致
– Block 可以设置副本数,副本分散在不同节点中
? 副本数不要超过节点数量
– 文件上传可以设置 Block 大小和副本数
– 已上传的文件 Block 副本数可以调整,大小不变
– 只支持一次写入多次读取,同一时刻只有一个写入者
– 可以 append 追加数据

 

2-3-2 、NameNode (简称 NN )
2-3 -2 -1  NameNode  主要功能:
? 接受客户端的读/写服务
? 收集 DataNode 汇报的 Block 列表信息

 

2 - 3-  2-  2 、 基于内存存储 : 不会和磁盘发生交换
? 只存在内存中
? 持久化

2- 3- 2- 3 NameNode  保存 a metadata  信息:
? 文件 owership(归属)和 permissions(权限)
? 文件大小,时间
? (Block 列表:Block 偏移量),位置信息
? Block 保存在哪个 DataNode 信息(由 DataNode 启动时上
报,不保存在磁盘)

 

2 -3 -2-4 NameNode  持久化
? NameNode 的 metadate 信息在启动后会加载到内存
? metadata 存储到磁盘文件名为”fsimage”
? Block 的位置信息不会保存到 fsimage
? edits 记录对 metadata 的操作日志

fsimage 保存了最新的元数据检查点,类似快照。
- editslog 保存自最新检查点后的元信息变化,从最新检查点后,hadoop 将对每个文件的操作都保存在 edits 中。客户端修改文件时候,先写到 editlog,成功后才更新内存中的
metadata 信息。

Metadata = fsimage + editslog

 

2-3-4 、DataNode (DN )
? 本地磁盘目录存储数据(Block),文件形式
? 同时存储 Block 的元数据信息文件
? 启动 DN 进程的时候会向 NameNode 汇报 block 信息
? 通过向 NN 发送心跳保持与其联系(3 秒一次),如果 NN 10分钟没有收到 DN 的心跳,则认为其已经 lost,并 copy 其上的 block 到其它 DN

2-3-5 、SecondaryNameNode (SNN )
– 它的主要工作是帮助 NN 合并 edits log 文件,减少 NN 启动时间,它不是 NN 的备份(但可以做备份)。
– SNN 执行合并时间和机制
?A、根据配置文件设置的时间间隔 fs.checkpoint.period 默认 3600 秒。
?B、根据配置文件设置 edits log 大小 fs.checkpoint.size规定 edits 文件的最大值默认是 64MB

2-3-6 、SecondaryNameNode SNN  合并流程

技术分享图片

首先是 NN 中的 Fsimage 和 edits 文件通过网络拷贝,到达SNN 服务器中,拷贝的同时,用户的实时在操作数据,那么 NN中就会从新生成一个 edits 来记录用户的操作,而另一边的 SNN将拷贝过来的 edits 和 fsimage 进行合并,合并之后就替换NN 中的 fsimage。之后 NN 根据 fsimage 进行操作(当然每隔一段时间就进行替换合并,循环)。当然新的 edits 与合并之后传输过来的 fsimage 会在下一次时间内又进行合并。

2-3-6 、Block  的副本放置策略
– 第一个副本:放置在上传文件的 DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU 不太忙的节点。
– 第二个副本:放置在于第一个副本不同的机架的节点上。
– 第三个副本:与第二个副本相同机架的不同节点。
– 更多副本:随机节点

技术分享图片

2-3-7 、HDFS  读写流程

2  -3  -7  -1写文件流程

技术分享图片

HDFS 写流程
– Client:
? 切分文件 Block
? 按 Block 线性和 NN 获取 DN 列表(副本数)
? 验证 DN 列表后以更小的单位(packet)流式传输数据
– 各节点,两两通信确定可用
? Block 传输结束后:
– DN 向 NN 汇报 Block 信息
– DN 向 Client 汇报完成

– Client 向 NN 汇报完成
? 获取下一个 Block 存放的 DN 列表
? ……………..
? 最终 Client 汇报完成
? NN 会在写流程更新文件状态

2-3 -7 -2 读文件过程

技术分享图片

 

 HDFS 读流程
– Client:
? 和 NN 获取一部分 Block 副本位置列表
? 线性和 DN 获取 Block,最终合并为一个文件
? 在 Block 副本列表中按距离择优选取

2- -4 4 、S HDFS  的优缺点(重要)
2-4-1  优点:
– 高容错性
? 数据自动保存多个副本
? 副本丢失后,自动恢复
– 适合批处理
? 移动计算而非数据
? 数据位置暴露给计算框架(Block 偏移量)
– 适合大数据处理
? GB 、TB 、甚至 PB 级数据
? 百万规模以上的文件数量
? 10K+ 节点
– 可构建在廉价机器上
? 通过多副本提高可靠性
? 提供了容错和恢复机制

 

2-4-2  缺点:
- 低延迟高数据吞吐访问问题
? 比如支持秒级别反应,不支持毫秒级

? 延迟与高吞吐率问题(吞吐量大但有限制于其延迟)
- 小文件存取
? 占用 NameNode 大量内存
? 寻道时间超过读取时间
- 并发写入、文件随机修改
? 一个文件只能有一个写者
? 仅支持 append

Hadoop的简单了解与安装

标签:packet   获取   原理   提高   实时   apr   流程   行操作   pack   

原文地址:https://www.cnblogs.com/liu1459310172/p/9888600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!