大数据方案及架构|大数据基础及技术架构体系

2023年05月10日 09:54:55 46阅读 0评论

大数据可谓是最近几年比较火热的词了,大数据几乎影响着我们的日常生活,尤其新冠肺炎疫情以来,我们国家充分利用了大数据技术实现疫情的精准防控和管理,行程记录、核酸记录、疫苗接种记录等无一不是大数据技术应用的体现。那么什么是大数据,大数据都包含哪些技术?今天我们一起来了解下大数据和大数据体系架构。

大数据,顾名思义就是体量很大的数据。麦肯锡全球研究所给出的大数据的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。

那么,大数据到底要怎么进行获取,存储、管理和应用呢?谈到这就不得不提hadoop,hadoop的诞生实现了大数据的存储和计算成为现实。hadoop最早起源于lucene下的nutch项目。nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。2003年、2004年google发表的三篇论文为该问题提供了可行的解决方案。

hadoop并不是单一的大数据处理工具,它是由多个大数据组件构成。其底层是 hadoop distributed file system(hdfs 分布式文件系统),它存储 hadoop 集群中所有存储节点上的文件。hdfs的上一层是大数据的计算引擎mapreduce ,该引擎由jobtrackers和tasktrackers组成等等。随着近几年大数据技术的迅速发展,已形成从数据采集、数据存储、数据计算、数据分析、数据共享应用等完整的大数据技术组件。

大数据方案及架构(大数据基础及技术架构体系)(1)

大数据技术架构

1.大数据采集工具

sqoop、datax、kettle等数据采集工具可满足大部分关系型数据库及主流的非关系型数据库的数据采集任务;实时日志数据可通过flume实现数据的采集。

sqoop:是apache下的项目,其主要用于在hadoop(hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : mysql ,oracle ,postgres等)中的数据导进到hadoop的hdfs中,也可以将hdfs的数据导进到关系型数据库中。

datax:datax是阿里云 dataworks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。datax 实现了包括 mysql、oracle、oceanbase、sqlserver、postgre、hdfs、hive、ads、hbase等各种异构数据源之间高效的数据同步功能。

kettle:kettle最早是一个开源的etl工具,全称为kde extraction, transportation, transformation and loading environment。kettle以java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发etl数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持etl数据管道加入机器学习算法。

flume:flume最早是cloudera提供的日志收集系统,是apache下的一个孵化项目,flume支持在日志系统中定制各类数据发送方,用于收集数据。

2.大数据存储工具

hdfs:分布式文件系统,所有采集到大数据平台内的数据都可以存储到hdfs中。

kafka:kafka是由apache软件基金会开发的一个开源流处理平台,由scala和java编写。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。准确的说kafka是消息中间件,不属于数据存储工具,不过由于其支持数据的持久化存储,通常实时数据也会通过kafka保留一定周期的历史数据,所以经常在数据实时数据处理时用kafka作为存储工具。

3.大数据计算引擎

大数据计算引擎包括批计算引擎mapreduce、spark、tez等,实时数据计算引擎包括flink、spark streaming等。

mapreduce:mapreduce是一个基于集群的高性能并行计算平台(cluster infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。

spark:apache spark是专为大规模数据处理而设计的快速通用的基于内存的大数据计算引擎。

flink:apache flink是由apache软件基金会开发的开源流处理框架,其核心是用java和scala编写的分布式流数据流引擎。flink以数据并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序。

spark streaming:构建在spark上处理stream数据的框架,基本的原理是将stream数据分成小的时间片段(几秒),以类似batch批量处理的方式来处理这小部分数据。

hive:hive是基于hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供sql查询功能,能将sql语句转变成mapreduce任务来执行。

tez: tez是一个hive的运行计算引擎,由于没有中间存盘的过程,性能优于mapreduce。tez可以将多个依赖作业转换成一个作业,这样只需要写一次hdfs,中间节点少,提高作业的计算性能。

4.大数据分析引擎

基于大数据的算法分析引擎包括机器学习工具spark mllib,大数据olap引擎包括clickhouse、hbase等。

spark mllib:spark mllib是spark的机器学习(ml)库。旨在简化机器学习的工程实践工作,并方便扩展到更大规模。mllib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道api。

clickhouse:clickhouse是俄罗斯的yandex于2016年开源的用于在线分析处理查询(olap :online analytical processing)mpp架构的列式存储数据库(dbms:database management system),其能够使用sql查询实时生成分析数据报告。clickhouse的全称是click stream,data warehouse。

hbase:hbase是一个分布式的、面向列的开源数据库,hbase在hadoop之上提供了类似于bigtable的能力。hbase是apache的hadoop项目的子项目。hbase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是hbase基于列的而不是基于行的模式。

时序数据库:时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。常见的时序数据库有influxdb 、prometheus 、graphite 等。

redis:redis(remote dictionary server ),即远程字典服务,是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。

以上就是大数据技术的基础,下一节我们一起来学习了解各大数据技术组件的应用场景。

,

以上就是文章“大数据方案及架构|大数据基础及技术架构体系”全部内容,如需学习更多电脑、手机使用经验方法教程、软件使用知识请在本站搜索,科普知识网专注于普及各类生活小常识、冷知识、等生活中常用的操作经验;如果本篇文章对您有帮助,请不吝支持本站。

本文链接:http://www.puzhishi.com/jingyan/227311.html

1.免责声明:本文编辑科普网——文章若无特殊说明,均属本站原创,若转载文章请注明网址。

2.本站除部分作品系原创外,其余均来自网络或其它渠道,本站保留其原作者的著作权!如有侵权,请与站长联系!

发表评论

快捷回复: 表情:
评论列表 (暂无评论,46人围观)

还没有评论,来说两句吧...

目录[+]