大数据平台技术详解

大数据平台技术详解

大数据平台技术栈

下面自底向上介绍各个层的主要项目。

1 采集层和传输层

大数据平台技术详解

采集层

在hadoop和关系型数据库之间转换数据。

Flume是一个分布式的高可用的数据收集、聚集和移动的工具。通常用于从其他系统搜集数据,如web服务器产生的日志,通过Flume将日志写入到Hadoop的HDFS中。

大数据平台技术详解

Flume

数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的数据库管理系统,我们会从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。市面上已有多种成熟的、基于 SQL 查询的抽取软件,如著名的开源项目 Apache Sqoop,然而这些工具并不支持实时的数据抽取。MySQL Binlog 则是一种实时的数据流,用于主从节点之间的数据复制,我们可以利用它来进行数据抽取。借助阿里巴巴开源的 Canal 项目,我们能够非常便捷地将 MySQL 中的数据抽取到任意目标存储中。

大数据平台技术详解

Canal

Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。

消息队列,一个分布式流平台。

阿里巴巴开源的消息队列。

2 存储层

大数据平台技术详解

存储层

HBase is the Hadoop database, a distributed, scalable, big data store.

Alluxio以内存为中心分布式存储系统,从下图可以看出, Alluxio主要有两大功能,第一提供一个文件系统层的抽象,统一文件系统接口,桥接储存系统和计算框架;第二通过内存实现对远程数据的加速访问。详情参考Alluxio document。

大数据平台技术详解

Alluxio

Redis是一个开源的内存键值数据库,相比于Memcache,支持丰富的数据结构。

Ignit是一个以内存为中心的分布式数据库,缓存和处理平台,用于事务,分析和流式工作负载,在PB级别的数据上提供接近内存速度访问数据。

从上述分析可知,Alluxio/Redis/Ignite主要都是通过内存来实现加速。

TiDB是有PingCap开源的分布式NewSQL关系型数据库。NewSQL数据库有两个流派,分别是以Google为代表的Spanner/F1和以Amazon 为代表的Aurora(极光),目前国内做NewSQL数据库主要是参考Google的Spanner架构,Google Spanner也是未来NewSQL的发展趋势。具体请查阅相关资料,或者访问Youtube,观看黄旭东的分享。

Hadoop的分布式文件系统。

Linux中备受关注的开源分布式存储系统,除了GlusterFS,当属Ceph。目前Ceph已经成为RedHat旗下重要的分布式存储产品,并继续开源。Ceph提供了块储存RDB、分布式文件储存Ceph FS、以及分布式对象存储Radosgw三大储存功能,是目前为数不多的集各种存储能力于一身的开源存储中间件。

Kudu是cloudera开源的运行在hadoop平台上的列式存储系统,拥有Hadoop生态系统应用的常见技术特性,运行在一般的商用硬件上,支持水平扩展,高可用,目前是Apache Hadoop生态圈的新成员之一(incubating)。

Kudu的设计与众不同,它定位于应对快速变化数据的快速分析型数据仓库,希望靠系统自身能力,支撑起同时需要高吞吐率的顺序和随机读写的应用场景,提供一个介于HDFS和HBase的性能特点之间的一个系统,在随机读写和批量扫描之间找到一个平衡点,并保障稳定可预测的响应延迟。可与MapReduce, Spark和其它hadoop生态系统集成。

3 计算层

大数据平台技术详解

计算层

Facebook 开源。Hive是一个构建在Hadoop上的数据仓库框架。Hive的设计目标是让精通SQL技能但Java编程技能相对较弱的分析师能对存放在Hadoop上的大规数据执行查询。

Hive的查询语言HiveQL是基于SQL的。任何熟悉SQL的人都可以轻松使用HiveSQL写查询。和RDBMS相同,Hive要求所有数据必须存储在表中,而表必须有模式(Schema),且模式由Hive进行管理。

类似Hive的同类产品:kylin druid SparkSQL Impala

KylinApache Kylin 是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

Druid 为监控而生的数据库连接池。

SparkSQL,Spark SQL is Apache Spark's module for working with structured data.

Impala,Impala是Apache Hadoop的开源,本地分析数据库。 它由Cloudera,MapR,Oracle和Amazon等供应商提供。

Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale.

TensorFlow is an open source software library for high performance numerical computation. Its flexible architecture allows easy deployment of computation across a variety of platforms (CPUs, GPUs, TPUs), and from desktops to clusters of servers to mobile and edge devices. Originally developed by researchers and engineers from the Google Brain team within Google’s AI organization, it comes with strong support for machine learning and deep learning and the flexible numerical computation core is used across many other scientific domains.

4 工具层和服务层

大数据平台技术详解

工具层和服务层

大数据平台技术详解

kylin

The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.

https://www.jianshu.com/p/c688e47dae1d

四款大数据分析OLAP引擎

OLTP(
OnlineTransactionProcessing联机事务处理)
是传统关系型数据库的应用技术,提供日常的、基本的事务处理,比如在线交易之类。OLAP(
OnlineAnalyticalProcessing联机分析处理),
是大数据分析的应用技术,提供复杂的分析操作、侧重决策支持。目前主流的OLAP引擎包括Hive、Presto、Druid、Clickhouse、Kylin、Sparksql、Greeplum,每个引擎都有它各自的特点,我们今天就来简单聊一聊,大家在实际使用时根据自己需求选择就好


第一款OLAP引擎便是Hive。它是基于Hadoop的数据仓库工具,可将结构化的数据直接转换成数据库表,HIve系统将HQL语句(类SQL语法)转化成MapReduce进行执行,本质上就是一款基于HDFS的MapReduce计算框架,使用HQL就可以对存储数据进行分析.Hive的优点是学习简单(支持SQL语法)、扩展性强(底层基于HDFS),缺点就是太慢了(数据处理任务全转换成MapReduce任务)。如果你的业务有数据分析的诉求,并且可接受一定的延迟,那么Hive是个不错的选择噢!

大数据平台技术详解

第二款OLAP引擎便是Presto。它是FaceBook开源的大数据分布式SQL查询引擎,客户端发出数据查询请求时,先有语法解析器进行解析,解析之后再给到对应的节点执行任务。Presto通过自己系统内部的查询和执行引擎来完成数据分析处理,所有的操作都在内存中完成,所以速度会快很多。Presto的优点是速度快、支持多数据源接入,缺点是容易内存溢出。

大数据平台技术详解

第三款引擎便是Clickhouse数据库。它是俄罗斯开源的一款列式数据库,在做数据分析时可直接选择某几列来作为分析属性,获取数据非常快,延迟低,如果按行读取,每次只能读取一个数据,有10000条就需要读取1000次,降低了效率。此外在存储层它实现了数据有序存储、主键索引、稀疏索引、数据分区分片、主备复制等功能。所谓数据的有序存储指的是数据在建表时可以将数据按照某些列进行排序,排序之后,相同类型的数据在磁盘上有序的存储,在进行范围查询时所获取的数据都存储在一个或若干个连续的空间内,极大的减少了磁盘IO时间;此外在计算层ClickHouse提供了多核并行、分布式计算、近似计算、复杂数据类型支持等技术能力,最大化程度利用CPU资源,提升系统查询速度。Clickhouse的优点就是快快快、分布式高可用,在数据分析这纬度看基本没有缺点。


第四款引擎便是Kylin图数据库。它是Apache基金会开源的一款数据库,也是结合当前人工智能知识图谱的一个最佳数据库。在Kylin中做数据分析的逻辑是用空间换时间,所有的数据都先预处理。在Kylin中通过Cube来做数据预聚合,比如我们想做双十二某地区某品类的销售额,因为有三个维度做分析,因此在Kylin中会建立一个三维的数据表(时间、地区、品类),在数据分析时可以拆分到三维、二维、一维,三维包含地区&品类&时间,二维包含地区品类、地区时间、品类时间,一维包含地区、品类、时间,每一维度的数据都提前聚合号存储在HBase中了,因此当数据分析时,直接拿聚合好的数据处理展示。Kylin的优点就是简单、快速,缺点就是可选数据分析维度太多。

大数据平台技术详解



展开阅读全文

更新时间:2024-09-18

标签:数据   品类   分布式   详解   框架   内存   数据库   引擎   时间   系统   资源   平台   技术

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top