关于大数据:大数据开发之Hadoop生态6-大核心组件

38次阅读

共计 2765 个字符,预计需要花费 7 分钟才能阅读完成。

Hadoop 第一代分布式存储计算框架
Hadoop 是一个分布式系统基础架构,由 Apache 基金会开发,它容许用户在不理解分布式底层细节的状况下,开发分布式程序,充分利用集群的威力高速运算和存储。Hadoop 蕴含丰盛的生态组件,有咱们耳熟能详的分布式文件系统 HDFS,分布式计算框架 MapReduce,以及散布式调度零碎 YARN。
HDFS 是一个高容错、高吞吐的分布式存储系统,能够被宽泛部署在高价的硬件设施之上。根本架构:

有几个概念值得记住:
• 数据块(Block)

大文件被切分成多个 block 存储,默认大小为 128M。为了保证数据可靠性,每个 block 分布式存储在多个 datanode 节点上,默认 3 正本。
• NameNode

NameNode 是 HDFS 的主节点,次要作用是维大数据培训护文件系统的目录构造,管理文件与 block 之间关系,block 与 datanode 之间关系。
• DataNode

DataNode 是 HDFS 的数据节点,次要作用是存储与治理数据块,并将信息上报给 NameNode。
MapReduce 是 Hadoop 体系中的并行计算框架, 也是一种编程模型,分成 Map 和 Reduce 两个阶段,在 Map 阶段对数据进行提取,失去无效的键值对,而后在 Reduce 阶段进行计算,失去最终的后果。流程图如:

YARN 是一个通用资源管理零碎,可为下层利用提供对立的资源管理和调度,它的引入在集群利用率、资源对立治理和数据共享等方面具备重大意义。这里不做具体介绍。
Hive 基于 Hadoop 的数据仓库
Hive 是构建在 Hadoop 之上的数据仓库工具,由 facebook 开源,最后用于解决海量结构化的日志数据统计问题。Hive 定义了一品种 SQL 查询语言 HQL,提供 SQL 查问性能,能够将 SQL 语句转换为 MapReduce 工作运行。
Hive 是一个 SQL on Hadoop 组件,次要特点是高吞吐、高延时,学习成本低(SQL),通常用于海量结构化数据离线剖析;Hive 反对 TextFile、RCFile、ORC、Parquet 等多种文件格式,Gzip、LZO、Snappy 等多种压缩格局;反对用户自定义函数。数据模型如下:

Hive 是大家比拟熟知的开源组件,少数状况下咱们只有解决如何更好、稳固、高效的应用问题即可。波及 Hive MetaStore 相干的属于高阶应用。
HBase 支流的分布式 NoSQL 数据库
HBase(Hadoop database)是一个分布式、可扩大、面向列的 NoSQL 数据库,实质上是一个 Key-Value 零碎,底层数据存储在文件系统 HDFS 上,原生反对 MapReduce 计算框架,具备高吞吐、低延时的读写特点。
HBase 周边生态成熟,具备很多丰盛的个性,比方强一致性读写、主动分区、主动故障转移、面向列等。HBase 次要用于海量数据永久性存储与超大规模并发拜访场景,目前利用十分宽泛。生态架构如:

HBase 相干的概念次要有:
• HMaster

HBase 主节点,负责节点的治理。
• RegionServer

HBase 从节点,数据节点;负责数据的读写。
• Region

HBase 表的分区,程度方向分布式存储的单元。
• Namespace
• Table
• Rowkey
• ColumnFamily
• ColumnQualifier

Spark 一站式的分布式计算引擎
Spark 是一个疾速通用的、一站式的分布式计算引擎,它是开源的类 Hadoop MapReduce 的通用并行框架,领有 Hadoop MapReduce 所具备的长处,但又不同于 MapReduce,其中间输入后果能够保留在内存中,从而不再须要频繁读写 HDFS,因而 Spark 能更好地实用于数据挖掘与机器学习等须要迭代的 MapReduce 算法。
Spark 提供了大量的库,次要包含 Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX 等。开发者能够在同一个应用程序中无缝组合应用这些库。框架图如:

总结 Spark 的技术劣势,次要有以下几点:
• 弱小的 RDD 模型
• 先进的 DAG 架构
• 高效的 Cache 机制
• 丰盛的算子操作类型
• 多语言反对
• 对立残缺的解决方案

Kafka 分布式音讯引擎及流解决平台
Kafka 是一个分布式音讯引擎与流解决平台,常常用做企业的音讯总线、实时数据管道,甚至还可把它看作存储系统。晚期 Kafka 的定位是一个高吞吐的分布式音讯零碎,目前则演变成了一个成熟的分布式音讯引擎,以及流解决平台。
高吞吐、低延时是 Kafka 显著的特点,Kafka 可能达到百万级的音讯吞吐量,提早可达毫秒级。Kafka 是典型的生产者 - 消费者模型,如下:

Kafka 生产端发送音讯到集群 Broker 节点上,具体是发到某一个 topic 的 partition 中,音讯在同一 partition 中保障程序;生产端拉取音讯进行生产解决,通常是 sink 到其余引擎如另一个 kafka、存储系统、NoSQL 数据库等。波及次要概念有:
• Producer

生产者,即音讯产生和发送的一方。
• Consumer

消费者,即拉取音讯进行解决的一方。
• Broker

Kafka 实例或角色,一个 Kafka 集群由多个 broker 形成,通常一台机器部署一个 Kafka 实例,一个实例挂了不影响其余实例。
• Topic

即主题,服务端音讯的逻辑存储单元。一个 topic 通常蕴含若干个 Partition 即分区。
• Partition

Topic 的分区,分布式存储在各个 broker 中,实现公布与订阅的负载平衡。
• Message

音讯,或称日志音讯,是 Kafka 服务端理论存储的数据。
Elasticsearch 支流的分布式搜索引擎
Elasticsearch,简称 ES,是当下支流的分布式全文搜寻,它容许用户疾速的进行存储、搜寻和剖析海量数据,底层是开源库 Lucene,开箱即用。
ES 通常为具备简单的搜寻要求或多维度查问的应用程序提供底层数据存储、搜寻能力,不仅仅是全文搜寻。根本架构图:

总结次要有以下关键词或特点:
• 全文或结构化搜寻

ES 是一个搜索引擎,可用于全文搜寻或结构化搜寻。
• 分布式

如上图示,ES 数据在程度方向是以分片(shard)以及正本分片(replica)的模式分布式存储在不同节点。
• Restful API

对外次要以 Rest API 或接口的模式提供服务。
• 近实时搜寻与更新

次要可能提供近实时的写入与搜寻能力,不太实用于那些对实时性要求比拟高的利用。
• 面向文档

ES 还是一个文档型引擎,数据在 ES 中被称为 document,用户可指定 document id,否则 ES 会主动生成一个 document id。
• Schema free

ES 是一个 Schema free 的组件,咱们能够提前定义 schema 构造,也能够不定义,ES 会主动帮咱们创立 schema 构造,动静增加字段。

正文完
 0