大数据平台简介
由于HDFS是为高数据吞吐量应用而设计的,必然 以高延迟为代价。不适合低延迟与高吞吐率的数据 访问 ,比如毫秒级
无法高效存储 大量小文件
HDFS中元数据(文件的基本信息)存储在 namenode的内存中,而namenode为单点,小文 件数量大到一定程度,namenode内存就吃不消了 ;寻道时间超过读取时间
操作和编程接口。
Apache pig是用来处理大规模数据的高级查询语言,配合Hadoop使用,
可以在处理海量数据时达到事半功倍的效果,比使用Java,C++等语言编写 大规模数据处理程序的难度要小N倍,实现同样的效果的代码量也小N倍。
A = LOAD 'a.txt' AS (col1:chararray, col2:int, col3:int, col4:int, col5:double, col6:double); B = GROUP A BY (col2, col3, col4); C = FOREACH B GENERATE group, AVG(A.col5), AVG(A.col6); DUMP C;
副本策略
HDFS采用机架感知(rack awareness)的副本存放策略来 提高数据的可靠性、可用性和网 络带宽的利用率。 将第一个副本放在本地节点,将 第二个副本放到本地机架上的另 外一个节点,而将第三个副本放 到不同机架上的节点。 文件的副本不是均匀地分布在机 架当中,这种方式提高了写的性 能,并且不影响数据的可靠性和 读性能(选择读取最近的副本)
并发写入、文 件随机修改
不支持多用户对同一文件进行操作,而且写操作只 能在文件末尾完成,即追加操作。
HDFS现在遇到的主要问题
32
分布后的文件系统有个无法回避的 问题,因为文件不在一个磁盘导致 读取访问操作的延时,这个是 HDFS现在遇到的主要问题
HDFS 调优是使用时最 应该注意的。
现阶段,HDFS的配置是按照高数据吞吐量优化的,可能会以高时 间延时为代价。但万幸的是,HDFS是具有很高弹性,可以针对具 体应用再优化。
Tez (DAG计算
)
Spark (内存计算
)
… …
YARN (分布式计算框架)
HDFS (分布式存储系统)
Flume
(日志收集 )
HDFS-Hadoop Distributed File System
5
Yarn-资源管理器
6
MapReduce-分布式并行计算框架
7
“你数一号书架,我数二号书架。我们人数多,数书就更快。这就是map; 最后我们到一起,把所有人的统计数加在一起,就是reduce。”
Spark-新一代大数据处理计算引擎
8
You can run Spark using its standalone cluster mode, on EC2, on Hadoop YARN, or on Apache Mesos. Access data in HDFS, Cassandra, HBase, Hive, Tachyon, and any Hadoop data source.
分布式文件系统特点
28
通透性:DFS让实际上是通过网络来访问文件的动作,由用户和程 序看来,就像访问本地的磁盘一般。
Root
目录 1
目录 2
File
···
split
Block
···
Block
集群
节 点
节 点
节 点
HDFS是什么
29
HDFS是Hadoop Distribute File System 的简称,也就是 Hadoop的一个分布式文件系统。 HDFS被设计成适合运行在通用硬件(commodity hardware)上的 分布式文件系统。 HDFS是一个高度容错性的系统,适合部署在廉价的机器上 HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应 用 HDFS可以实现流的形式访问(streaming access)文件系统中的 数据 对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创 建、删除、移动或重命名文件,等等。对于用户来说,可以直接看 成是一个巨大的硬盘。
HDFS
128 MB 128 MB 128 MB 128 MB
数据复制
40
大文件在集群中跨机器存储
每个文件存储成一系列的数 据块,除了最后一个,所有 的数据块都是同样大小的
为了容错,文件的所有数据 块都会有副本。每个文件的 数据块大小和副本系数都是 可配置的
Namenode全权管理数据块的复制,它周期性地从集群中的每个 Datanode接收心跳信号和块状态报告
Mahout-机器学习算法库
12
Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些 可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智 能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘 。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。
总体架构图
33
HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一 定数目的Datanode组成,他们以管理者-工作者模式工作。
总体架构图-Client
34
切分文件;
访问或通过命令行管理HDFS;
与NameNode交互,获取文件 位置信息;
与DataNode交互,读取和写 入数据。
Rack1
41
Rack2 Node
大数据集群
HDFS稳健性
42
故障的类型:NameNode故障,DataNode故障和网络中断 数据磁盘故障, 心跳及重新复制
DataNode
NameNode
HeartBeats
DataNode
DataNode
Dead
DataNode
NameNode启动block重新复制:
19
Hortonworks Data Platform (HDP)
20
MapR Converged Data Platform
21
Hadoop主流厂商比较
22
开源
开源
开源
管理 管理
完全开源 收取服务费
工具不开源 收取License费用
架构创新
重构了底层内核 收取License费用
浪潮大数据平台产品
HDFS的基本结构之 NameNode
35
Namenode是一个中心服务器 ,负责管理文件系统的命名空 间
协调客户端对文件的访问
Namenode执行文件系统的命 名空间操作,例如打开、关闭 、重命名文件和目录
记录每个文件数据块在各个 Datanode上的位置和副本信息
HDFS元数据持久化
36
NameNode存有HDFS的元数据:主要由FSImage和EditLog组成。 FSImage是元数据镜像文件
Blockreport:当一个DataNode启动时,它会扫描本地文件系统,生成 所有HDFS数据块的一个列表,然后向NameNode发送一个报告。
HDFS的基本结构之 DataNode
38
Datanode一般是一个节点一 个,负责所在物理节点的存储 管理,是文件系统中真正存储 数据的地方 一个文件被分成一个或多个数 据块,这些块存储在一组 Datanode上 Datanode负责处理文件系统 客户端的读写请求。 在Namenode的指挥下进行 block的创建、删除和复制 周期性的向Namenode汇报 其存储的数据块信息
云服务集团 云海Insight HD
23
软件集团 Indata HD
HDP
24
HDFS
相关背景资料
25
Hadoop:一个分布式系统基础架构,由Apache 基金会开发。用户可以在不了解分布式底层细节的 情况下,开发分布式程序。充分利用集群的威力高 速运算和存储。
Distributed:分布式计算是利用互联网上的计算 机的 CPU 的共同处理能力来解决大型计算问题 的一种计算科学。
HDFS特点
30
适合大数据 处理
流式文件 访问
可构建 廉价机器上
GB、TB、甚至PB级数据;百万规模以上的文件数量; 10K+节点规模
HDFS使应用程序流式地访问它们的数据集。所以它重 视数据吞吐量,而不是数据访问的反应速度。
通过多副本提高可靠性;提供了容错和恢复机制
高容错性
数据自动保存多个副本;副本丢失后,自动恢复
适合批处理
HDFS被设计成适合进行批量处理,而不是用户交互式 处理;移动计算而非数据;数据位置暴露给计算框架
简化一致性模型 一次性写入,多次读取;保证数据一致性
可移植性
HDFS在设计的时候就考虑到平台的可移植性。这种特 性方便了HDFS作为大规模数据应用平台的推广
HDFS的局限性
31
不适合低延迟 数据访问
大数据平台简介
2
Hadoop生态系统
Hadoop 1.0 V 2.0
3
Hadoop生态系统
4
Ambari
(安装部署工具)
Oozie
(作业流调度系统)
Sqoop
(数据库TEL 工具)
Zookeeper
(分布式协调服务)
HBase
(分布式ahout
……
MapReduce (离线计算)
HDFS元数据持久化
37
checkpoint :NameNode启动后,它会从磁盘中读取FsImage及 EditLog,应用EditLog中所有的事务到存在于内存中的FsImage文件对象 ,然后将版本较新的这个FsImage文件写入磁盘,之后EditLog就可以被 删除了。一个checkpoint只发生在NameNode启动的时候。