大数据架构设计

一、需求分析
在进行大数据平台建设前,需要对需求进行充分的分析,包括数据源、数据类型、数据量、数据处理方式、数据使用目的等方面进行分析。


二、技术选型
大数据平台建设所需的技术包括数据存储、数据处理、数据分析等方面。在进行技术选型时,需要根据需求分析结果进行选择

1)传统的IT领域中,企业的服务器资源(内存、cpu等)是有限的,也是固定的。服务器的应用场景却是灵活多变的。例如,今天临时上线了一个系统,需要几台服务器,过了几天,需要把这个系统下线,把这几台服务器清理出来。

因此,分布式资源管理系统应运而生,常见的包括YARN,Kubernetes和Mesos

  1. 大数据底层基础技术框架主要是指Zookeeper

3) 在选择全文检索引擎工具时,可以从易用性、扩展性、稳定性、集群运维难度、项目集成程度、社区活跃度几个方面进行对比。Lucene、Solr和Elasticsearch的对比

对比项

£Lucene

£Solr

£Elasticsearch

易用性

扩展性

稳定性

集群运维难度

不支持集群

项目集成程度

社区活跃度

4)任务调度技术框架包括Azkaban、Ooize、DolphinScheduler等

它们适用于普通定时执行的例行话任务,以及包含复杂依赖关系的多级任务进行调度,支持分布式,保证调度系统的性能和稳定性

技术选型如下:

比较项

£Azkaban

£Ooize

£DolphinScheduler

任务类型

Shell脚本及大数据任务

Shell脚本及大数据任务

Shell脚本及大数据任务

任务配置

通过自定义DSL语法配置

通过XML文件配置

通过页面拖拽方式

任务暂停

不支持

支持

支持

高可用(HA)

通过DB支持HA

通过DB支持HA

支持HA(多Master和Worker)

多租户

不支持

支持

支持

邮件告警

支持

支持

支持

权限控制

粗粒度支持

粗粒度支持

细粒度支持

成熟度

易用性

所属公司

LinkedIn

Cloudeara

中国易观

5)云平台技术选型:

微服务

£SpringCloud

£Dubbo

£Spring Cloud Netflix

£Service Mesh(下一代)

服务网关

SpringCloudGateway

Zuul、gateway

Zuul、gateway

Envoy代理组件

认证中心

Auth2.0

Auth2.0

Auth2.0

Auth2.0

注册中心、配置中心

Nacos

Zookeeper

Eureka、Zookeeper、Consul

PilotDiscovery 

服务调用

Ribbon LoadBalancer、Feign、OpenFeign

RPC

Ribbon、LoadBalancer、Feign、OpenFeign

istio

服务监控

actuator

链路追踪

skywalking 

熔断降级

sentinel 

Hystrix、resilience4j、Sentinel

Hystrix、resilience4j、Sentinel

virtualservice组件 DestinationRule组件

分布式文件

本地存储、MinIO存储、FastDfs存储

分布式事务

seata 

分布式日志

ELK(Elasticsearch、 Logstash、Kibana)

应用容器

docker

docker

docker

docker

6)关系型数据库选型:

数据库

是否开源

适用场景

优缺点

£MySQL

方向 web网站系统,日志记录系统,数据仓库系统,嵌入式系统

优点

1. 体积小、速度快、总体拥有成本低,开源,提供的接口支持多种语言连接操作。

2. 支持多种操作系统。

3. MySQL 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySQL 能很容易充分利用CPU。

4. MySQL 有一个非常灵活而且安全的权限和口令系统。当客户与MySQL 服务器连接时,他们之间所有的口令传送被加密,而且MySQL 支持主机认证

缺点

1. 不支持热备份。

2. MySQL不支持自定义数据类型

3. MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。

4. MySQL对存储过程和触发器支持不够良好。

5. 尽管 MySQL 理论上仍是开源产品,也有人抱怨它诞生之后更新缓慢。然而,应该注意到有一些基于 MySQL 并完整集成的数据库(如 MariaDB),在标准的 MySQL 基础上带来了额外价值。

6. MySQL对XML支持不够良好

£Oracle

Oracle适用场景如下:大型数据库软件,收费,支撑体系完善,强大,安全性高(适用于服务器比较强大的单节点或者集群环境)。
大都集中于一些大型企业,一些传统行业的数据化业务中,比如:银行、金融这一类,对于可用性,安全性,健壮性,实时性要求极高的业务。

优点

1. Oracle 能在所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持。
2. Oracle 并行服务器通过使组结点共享同簇工作来扩展windownt能力提供高用性和高伸缩性簇解决方案windowsNT能满足需要用户把数据库移UNIXOracle并行服务器对各种UNIX平台集群机制都有着相当高集成度。
3. 获得最高认证级别的ISO标准认证。
4. Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录。
5. Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接。
6. Oracle 长时间开发经验完全向下兼容得广泛应用地风险低。

缺点

1. 对硬件的要求很高。
2. 价格比较昂贵。
3. 管理维护麻烦一些。
4. 操作比较复杂,需要技术含量较高

£SQL server

优点

1. 易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等;
2. 为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。 作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力;

缺点


2. SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限;

3. 没有获得任何安全证书。

4. SQL Server 多用户时性能佳。

£DB2

低延迟交易

实时分析

IBM Db2 由世界领先的数据库专家设计,使开发人员、DBA 和企业架构师能够运行低延迟事务和实时分析,以应对最苛刻的工作负载。

从微服务到 AI 工作负载,Db2 是经过测试、具有弹性的混合数据库,为运行世界的系统提供极高的可用性、内置的精细安全性、轻松的 可扩展性和智能自动化。

极高的可用性

关键任务环境需要持续可用性和对故障的零容忍。部署大型机级的始终在线可用性,以不间断地运行您的工作负载。

内置精细安全

安全是我们的核心。通过动态和静态加密、广泛的审计、数据屏蔽、行和列访问控制、基于角色的访问等来保护您的数据。没有人像您一样了解您的数据。让我们保持这种状态。

轻松的可扩展性

Db2 与您一起成长。随着工作负载的发展和性能需求的变化,纵向扩展和扩展。

智能自动化

内置容器操作器可自动执行耗时的数据库任务,同时保持您的业务正常运行。构建应用程序,同时利用我们先进的工作负载管理自动化和 ML 优化查询引擎。

£PostgreSql

PostgreSQL数据库的主要有以下应用场景:
(1)企业数据库,如ERP
(2)含 LBS (地图相关)的应用,如大型游戏、O2O 等应用需要支持世界地图、附近的商家,两个点的距离等能力
(3)数据仓库和大数据
(4)建站或 App
(5)广泛用于读写速度高和数据一致性高的大型系统
(6)PostgreSQL性能最适用于需要执行复杂查询的系统

优点

1. PostgreSQL 是一个开源的,免费的,同时非常强大的关系型数据管理系统。

2. PostgreSQL 背后有热忱而经验丰富的社区,可以通过知识库和问答网站获取支持,全天候免费。

3. 即使其本身功能十分强大,PostgreSQL 仍附带有许多强大的开源第三方工具来辅助系统的设计、管理和使用。

4. 可以用预先存储的流程来程序性扩展 PostgreSQL ,一个高级的关系型数据库理应如此。

5. PostgreSQL 不只是一个关系型数据库,还是一个面向对象数据库——支持嵌套,及一些其他功能。

缺点

1. 对于简单而繁重的读取操作, 超过了 PostgreSQL 的杀伤力,可能会出现比同行(如MySQL)更低的性能。

2. 按给出的该工具的性质,从普及度来说它还缺乏足够后台支撑,尽管有大量的部署——这可能会影响能够获得支持的容易程度

7)K-V数据库:

£memcached

£redis

类型

key-value

key-value

过期策略

支持

支持

数据类型

单一数据类型

五大数据类型

持久化

不支持

支持

主从复制

不支持

支持

虚拟内存

不支持

支持

8)文档数据库:

£MongoDB

£CouchDB

语言

 C++ 

Erlang 

是否开源

优点

高性能

多主复制

  • 架构设计
    大数据平台建设需要进行架构设计,包括数据采集、数据存储、数据处理、数据分析等方面。在进行架构设计时,需要考虑数据流转、系统可扩展性、高可用性等因素。

四、数据采集
数据采集是大数据平台建设的重要环节,需要根据不同的数据源进行采集。常见的数据源包括数据库、文件、网络等。在进行数据采集时,需要考虑数据采集频率、数据采集量、数据采集质量等因素。数据采集也被称数据同步。随着车联网技术兴起,产生了海量数据。这些数据散落在各个地方,我们需要将这些数据融合到一起,然后从这些海量数据中计算出一些有价值的内容。此时第一步需要做的就是数据采集过来。

数据采集技术框架包括以下几种。

  1. Flume、Logstash和FileBeat常用于日志数据实时监控采集

技术选型如下:

对比项

£Flume

£ Logstash

£ FileBeat

来源

Apache

Elastic

Elastic

开发语言

Java

Jruby

Go

内存消耗

CPU消耗

容错性

优秀,内部有事务机制

优秀,内部有持久化队列

负载均衡

支持

支持

支持

插件

丰富的输入和输出插件

丰富的输入和输出插件

只支持文件数据采集

数据过滤能力

提供了拦截器

强大的过滤能力

有过滤能力,但较弱

二次开发难度

容易

社区活跃度

资料完整度

  1. Sqoop和Datax常用于关系型数据库离线数据采集

技术选型如下:

对比项

£Sqoop

£DataX

来源

Apache

阿里巴巴

开发语言

Java

Java

运行模式

MapReduce

单进程多线程

分布式

支持

不支持

执行效率

数据源类型

仅支持关系型数据库和Hadoop相关存储系统

支持20分钟

扩展性

一般

较好(提供插件机制)

社区活跃度

活跃

活跃

资料完整度

完整

完整

  1. Cannal和Ma'xwell常用于关系型数据库实时数据采集

技术选型如下:

对比项

£Canal

£Maxwell

来源

阿里巴巴

Zendesk

开发语言

JAVA

JAVA

数据格式

格式自由

JSON格式

HA

支持

支持

Bootstrap功能

不支持

支持

分区

支持

支持

随机读

支持

支持

社区活跃度

活跃

活跃

资料完整度

完整

完整

五、数据存储
大数据平台建设需要进行数据存储,常用的存储方式包括HDFS、HBase、Kudu、Kafka等。在进行数据存储时,需要考虑数据存储量、数据存储速度、数据存储可靠性等因素

技术选型如下:

对比项

£HDFS

£HBase

£Kudu

£Kafka

优点

支持海量数据存储

支持海量数据存储、支持单条数据修改

支持数据修改、支持SQL数据分析

海量数据临时缓冲存储,提供高吞吐量肚读写

缺点

不支持单条数据修改

不支持传统Sql语法

定位不明,实际使用有限


六、数据处理

大数据平台建设需要对数据进行处理,包括数据清洗、数据预处理、数据转换等方面。常用的数据处理技术包括MapReduce、Spark等。在进行数据处理时,需要考虑数据处理速度、数据处理质量等因素。

数据计算分为离线数据计算和实时数据计算

  1. 离线数据计算

大数据中的离线数据计算引擎经过十几年的发展,到目前为止主要发生了3次大的变更

MapReduce可以称得上是大数据行业的第一代离线数据计算引擎,主要用于姐姐大规模分布式并行计算。MapReduce计算引擎的核心思想是,将计算逻辑抽象成Map和Reduce两个阶段进行处理

Tez计算引擎在大数据技术生态圈中的存在感较弱,实际工作中很少单独使用Tez去开发程序

Spark最大的特点就是内存计算:任务执行阶段的中间结果全部放在内存中,不需要读写磁盘,极大的提高了数据的计算性能。Spark提供了大量高阶函数()

  1. 实时数据计算

用于实时数据计算的工具主要有三种

Storm主要用于实现实时数据分布式计算

Flink属于新一代实时数据分布式计算引擎,其计算性能和生态圈都优于Storm

Spark中的SparkStreaming组件也可以提供基于秒级别的实时数据分布式计算功能

技术选型如下:

比较项

£Storm

£Spark Streaming

£Flink

计算模型

Native

Micro-Batch

Native

API类型

组合式

声明式

声明式

语义级别

At-Least-Once

Exectly-Once

Exectly-Once

容错机制

Ack

Checkpoint

Checkpoint

状态管理

应用场景


七、数据分析

大数据平台建设需要对数据进行分析,包括数据挖掘、数据可视化、数据预测等方面。常用的数据分析技术包括机器学习、数据挖掘等。在进行数据分析时,需要考虑数据分析结果的准确性、数据分析时间等因素。数据分析技术框架包括Hive、Impala、Kylin、Clickhouse、Druid、Drios等。Hive的执行效率一般,但是稳定性极高Imoala基于内存可以提供优秀的执行效率,但是稳定性一般。Kylin通过预计算可以提供PB级别数据毫秒级别响应。

技术选型如下:

比较项目

计算引擎

计算性能

稳定性

数据规模

SQL支持程度

£Hive

MapReduce

TB级别

HQL

£Impala

自研MPP

TB级别

兼容HQL

£Kylin

MapReduce/Spark

TB和PB级别

标准SQL

Clickhouse、Druid和Drois属于典型的实时OLAP数据分析引擎,主要应用在实时数据分析领域,它们之间的区别如下

Druid和Doris是可以支持高并发的,ClickHouse的并发能力有限,Druid中SQL支持是有限的

Druid和ClickHouse的成熟程度目前相对比较高,Doris处于快速发展阶段。

比较项

查询性能

高并发

实时数据插入

实时数据更新

JOIN操作支持

SQL支持程度

成熟程度

运维程度

£Druid

支持

不支持

有限

有限

£ClickHouse

支持

有限

非标准SQL

£Doris

支持

有限

较好


八、安全性设计
大数据平台建设需要进行安全性设计,包括数据安全、系统安全等方面。在进行安全性设计时,需要考虑数据的敏感性、系统的可靠性等因素。
九、系统测试

大数据平台建设完成后,需要进行系统测试,包括功能测试、性能测试、安全测试等方面。在进行系统测试时,需要考虑测试的全面性和可靠性。
十、系统维护
大数据平台建设完成后,需要进行系统运维。系统运维包括系统监控、系统维护、系统升级等方面。在进行系统运维时,需要考虑系统稳定性和可用性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值