当下最简洁的大数据各种技术介绍与总结

  • 当下最简洁的大数据各种技术介绍与总结
    • 1.大数据的发展历史
      • 1.1 启蒙阶段:数据仓库的出现
      • 1.2 技术变革:Hadoop诞生
      • 1.3 数据商业化:数据湖系统
      • 1.4 数据工厂时代:大数据平台兴起
      • 1.5 数据价值时代:数据中台
    • 2.大数据的核心概念
      • 2.1 什么是大数据?
      • 2.2 什么是数据仓库?
      • 2.3 传统数据仓库 vs 新一代数据仓库
    • 3.大数据平台的通用架构
      • 3.1 数据传输层
      • 3.2 数据存储层
      • 3.3 资源管理层
      • 3.4 数据计算层
        • 3.4.1 离线计算框架
        • 3.4.2 实时计算框架
      • 3.5 多维分析层
    • 4.大数据的通用处理流程
    • 5.大数据下的数仓体系架构
    • 总结

当下最简洁的大数据各种技术介绍与总结

本文重点是对大数据知识扫盲和总结,内容分成以下5个部分:

  1. 大数据的发展历史
  2. 大数据的核心概念
  3. 大数据平台的通用架构和技术体系
  4. 大数据的通用处理流程
  5. 大数据下的数仓体系架构

1.大数据的发展历史

了解下大数据将近30年的发展历史,共经历了5个阶段。

1.1 启蒙阶段:数据仓库的出现

20世纪90年代,商业智能(也就是我们熟悉的BI系统)诞生,它将企业已有的业务数据转化成为知识,帮助老板们进行经营决策。比如零售场景中:需要分析商品的销售数据和库存信息,以便制定合理的采购计划。

显然,商业智能离不开数据分析,它需要聚合多个业务系统的数据(比如交易系统、仓储系统),再进行大数据量的范围查询。而传统数据库都是面向单一业务的增删改查,无法满足此需求,这样就促使了数据仓库概念的出现。

传统的数据仓库,第一次明确了数据分析的应用场景,并采用单独的解决方案去实现,不依赖业务数据库。

1.2 技术变革:Hadoop诞生


2000年左右,PC互联网时代来临,同时带来了海量信息,很典型的两个特征:

  • 数据规模变大:Google、雅虎等互联网巨头一天可以产生上亿条行为数据。

  • 数据类型多样化:除了结构化的业务数据,还有海量的用户行为数据,以图像、视频为代表的多媒体数据。

很显然,传统数据仓库无法支撑起互联网时代的商业智能。

Hadoop相对于传统数据仓库,有以下优势:

  • 完全分布式,可以采用廉价机器搭建集群,完全可以满足海量数据的存储需求。
  • 弱化数据格式,数据模型和数据存储分离,可以满足对异构数据的分析需求。

随着Hadoop技术的成熟,2010年的Hadoop世界大会上,提出了「数据湖」的概念。

1.3 数据商业化:数据湖系统

数据湖是一个以原始格式存储数据的系统。

企业可以基于Hadoop构建数据湖,将数据作为企业的核心资产。由此,数据湖拉开了Hadoop商业化的大幕。

1.4 数据工厂时代:大数据平台兴起

商用Hadoop包含上十种技术,整个数据研发流程非常复杂。为了完成一个数据需求开发,涉及到数据抽取、数据存储、数据处理、构建数据仓库、多维分析、数据可视化等一整套流程。这种高技术门槛显然会制约大数据技术的普及。

此时,大数据平台(平台即服务的思想,PaaS)应运而生,它是面向研发场景的全链路解决方案,能够大大提高数据的研发效率,让数据像在流水线上一样快速完成加工,原始数据变成指标,出现在各个报表或者数据产品中。

1.5 数据价值时代:数据中台

2016年左右,随着大数据平台的普及,也催生了很多大数据的应用场景。

此时开始暴露出一些新问题:为了快速实现业务需求,烟囱式开发模式导致了不同业务线的数据是完全割裂的,这样造成了大量数据指标的重复开发,不仅研发效率低、同时还浪费了存储和计算资源,使得大数据的应用成本越来越高。

极富远见的马云爸爸此时喊出了 「数据中台」 的概念,「One Data,One Service」的口号开始响彻大数据界。

数据中台的核心思想是:避免数据的重复计算,通过数据服务化,提高数据的共享能力,赋能业务。

2.大数据的核心概念

了解了大数据的发展历史后,再解释下大数据的几个核心概念。

2.1 什么是大数据?

大数据是一种海量的、高增长率的、多样化的信息资产,它需要新的存储和计算模式才能具有更强的决策力、流程优化能力。

大数据的4个典型特征:

(传统)不能满足+需要(新处理模式)=大数据+具有4v特征。

2.2 什么是数据仓库?

数据仓库是面向主题的、集成的、随着时间变化的、相对稳定的数据集合。

简单理解,数据仓库是大数据的一种组织形式,有利于对海量数据的维护和进一步分析。

  • 面向主题的:表示按照主题或者业务场景组织数据。

  • 集成的:从多个异构数据源采集数据,进行抽取、加工、集成。

  • 随时间变化的:关键数据需要标记时间属性。

  • 相对稳定的:极少进行数据删除和修改,而只是进行数据新增。

2.3 传统数据仓库 vs 新一代数据仓库

随着大数据时代的到来,从多维度对比下两代数据仓库的异同。

3.大数据平台的通用架构

前面谈到大数据相关的技术有几十种,下面通过大数据平台的通用架构来了解下整个技术体系。

3.1 数据传输层

  • Sqoop:支持RDBMS和HDFS之间的双向数据迁移,通常用于抽取业务数据库(比如MySQL、SQLServer、Oracle)的数据到HDFS.
  • Cannal:阿里开源的数据同步工具,通过监听MySQL binlog,实现增量数据订阅和近实时同步。
  • Flume:用于海量日志采集、聚合和传输,将产生的数据保存到HDFS或者HBase中。
  • Flume + Kafka:满足实时流式日志的处理,后面再通过Spark Streaming等流式处理技术,可完成日志的实时解析和应用。

3.2 数据存储层

  • HDFS:分布式文件系统,它是分布式计算中数据存储管理的基础,是Google GFS的开源实现,可部署在廉价商用机器上,具备高容错、高吞吐和高扩展性。
  • HBase:分布式的、面向列的NoSQL KV数据库, 它是Google BigTable的开源实现,利用HDFS作为其文件存储系统,适合大数据的实时查询(比如:IM场景)。
  • Kudu:折中了HDFS和HBase的分布式数据库,既支持随机读写、又支持OLAP分析的大数据存储引擎(解决HBase不适合批量分析的痛点)。

3.3 资源管理层

  • Yarn:Hadoop的资源管理器,负责Hadoop集群资源的统一管理和调度,为运算程序(MR任务)提供服务器运算资源(CPU、内存),能支持MR、Spark、Flink等多种框架。
  • Kubernates:由Google开源,一种云平台的容器化编排引擎,提供应用的容器化管理,可在不同云、不同版本操作系统之间进行迁移。目前,Spark、Storm已经支持K8S。

3.4 数据计算层

大数据计算引擎决定了计算效率,是大数据平台最核心的部分,它大致了经历以下4代的发展,又可以分成离线计算框架和实时计算框架。

3.4.1 离线计算框架

  • MapReduce:面向大数据并行处理的计算模型、框架和平台(将计算向数据靠拢、减少数据传输,这个设计思路非常巧妙)。
  • Hive:一个数据仓库工具,能管理HDFS存储的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能(实际运行时,是将Hive SQL翻译成了MapReduce任务),适用离线非实时数据分析。
  • Spark sql:引入RDD(弹性分布式数据集)这一特殊的数据结构,将SQL转换成RDD的计算,并将计算的中间结果放在内存中,因此相对于Hive性能更高,适用实时性要求较高的数据分析场景。

3.4.2 实时计算框架

  • Spark Streaming:实时流数据处理框架(按时间片分成小批次,s级延迟),可以接收Kafka、Flume、HDFS等数据源的实时输入数据,经过处理后,将结果保存在HDFS、RDBMS、HBase、Redis、Dashboard等地方。
  • Storm:实时流数据处理框架,真正的流式处理,每条数据都会触发计算,低延迟(ms级延迟)。
  • Flink:更高级的实时流数据处理框架,相比Storm,延迟比storm低,而且吞吐量更高,另外支持乱序和调整延迟时间。

3.5 多维分析层

  • Kylin:分布式分析引擎,能在亚秒内查询巨大的Hive表,通过预计算(用空间换时间)将多维组合计算好的结果保存成Cube存储在HBase中,用户执行SQL查询时,将SQL转换成对Cube查询,具有快速查询和高并发能力。
  • Druid:适用于实时数据分析的高容错、高性能开源分布式系统,可实现在秒级以内对十亿行级别的表进行任意的聚合分析。

4.大数据的通用处理流程

了解了大数据平台的通用架构和技术体系后,下面再看下针对离线数据和实时数据,是如何运用大数据技术进行处理的?

上图是一个通用的大数据处理流程,主要包括以下几个步骤:

  • 数据采集:这是大数据处理的第一步,数据来源主要是两类,第一类是各个业务系统的关系数据库,通过Sqoop或者Cannal等工具进行定时抽取或者实时同步;第二类是各种埋点日志,通过Flume进行实时收集。
  • 数据存储:收集到数据后,下一步便是将这些数据存储在HDFS中,实时日志流情况下则通过Kafka输出给后面的流式计算引擎。
  • 数据分析:这一步是数据处理最核心的环节,包括离线处理和流处理两种方式,对应的计算引擎包括MapReduce、Spark、Flink等,处理完的结果会保存到已经提前设计好的数据仓库中,或者HBase、Redis、RDBMS等各种存储系统上。
  • 数据应用:包括数据的可视化展现、业务决策、或者AI等各种数据应用场景。

5.大数据下的数仓体系架构

数据仓库是从业务角度出发的一种数据组织形式,它是大数据应用和数据中台的基础。

数仓系统一般采用下图所示的分层结构。

可以看到,数仓系统分成了4层:源数据层、数据仓库层、数据集市层、数据应用层。 采用这样的分层结构,和软件设计的分层思想类似,都是为了将复杂问题简单化,每一层职责单一,提高了维护性和复用性。

每一层的具体作用如下:

  • ODS:源数据层,源表。
  • DW:数据仓库层,包含维度表和事实表,通过对源表进行清洗后形成的数据宽表,比如:城市表、商品类目表、后端埋点明细表、前端埋点明细表、用户宽表、商品宽表。
  • DM:数据集市层,对数据进行了轻粒度的汇总,由各业务方共建,比如:用户群分析表、交易全链路表。
  • ADS:数据应用层,根据实际应用需求生成的各种数据表。

另外,各层的数据表都会采用统一的命名规则进行规范化管理,表名中会携带分层、主题域、业务过程以及分区信息。

比如,对于交易域下的一张曝光表,命名可以是这样:

总结

上文对大数据的历史、核心概念、通用架构、以及技术体系进行了系统性总结。

同时附上学习指南:

第一阶段:大数据基础-Java语言基础
第二阶段:Linux系统-Hadoop生态体系
第三阶段:分布式计算框架-Spark&Storm生态体系
第四阶段:大数据项目实战
第五阶段:大数据分析-方向AI


更多参考地址:
Hadoop实战之MapReducer项目结构分析
Hadoop实战之mapreduce的WordCount统计单词数目
Hadoop实战系列之MapReduce 分析 Youtube视频数据
hadoop集群相关

https://baijiahao.baidu.com/s?id=1664383256881985239&wfr=spider&for=pc

Hadoop当下最简洁的大数据各种技术介绍与总结相关推荐

  1. 基于Hadoop架构下的FineBI大数据引擎技术原理

    随着各个业务系统的不断增加,以及各业务系统数据量不断激增,业务用户的分析诉求越来越多且变化很快,IT数据支撑方的工作变得越来越复杂. 1.数据来自多个不同的系统,存在需要跨数据源分析,需要对接各种不同 ...

  2. 三种最典型的大数据存储技术路线

    三种最典型的大数据存储技术路线 近期由中关村大数据产业联盟举办的"大数据100分"线上研讨会中,南大通用的CTO.资深业界专家武新博士同众多网友分享了底层数据处理技术的发展趋势和正 ...

  3. 基于hadoop和echarts的教育大数据可视化系统 毕设完整的代码+数据集

    一.摘 要 在线教育平台现在是教育体系的重要组成部分,在当前大数据时代的背景下,促进教育机构建立统一平台.统一资源管理的数字化教学系统.如何评估系统平台的健康程度.学生的学习体验和在线课程的质量对于课 ...

  4. Peter Cnudde谈雅虎如何使用Hadoop、深度学习和大数据平台

    \ 本文要点 \ 了解雅虎如何利用Hadoop和大数据平台技术: \ 在类似Flickr和Esports这样的产品中,雅虎如何使用深度学习技术进行场景检测和对象识别: \ 机器学习在图像识别.定向广告 ...

  5. Hadoop教程(一):简介、大数据解决方案、介绍快速入门

    Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据.它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储. "90%的世 ...

  6. 大数据开发技术课程报告(搭建Hadoop完全分布式集群操作集群)

    文章目录 大数据开发技术课程报告内容及要求 一. 项目简介和实验环境 二. 虚拟机的各项准备工作 三. 安装JDK并配置环境变量 四. 安装Hadoop并配置环境变量 五. 配置Hadoop完全分布式 ...

  7. 大数据和Hadoop什么关系?为什么大数据要学习Hadoop?

    大数据是一系列技术的统称,经过多年的发展,大数据已经形成了从数据采集.整理.传输.存储.安全.分析.呈现和应用等一系列环节,这些环节涉及到诸多大数据工作岗位,这些工作岗位与物联网.云计算也都有密切的联 ...

  8. 深圳大数据培训技术分享:Hadoop集群同步

    深圳大数据培训技术分享:Hadoop集群同步 分享--是技术突飞猛进的很好体验!在千锋学习大数据技术,开始学会了分享,班里五十个人,每个人就能得到49份不同技术探讨.每次到分享的时刻,总会收获不同的想 ...

  9. 尚硅谷大数据技术Hadoop教程-笔记01【大数据概论】

    视频地址:尚硅谷大数据Hadoop教程(Hadoop 3.x安装搭建到集群调优) 尚硅谷大数据技术Hadoop教程-笔记01[大数据概论] 尚硅谷大数据技术Hadoop教程-笔记02[Hadoop-入 ...

最新文章

  1. 深度学习奠基人特伦斯:美国学界已经找到了解释人工智能“黑盒子”的方法...
  2. 用UML做好系统分析
  3. 机房突然发生爆炸事件如何处理?为什么会这样
  4. Linux sftp用法
  5. html搜索结果 重置,搜索结果和后退按钮/ HTML表格
  6. 计算机共享原理,synchronize底层原理 游戏电脑问题解决分享!
  7. 无法将文件“ “复制到“bin\*.*”。对路径“bin\*.*”的访问被拒绝。 解决方法
  8. linux-资料汇集
  9. 《101 Windows Phone 7 Apps》读书笔记-TODO LIST
  10. 【JanusGraph入门】(第一天,下载项目)
  11. pdf页面倒序如何调整?
  12. win10玩cf不能全屏解决方法
  13. 快速:通过画图了解Racket
  14. lzg_ad: FBWF配置详解
  15. pandas结合matplotlib将excel数据可视化
  16. HTML-图文排版如何以代码实现
  17. undefined reference to `__stack_chk_fail'
  18. 非酒精性脂肪性肝炎潜在治疗靶点及药物研究进展
  19. cf1367E 思维+贪心
  20. 邮政平邮批量查询未签收物流的方法

热门文章

  1. shell中for循环,读取一整行
  2. 服务器的cd驱动器怎么修改盘符,windows 2016 修改驱动器盘符
  3. AT91SAM926x开发全流程
  4. linux系统之系统修复
  5. 客户端远程连接MySQL出现2003-Cant connect to MySQL server on xxx
  6. 基于Java Swing编写的运费计算系统
  7. 一览 A16z 在 2023 年重点关注的 Crypto 和 Web3 游戏想法
  8. 用scratch编写游戏“小蝌蚪成长”中使背景大于480*360
  9. 西门子S7通信协议以及JAVA版的实现
  10. 计算机三级网络技术考试详解