大数据之大数据技术架构

article/2025/9/12 4:07:38

     上期我们说到大数据的概念,其实,大数据比我们想象中的还要复杂,本期,我们主要从技术的角度介绍一下大数据的知识。

      大数据技术是一系列技术的总称,它是集合了数据采集与传输、数据存储、数据处理与分析、数据挖掘、数据可视化等技术,是一个庞大而复杂的技术体系。

       根据大数据从来源到应用,实现传输的流程,可以将大数据技术架构分为数据收集层、数据存储层、数据处理层、数据治理与建模层、数据应用层。

​                                       

                                                            大数据技术架构图

一、数据收集层

        大数据收集层主要采用了大数据采集技术,实现对数据的ETL操作,ETL,是英文Extract-Transform-Load的缩写,数据从数据来源端经过抽取(extract)、转换(transform)、加载(load)到目的端。用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据模型,将数据加载到数据仓库中去,最后对数据仓库中的数据进行数据分析和处理。数据采集位于数据分析生命周期的重要一环,它通过传感器数据、社交网络数据、移动互联网数据等方式获得各种类型的结构化、半结构化及非结构化的海量数据。由于采集的数据种类错综复杂,对于这种不同种类的数据。

在现实生活中,数据产生的种类很多,并且不同种类的数据产生的方式不同。对于大数据采集的数据类型,主要有以下三类:

(1)互联网数据:主要包括互联网平台上的公开信息,主要通过网络爬虫和一些网站平台提供的公共API(如Twitter和新浪微博API)等方式从网站上获取数据。这样就可以将非结构化数据和半结构化数据的网页数据从网页中提取出来。并将其提取、清洗、转换成结构化的数据,将其存储为统一的本地文件数据。目前常用的网页爬虫系统有Apache Nutch、Crawler4j、Scrapy等框架;

(2)系统日志数据:许多公司的业务平台每天都会产生大量的日志数据。对于这些日志信息,我们可以得到出很多有价值的数据。通过对这些日志信息进行日志采集、收集,然后进行数据分析,挖掘公司业务平台日志数据中的潜在价值。为公司决策和公司后台服务器平台性能评估提高可靠的数据保证。系统日志采集系统做的事情就是收集日志数据提供离线和在线的实时分析使用。目前常用的开源日志收集系统有Flume、Scribe等;

(3)数据库数据:些企业会使用传统的关系型数据库MySQL和Oracle等来存储数据。除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。企业每时每刻产生的业务数据,以数据库一行记录形式被直接写入到数据库中。

                                  

 

                                                                                 数据采集技术

二、数据存储层

当大量的数据收集完后,我们需要对大数据进行存储。数据的存储分为持久化存储和非持久化存储。持久化存储表示把数据存储在磁盘中,关机或断电后,数据依然不会丢失。非持久化存储表示把数据存储在内存中,读写速度快,但是关机或断电后,数据丢失。

对于持久化存储而言,最关键的概念就是文件系统和数据库系统。常见的分布式文件系统HDFS、对应的分布式非关系型数据库系统Hbase,以及另一个非关系型数据库MongoDB。

而支持非持久化的系统,包括Redis、Berkeley DB和Memcached,则为前述的存储数据库提供了缓存机制,可以大幅地提升系统的响应速度,降低持久化存储的压力。

三、数据处理层

当我们把数据收集好了、数据存储以及读写也都没有问题,我们手握着这一堆数据干嘛?除了保存原始数据,做好数据备份之外,我们还需要考虑到利用他们产生更大的价值。那么首先我们需要对这些数据进行处理。大数据处理分为两类,批量处理(离线处理)和实时处理(在线处理)。

在线处理就是指对实时响应要求非常高的处理,如数据库的一次查询。而离线处理就是对实时响应没有要求的处理,如批量地压缩文档。通过消息机制可以提升处理的及时性。

Hadoop的MapReduce计算是一种非常适合的离线批处理框架。为了提升效率,下一代的管理框架YARN和更迅速的计算框架Spark最近几年也在逐步的成型之中。在此基础上,人们又提出了hive、pig、impala和spark SQL等工具,进一步简化了某些常见的查询。

Spark Streaming和Storm则在映射和归约的思想基础上,提供了流式计算框架,进一步提升处理的实时性。

同时可以利用ActiveMQ和Kafka这样的消息机制,将数据的变化及时推送到各个数据处理系统进行增量的更新。由于消息机制的实时性更强,通常还会与spark streaming、storm这样的流式计算结合起来使用。

四、数据治理与建模层

数据收集、数据存储和数据处理是大数据架构的基础设置。一般情况下,完成以上三个层次的数据工作,已经将数据转化为基础数据,为上层的业务应用提供支撑。但是大数据时代,数据类型多样,单位价值稀疏的特点,要求对数据进行治理和融合建模。通过利用R语言、Python等对数据进行ETL预处理,然后再根据算法模型、业务模型进行融合建模,从而更好地为业务应用提供优质底层数据。

在对数据进行ETL处理和建模后,需要对获取的数据进行进一步管理,可以采用相关的数据管理工具,包括元数据管理工具、数据质量管理工具、数据标准管理工具等,实现数据的全方位管理。

五、数据应用层

数据应用层是大数据技术和应用的目标。通常包括信息检索、关联分析等功能。Lucene、Solr和Elasticsearch这样的开源项目为信息检索的实现提供了可能。

大数据架构为大数据的业务应用提供了一种通用的架构,还需要根据行业领域、公司技术积累以及业务场景,从业务需求、产品设计、技术选型到实现方案流程上具体问题具体分析,利用大数据可视化技术,进一步深入,形成更为明确的应用,包括基于大数据交易与共享、基于开发平台的大数据应用、基于大数据的工具应用等。

 


http://chatgpt.dhexx.cn/article/GCoIItGk.shtml

相关文章

常用的几种大数据架构剖析

数据分析工作虽然隐藏在业务系统背后,但是具有非常重要的作用,数据分析的结果对决策、业务发展有着举足轻重的作用。随着大数据技术的发展,数据挖掘、数据探索等专有名词曝光度越来越高,但是在类似于Hadoop系列的大数据分析系统大…

一张图解释清楚大数据技术架构,堪称阿里的核心机密

我们先来看看这张图,这是某公司使用的大数据平台架构图,大部分公司应该都差不多: 从这张大数据的整体架构图上看来,大数据的核心层应该是:数据采集层、数据存储与分析层、数据共享层、数据应用层,可能叫法有…

一文搞懂Matlab的3种取整函数(round、ceil、floor)

1、四舍五入取整:round(x) 对实数和复数(实部和虚部)都是四舍五入取整 2、向上取整:ceil(x) 对实数和复数(实部和虚部)都是向上取整 3、向下取整:floor(x) 对实数和复数(实部和…

MATLAB取整及位数

Matlab取整函数: fix, floor, ceil, round 函数操作Y fix(X)向零取整Y floor(X)向下取整Y ceil(X)向上取整Y round(X)四舍五入取整 Y fix(X)将 X 的每个元素朝零方向四舍五入为最近的整数。对于正方向的 X,fix 的行为与 floor 相同。对于负方向的 X&#xff…

Matlab之取整函数

一、函数取整函数 函数取整,有如下四种函数 floor():向下取整ceil():向上取整round():取最近整数fix():向0取整 二、例程 1、floor():向下取整 disp(floor-向下取整); A1floor(1.2) A2floor(2.5) A3floor(-2.5) 2、ceil():向上取整 disp(ceil-向上取整); B1ce…

matlab中的取整函数(ceil、floor、round)

matlab中的取整函数主要有三种:ceil()、floor()、round() 1.ceil():在英文中,是天花板的意思,有向上的意思,所以,此函数是向上取整,它返回的是大于或等于函数参数,并且与之最接近的整数。 ceil…

Java中的拦截器和过滤器有什么区别

本文收录于JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看 (一)什么是过滤器 过滤器Filter基于Servlet实现,过滤器的主要应用场景是对字符编码、跨域等问题进行过滤。Servlet的工作原理是拦截配置好的…

过滤器和拦截器区别以及执行顺序

过滤器和拦截器区别 觉得这个总结的很好,所以用来借鉴借鉴 摘抄于网络,侵删 过滤器和拦截器执行顺序 在SpringBoot中编写测试代码 自定义过滤器 /*** Author: xiaoshijiu* Date: 2019/5/22* Description: 自定义过滤器*/ public class MyFilter exten…

过滤器和拦截器总结

过滤器和拦截器在日常业务开发中不是经常用到,近来项目中偶尔遇到了,对过滤器和拦截器进行了一次系统学习,现总结如下。 一、过滤器Filter 1.1 什么是过滤器 过滤器是Servlet的高级特性之一,是实现Filter接口的Java类。其基本功能…

Java 过滤器与拦截器的区别

什么是过滤器(Filter) 过滤器,是在java web中将你传入的request、response提前过滤掉一些信息,或者提前设置一些参数。然后再传入Servlet或Struts2的 action进行业务逻辑处理。比如过滤掉非法url(不是login.do的地址请…

Java拦截器和过滤器的区别

过滤器和拦截器的区别: ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。   ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。   ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。  …

Java过滤器与拦截器的区别

Java过滤器与拦截器的区别 1. 过滤器与拦截器概述1.1 过滤器 Filter1.2 拦截器 interceptor 2. 过滤器与拦截器区别3. 过滤器与拦截器实现3.1 过滤器(Filter)3.2 拦截器 (Interceptor)3.3 拦截器WebMvc配置3.4 切片(Aspect) 4. 过…

C语言pow函数的调用

1.pow函数的含义&#xff1a;在math.h的头文件中是指a的b次方。 2.对于pow函数的直接应用&#xff1a; #include<stdio.h> #include<math.h> //***math头文件 int main() {double a2,b3;double result;resultpow(2,3); …

mysql pow函数怎么用_pow函数怎么用

PHP pow函数表示指数表达式。 pow函数怎么用&#xff1f; php pow()函数 语法 作用&#xff1a;pow()函数的作用是将一个数进行n次方计算后返回 语法&#xff1a;pow(X,Y); 参数&#xff1a; X表示要做处理的数字 Y表示指定n次方中的n数值 说明&#xff1a;返回X的Y次方幂&…

c语言的pow函数运用

在c语言当中我们要计算一个数的n次方时候&#xff0c;可以使用多种方法&#xff0c;但是也有一种比较简单的方法&#xff0c;便是调用一个函数pow函数。 pow函数在使用时候需要引用头文件#include<math.h>&#xff0c;接下来可以引用一个例子&#xff1a; 如果现在假设我…

C语言中的pow函数

在我们学习C语言时&#xff0c;在一些算法的问题上常常会遇到让我们求一个数的n次方&#xff0c;这时候为了方便我们可以使用C语言函数库给我们的pow函数&#xff0c;*因为这是从C语言函数库调用出来的所以我们在使用前需要引入头文件#include<math.h>。 比如当我们输入…

pow函数python_python pow函数怎么用

python中的pow函数的功能是计算x的y次幂。本篇文章将带大家一起了解一下&#xff0c;pow()函数在Python中的用法。感兴趣的朋友了解一下。 以下是 math 模块 pow() 方法的语法:import math math.pow( x, y ) 内置的 pow() 方法pow(x, y[, z]) 函数是计算x的y次方&#xff0c;如…

计算机里pow函数是什么,pow函数是什么?

pow函数&#xff1a; C/C中的数学函数&#xff1b; pow() 函数用来求 x 的 y 次幂(次方)&#xff0c;x、y及函数值都是double型 pow()用来计算以x 为底的 y 次方值&#xff0c;然后将结果返回。设返回值为 ret&#xff0c;则 ret xy。 可能导致错误的情况&#xff1a; 如果底数…

WebClient 连接池配置

背景 项目中调用第三方接口&#xff0c;第三方接口响应时间不稳定&#xff0c;并且并发越大响应时间越长&#xff0c;如果使用BIO模式可能会导致服务器连接占用过高&#xff0c;所以采用WebClient reactor模式来调用第三方接口。 网络IO模型 连接池相关配置 maxConnections…