BigData导论

发展历史

  • 2004年,Google三驾马车,分布式文件系统GFS、大数据分布式计算框架MapReduce、NoSQL数据库系统BigTable
  • 2006年,Doug Cutting(lucene的作者)根据论文原理初步实现了类似GFS和MapReduce的功能,开发出了Hadoop,包括分布式文件系统HDFS和大数据计算引擎MapReduce,Hadoop 1.0 大数据时代
  • 2008年,Hadoop正式成为Apache的顶级项目,后来Doug Cutting本人也成为了Apache基金会的主席。自此,Hadoop作为软件开发领域的一颗明星冉冉升起,同年,专门运营Hadoop的商业公司Cloudera成立,Hadoop得到进一步的商业支持,发布CDH。
  • 2012年,UC伯克利AMP实验室(Algorithms、Machine和People的缩写)开发的Spark开始崭露头角,同时YARN正式发布,Spark的商业化公司Databricks成立,Hadoop 2.0 计算和调度分离时代
  • 2014年,由 3 所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目Stratosphere捐献给了 Apache 软件基金会,随后被更名为Flink,创始团队中的许多成员离开大学并创办了一个公司来实现 Flink 的商业化,他们为这个公司取名为 Data Artisans。2019 年阿里巴巴确认收购 德国初创企业 Data Artisan
  • 2017年,Hadoop 3.0发布,基于CloudNative,向着容器化和AI方向演进,Hadoop 3.0 云原生时代以获得统一运维、资源池化等方面的管理目的
  • 2019年,Hudi、DeltaLake、Iceberg发布,标志大数据迈向湖仓一体的时代,做到数据中心化,分析多样化
  • 2020年,Ozone发布,可以使用公有云对象存储,拥抱cloud和对象存储
  • 2021年,Submarine, Ratis相继发布,人工智能和基于Raft的集群协议
    搜索和三大社交公司(Yahoop[Hadoop] FackeBook[Hive,Prestoe] Twitter[Storm] LinkIn[Kafka] )支撑起大数据的发展

商业化

国外

1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)
2)CDH:国内使用最多的版本,但 CM不开源,但其实对中、小公司使用来说没有影响(建议使用)
3)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少

国内

1)TDH:星环科技发布的大数据版本,既有开源版本,也又商业化版本
2)FusionInsight:华为发布的大数据版本
3)等都是基于Hadoop体系,封装更多的开源组件,形成整体套件

组件简介

存储引擎

存储引擎包括文件存储系统,对象存储系统

  • HDFS:(Hadoop Distribute File System)Hadoop体系基石,基于Google的GFS开发的分布式文件系统,Java语言,Yahoo主导。
  • **Ozone:**基于HDFS的第二代文件存储系统,着力解决超大规模集群下,HDFS的GC和元数据风暴问题,Java语言,腾讯主导。
  • **Min IO:**轻量级的对象存储服务,使用go语言开发。
  • **Ceph:**Redhat提供的对象存储引擎

缓存引擎

  • **Alluxio:**智能缓存加速系统,QueryEngine 与大数据集群的缓存中间件。通过暂时将数据存储在内存或其它接近计算服务所属介质中的方法, 起到加速访问并提供远程存储本地化提升性能的能力,实现数据冷热分离,Java语言,Alluxio主导。
  • **JuiceFS:**待了解
  • **Fluid:**将缓存层和K8S桥接起来,待了解

计算引擎

  • 大数据离线计算:像MapReduce、Spark这类计算框架处理的业务场景都被称作批处理计算,因为它们通常针对以“天”为单位产生的数据进行一次计算, 这中间计算需要花费的时间大概是几十分钟甚至更长的时间。非在线得到的实时数据
  • 大数据实时计算:对实时产生的大量数据进行即时计算,这类计算称为大数据流计算,相应地,有Storm、Flink、Spark-Streaming等流计算框架来满足此类大数据应用的场景。 流式计算要处理的数据是实时在线产生的数据。应用实时智能推荐,实时报表分析,实时监控场景

相关组件包括

  • **MapReduce:**Hadoop系统中第一代分布式计算框架,将分布式计算分为Map和Reduce两个阶段,自身实现Shuffle功能,Java语言,Yahoo主导,目前已基本处于淘汰状态。
  • **Storm:**Storm 开发者无需再关注数据的流转、消息的处理和消费,只要编程开发好数据处理的逻辑bolt和数据源的逻辑spout,以及它们之间的拓扑逻辑关系toplogy,提交到Storm上运行就可以了。?
  • **Spark:**MapReduce进行机器学习计算的时候性能非常差,因为机器学习算法通常需要进行很多次的迭代计算,而MapReduce每执行一次Map和Reduce计算都需要重新启动一次作业,带来大量的无谓消耗,而且Spark支持Yarn和HDFS,公司迁移到Spark上的成本很小,于是很快,越来越多的公司用Spark代替MapReduce。Scala语言,Databricks主导。
  • **Flink:**可以同时支持流式计算和批处理计算。Java语言,阿里主导。

调度引擎

  • Yarn:(Yet Another Resource Negotiator)将MapReduce执行引擎和资源调度分离开来,这就是Yarn,2012年,Yarn成为一个独立的项目开始运营,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统。Yarn基于Container进行资源调度。Java语言,依赖开源。

  • **Kubernetes:**俗称K8S,容器的编排引擎,云原生中编排引擎的事实标准,还有Docker公司开发Docker Swarm编排引擎。Go语言,Google主导。

分析引擎

大数据使用场景主要包括:数据分析和人工智能

  • 数据分析:主要使用Hive、Spark SQL等SQL引擎完成

  • 人工智能:数据挖掘与机器学习则有专门的机器学习框架TensorFlow(Google)、Caffe2(Facebook)、Pytorch(Facebook)、Mahout以及MLlib等,内置了主要的机器学习和数据挖掘算法。

分析主要通过SQL、AI框架已经NoSQL语言进行处理,包括OLTP(On-line Transaction processing 大数据中很少使用),OLAP(On-Line Analytical Processing),NoSQL(Not Only SQL)引擎,AI&BI(Artificial Intelligence/Business Inteligence)

OLAP引擎

OLAP按存储器的数据存储格式分为ROLAP(Relational OLAP)、MOLAP(Multi-dimensional OLAP)和 HOLAP(Hybrid OLAP)

  • **MOLAP :**基于多维数组的存储模型,也是OLAP最初的形态,特点是对数据进行预计算,以空间换效率,明细和聚合数据都保存在cube中。但生成cube需要大量时间和空间。可选Kylin、Druid等

  • **ROLAP :**完全基于关系模型进行存储数据,不需要预计算,按需即时查询。明细和汇总数据都保存在关系型数据库事实表中。可选Presto、impala等

  • **HOLAP :**混合模型,细节数据以ROLAP存放,聚合数据以MOLAP存放。这种方式相对灵活,且更加高效。可按企业业务场景和粒度进行取舍,没有最好,只有最适合

按照查询类型划分,OLAP一般分为即席查询和固化

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值