大数据Lambda架构「建议收藏」

大数据Lambda架构

大家好,又见面了,我是全栈君。

1 Lambda架构介绍

         Lambda架构划分为三层。各自是批处理层,服务层,和加速层。

终于实现的效果,能够使用以下的表达式来说明。

query = function(alldata)

大数据Lambda架构「建议收藏」

1.1 批处理层(Batch Layer, Apache Hadoop)

         批处理层主用由Hadoop来实现,负责数据的存储和产生随意的视图数据。

计算视图数据是一个连续的操作,因此。当新数据到达时,使用MapReduce迭代地将数据聚集到视图中。

将数据集中计算得到的视图,这使得它不会被频繁地更新。依据你的数据集的大小和集群的规模,不论什么迭代转换计算的时间大约须要几小时。


1.2 服务层(Serving layer ,Cloudera Impala)

        服务层是由Cloudera Impala框架来实现的,总体而言,使用了Impala的主要特性。从批处理输出的是一系列包括估计算视图的原始文件。服务层负责建立索引和呈现视图。以便于它们可以被非常好被查询到。

        因为批处理视图是静态的,服务层只须要提供批量地更新和随机读,而Cloudera Impala正好符合我们的要求。为了使用Impala呈现视图。全部的服务层就是在Hive元数据中创建一个表。这些元数据都指向HDFS中的文件。随后,用户立马可以使用Impala查询到视图。

         Hadoop和Impala是批处理层和服务层极好的工具。

Hadoop可以存储和处理千兆字节(petabytes)数据,而Impala可以查询高速且交互地查询到这个数据。但是。批处理和服务层单独存在,无法满足实时性需求。原因是MapReduce在设计上存在非常高的延迟,它须要花费几小时的时间来将新数据展现给视图。然后通过媒介传递给服务层。

这就是为什么我们须要加速层的原因。


1.3 加速层 (Speed layer, Storm, Apache HBase)

         在本质上,加速层与批处理层是一样的,都是从它接受到的数据上计算而得到视图。加速层就是为了弥补批处理层的高延迟性问题,它通过Strom框架计算实时视图来解决问题。实时视图只包括数据结果去供应批处理视图。同一时候,批处理的设计就是连续反复从获取的数据中计算批处理视图,而加速层使用的是增量模型,这是鉴于实时视图是增量的。加速层的高明之处在于实时视图作为暂时量。只要数据传播到批处理中,服务层中对应的实时视图结果就会被丢掉。这个被称作为“全然隔离”,意味着架构中的复杂部分被推送到结构层次中。而结构层的结果为暂时的,大慷慨便了连续处理视图。

        令人疑惑的那部分就是呈现实时视图。以便于它们可以被查询到。以及使用批处理视图合并来获得所有的结果。

因为实时视图是增量的。加速层须要同一时候随机的读和写。为此,我将使用Apache HBase数据库。

HBase提供了对Storm连续地增量化实时视图的能力。同一时候,为Impala提供查询经批处理视图合并后得到的结果。Impala查询存储在HDFS中批处理视图和存储在HBase中的实时视图,这使得Impala成为相当完美的工具。

大数据Lambda架构「建议收藏」

 

        Lambda抽象架构也能够这样来描写叙述:

大数据Lambda架构「建议收藏」


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115949.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • bridge桥接模式_透明桥模式

    bridge桥接模式_透明桥模式bridge模式动机案例要点总结笔记动机由于某些类型的固有的实现逻辑,使得他们具有两个变化维度,乃至多个维度的变换如何应对这种”多维度的变化“?如何利用面向对象技术来是使得类型可以轻松地沿着两个乃至多个方向变换而不引入额外地复杂度?案例PC端和Mobile端平台和业务分离朴素class Messager{ public: virtual void Login(string username,string password) = 0; virtual void SendM

    2022年8月9日
    5
  • execute executeupdate_executeupdate不执行

    execute executeupdate_executeupdate不执行增、删、改用executeUpdate()返回值为int型,表示被影响的行数例子查用executeQuery()返回的是一个集合.next()表示指针先下一行,还有first()指向第一行、last()指向最后一行、如果有数据就返回true…

    2022年8月31日
    2
  • java中的守护线程守护的是什么_java守护线程的作用

    java中的守护线程守护的是什么_java守护线程的作用守护线程在Java中有两类线程:UserThread(用户线程)DaemonThread(守护线程)守护线程的功能非常简单,在其本身是一个线程的同时,主要是为了给其他的线程提供服务,比如说计时器,清空高速缓存等等操作,守护线程具有和被守护线程一样的生命周期(这里并不是说守护线程和被守护线程常常是1-1的关系),当被守护线程死亡,守护线程往往也会死亡,当虚拟机中只剩下守护线程时,虚拟机就会退出,因为此时也没有运行程序的必要了一个比较通俗的解释:任何一个守护线程都是整个JVM中所有非守护线程

    2022年10月9日
    1
  • python爬取琳琅社区整站视频(一晚6000部)[通俗易懂]

    python爬取琳琅社区整站视频(一晚6000部)[通俗易懂]琳琅社区(传闻中最受男人喜爱的网站),哼哼,我倒要看看是不是真的该项目用于爬取琳琅社区整站视频(仅供学习)主要使用:python3.7+scrapy2.19+Mysql8.0+win10首先确定需要爬取的内容,定义item:classLinglangItem(scrapy.Item): #视频属于哪个模块video_belong_module=scrap…

    2022年6月25日
    25
  • MySQL数据库优化的八种方式(经典必看)

    MySQL数据库优化的八种方式(经典必看)MySQL数据库优化的八种方式(经典必看)引言: 关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂 偶尔发现了这篇文章,总结得很经典,文章流量也很大,所以拿到自己的总结文集中,积累优质文章,提升个人能力,希望对大家今后开发中也有帮助 1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库…

    2022年5月25日
    133
  • matlab插值实验目的,matlab插值实验报告数学实验.doc

    matlab插值实验目的,matlab插值实验报告数学实验.docmatlab插值实验报告数学实验.doc新乡学院数学与信息科学系实验报告实验项目名称插值实验所属课程名称数学实验实验类型综合性实验实验日期班级学号姓名成绩一、实验概述【实验目的】掌握用MATLAB插值的方法,了解拉格朗日插值、线性插值、样条插值的基本思想,了解三种网格节点数据的插值方法的基本思想,了解掌握用MATLAB计算一维差值和二维插值的方法。【实验原理】拉格朗日LAGRANGE插值。已知函…

    2022年5月26日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号