cdn与isp区别Hadoop有什么区别

随着移动互联网的高速发展及移動设备的普及数据累计的速度越来越快,世界已进入大数据时代Hadoop是一个提供分布式存储和计算的软件框架,非常适合处理海量数据

經过十多年的发展,hadoop已经从传统的三驾马车HDFSMapReduce和HBase,发展到现在60+个组件组成的生态圈Hadoop生态圈可以划分为四层架构:

中间层:资源及数据管悝层,YARN、Sentry等组件;

顶层:基于计算引擎的高级封装及工具如Hive,PigMahout等。

本文从诞生背景、数据流程、优缺点、应用场景等角度出发简要介绍几个常用组件。

当数据集的大小超过单台计算机的存储能力时就有必要分区(partition)并存储到若干台单独的计算机上,HDFS(Hadoop Distributed File System)便是管理网絡中跨多台计算机存储的文件系统

HDFS适合存储超大文件,多在GB或TB级别;容错性高可运行于廉价硬件之上,普通的PC server即可;流式数据访问┅次写入多次读取。当然也有缺点:实时数据访问弱,HDFS提升了数据吞吐量而牺牲了读取数据速度实时访问数据可考虑使用HBase;存放大量嘚小文件;不支持多用户同时写入,不支持在文件任意位置进行修改

HDFS存储处理文件的最小单元为块(block),切片后的文件系统可以保存在集群的任意节点

HDFS的主从架构(master/slave)中,名字节点NameNode是主角色HDFS的大脑,负责维护整个文件系统中的目录树及其文件和目录;数据节点DataNode是从角銫在NameNode的指导下完成输入输出任务。此外第二名字节点SecondaryNode,用于定期合并命名空间镜像(FSI元数据的完整快照)和空间镜像的编辑日志(edit log)的辅助守护进程,并非NameNode的热备

HDFS客户端可通过命令行、java接口等方式对HDFS进行读取。读取文件前会对客户身份进行认证:通过信任的客户端指定用户名;或通过KerberOS等强制验证机制。客户端会首先访问NameNode确认文件存在且有访问权限后,NameNode会返回文件中第一个数据块的标号及保存该數据块的DataNode列表HDFS客户端便会直接访问最合适的DataNode。

写入文件时HDFS客户端会通过API发送打开文件的请求,确认该用户有写入文件的权限请求会送到NameNode,并建立该文件的元数据HDFS客户端收到打开文件成功的响应,然后写入数据

使用批量数据迁移工具sqoop,可以方便地将关系型数据库导叺HDFS也可以将数据从HDFS导出至关系型数据库。

使用分布式日志采集工具Flume可以收集日志并写入HDFS。

HBase是一种构建在HDFS之上的分布式、面向列的存储系统支撑业务的CRUD操作(creat增加、retrieve读取、update更新、delete删除)。HBase采用新的存储和检索技巧—BigTable列族存储是NoSQL技术的代表。

一致性:对于所有客户端具有唯一的、最新的、可读的版本的数据。

可用性:允许数据库客户端无延迟的更新内容

分区容错性:数据库分区存在通讯故障时,系統仍能响应客户端请求

NoSQL系统采用键值存储,不使用SQL作为查询语言直接用简单的API访问和操作,检索速度非常快;也不用为值指定特定的數据类型可以存储任意类型的数据,由应用层来决定返回的数据类型如返回字符串或图像;预写日志WAL功能,也保证了数据写入时不会洇集群异常而导致写入数据丢失可靠性高。

Kudu是2015年才对外公开的新的分布式存储架构与HDFS完全独立,定位是“对快速更新的数据进行快速查询”Kudu兼具了hbase的实时性、hdfs的高吞吐,以及传统数据库的sql支持。Kudu是对HDFS和HBase功能上的补充能提供快速的分析和实时计算能力,并且充分利用CPU和I/O資源支持数据原地修改,被誉为下一代分析平台的重要组成

资源及数据管理层:YARN

MRv1的主节点故障将导致整个集群不可用,主节点易成为集群性能瓶颈Map槽和Reduce槽只能运行对应的Map任务和Reduce任务,仅支持离线批处理任务因此,YARN的优点显而易见:有良好的扩展性、容错性和高资源利用率支持离线、流式的异构计算框架。

YARN采用双层调度中央调度器ResourceManagers定期接收NodeManager的资源汇报,权衡作业优先级并进行仲裁资源然后按照┅定策略(先进先出FIO、延迟调度Delay)将资源粗粒度下发给二级调度器;二级调度器ApplicationManager再分配资源给容器,执行具体的计算任务这有利于提升並发和资源利用率。

Sentry是一个Hadoop的授权模块为了对正确的用户和应用程序提供精确的访问级别,Sentry提供了细粒度级、基于角色的授权以及多租戶的管理模式RecordService通过控制访问到行和列级别来补充了Sentry。

MapReduce是面向大数据并行处理的计算模型、框架和平台它借鉴了分而治之的思想,将数據处理过程划分成Map(映射)、Reduce(化简)两步

数据抽象为键值对后作为输入,map函数输出新的键值对作为中间输出结果MapReduce计算框架会将中间輸出结果数据聚合,将键相同的数据分发给reduce函数处理后产出另外一系列键值对作为输出。

利用这种思想可以将复杂的数据分析问题转囮为一系列MR作业,实现分布式计算从而对海量数据进行复杂的数据分析。由于大量的中间结果写到磁盘并通过网络传输很耗时所以一個普通的MR作业也要在分钟级别完成。

Spark是基于内存计算的大数据并行计算框架与MapReduce相比,Spark基于内存的计算要快100倍以上可以通过基于内存来高效处理数据流。Spark支持Java、Python和Scala的API还支持超过80种高级算法,使用户可以快速构建不同的应用Spark还提供统一数据处理平台,可以批处理(Spark Core)、實时流处理(Spark

Spark可以从Kafka、Flume、HDFS等消费数据处理后的结果可存储在内存数据库Redis。

Redis与HBase的区别:Redis是内存型KV系统处理的数据量远小于HBase;Redis适合做缓存,也可以在“读写分离”的场景下“读库”特别是Hadoop或Spark的分析结果;Redis的吞吐和时延远远优于HBase。

Hive是基于hadoop的数仓工具可以用来进行ETL,可以对hadoop嘚海量数据进行存储、查询和分析

一般Hive独立部署在集群之外的节点。我们通过命令行接口向Hive提交查询命令命令会进入Driver模块,对命令进荇解释和编译优化按照生成的执行计划执行。执行计划会将查询分解为若干个MR作业所以Hive也是适合在离线下进行数据的操作,不适合在線实时查询和操作

MetaStore是Hive的元数据的集中存放地,包含了元数据服务和元数据存储Hive将HDFS上的结构化数据通过元数据映射为一张张表,这样用戶才可以通过查询语言HiveQL对数据进行查询元数据存储通常由一个关系型数据库(MySQL、Oracle等)完成。

Hive不支持事务所以Hive不适合OLTP(联机事务处理),而更倾向于OLAP(联机分析处理)但是由于Hive不能做到“联机”的部分,所以Hive更合适的定位是离线计算

此外,Hive没有索引查询时的全表扫描导致查询延时很严重。为了满足交互式查询Facebook于2013年开源了查询引擎Presto,比Hive性能要好10倍多

}

我要回帖

更多关于 cdnslb区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信