精华内容
下载资源
问答
  • 哪个产品是用于流计算的
    万次阅读 多人点赞
    2020-04-09 09:14:22

    大数据学习


    一、大数据概述:
    1、大数据概念和特征。
    正确答案:
    大数据意指一个超大的、难以用现有常规的数据库管理技术和工具处理的数据集
    数据量大(Volume):存储的数据量巨大,PB级别是常态,因而对其分析的计算量也大。
    数据类型繁多(Variety):数据的来源及格式多样,数据格式除了传统的结构化数据外,还包括半结构化或非结构化数据,比如用户上传的音频和视频内容。而随着人类活动的进一步拓宽,数据的来源更加多样。
    处理速度快(Velocity):数据增长速度快,而且越新的数据价值越大,这就要求对数据的处理速度也要快,以便能够从数据中及时地提取知识,发现价值。
    价值密度低(Value):在成本可接受的条件下,通过快速采集、发现和分析,从大量、多种类别的数据中提取价值的体系架构。
    复杂度(Complexity):对数据的处理和分析的难度大。

    2、试述大数据时代的“数据爆炸”的特性
    正确答案:
    人类社会产生的数据以每年50%速度增长,即每两年增加一倍。

    3、试述大数据对思维方式的重要影响?你如何理解数据思维?

    正确答案:
    三种思维的转变:全样而非抽样,效率而非精确,相关而非因果

    具备数据思维,能帮助创业者抓住商业机会。

    生活中的大部分数据,数据思维都可以给你启发。

    像AlphaGo 一样思考、学习、挑战、迭代

    AlphaGo= 大数据 + 人工智能 + 大规模计算
    4、举例说明大数据的应用领域
    正确答案:
    金融行业:大数据在高频交易、社区情绪分析和信贷风险分析三大金融创新领域发挥重要作用。
    汽车行业:利用大数据和物联网技术的五人驾驶汽车,在不远的未来将走进我们的日常生活。 
    互联网行业:借助于大数据技术,可以分析客户行为,进行商品推荐和有针对性广告投放。
    个人生活:利用与每个人相关联的“个人大数据”,分析个人生活行为习惯,为其提供更加周全的个性化服务。
    5、云计算长定义和短定义:
    正确答案:
    长定义:云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。
    短定义:云计算是通过网络按需提供可动态伸缩的廉价计算服务。
    6、大数据与云计算、物联网的关系
    正确答案:
    云计算、大数据和物联网代表了IT领域最新的技术发展趋势,三者相辅相成,既有联系又有区别。
    大数据技术继承自云计算。
    在这里插入图片描述
    大数据与互联网、云计算、移动计算、物联网、智慧城市等重大信息技术,将不断相互融合和叠加,形成很多创新技术和应用。
    云计算实现了通过网络提供可伸缩的、廉价的分布式计算能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源。
    物联网是物物相连的互联网,是互联网的延伸,它利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化和远程管理控制。
    1.大数据、云计算和物联网的区别
    大数据侧重于海量数据的存储、处理与分析,海量数据中发现价值,服务于生产和生活;云计算本质上皆在整合和优化各种IT资源并通过网络已服务的方法,廉价地提供给用户;物联网的发展目标是实现呜呜向量,应用创新是物联网的核心
    2.大数据、云计算和物联网的联系
    从整体来看,大数据、云计算和物联网这三者是相辅相成的。大数据根植于云计算,大数据分析的很多技术都来自于云计算,云计算的分布式存储和管理系统提供了海量数据的存储和管理能力,没有这些云计算技术作为支撑,大数据分析就无从谈起。物联网的传感器源源不断的产生大量数据,构成了大数据的重要数据来源,物联网需要借助于云计算和大数据技术,实现物联网大数据的存储、分析和处理。

    1、就数据的量级而言,1PB数据是多少TB?
    A、1024
    B、512
    C、2048
    D、1000
    正确答案: A
    2、以下关于云计算、大数据和物联网之间的关系,论述错误的是:
    A、云计算、大数据和物联网三者紧密相关,相辅相成
    B、物联网可以借助于大数据实现海量数据的分析
    C、云计算侧重于数据分析
    D、物联网可以借助于云计算实现海量数据的存储
    正确答案: C
    3、以下哪个不是大数据时代新兴的技术:
    A、Spark
    B、Hadoop
    C、MySQL
    D、HBASE
    正确答案: C
    4、每种大数据产品都有特定的应用场景,以下哪个产品是用于流计算的:
    A、S4
    B、GraphX
    C、Impala
    D、Hive
    正确答案: A
    针对流数据的实时计算:Storm、S4、Flume、Streams、Puma、DStream、Super Mario、银河流数据处理平台等
    5、每种大数据产品都有特定的应用场景,以下哪个产品是用于图计算的:
    A、Cassandra
    B、Storm
    C、Flume
    D、Pregel
    正确答案: D
    答案解析:
    Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等 针对大规模图结构数据的处理
    二.多选题
    1、大数据的4V特性包括:
    A、数据量大
    B、处理速度快
    C、数据类型繁多
    D、数据新颖
    正确答案: ABC

    2、图领奖获得者、著名数据库专家Jim Gray博士认为,人类自古以来在科学研究上先后经历了四种范式,具体包括:
    A、计算科学
    B、实验科学
    C、猜想科学
    D、理论科学
    正确答案: ABD
    3、大数据带来思维方式的三个转变是:
    A、效率而非精确
    B、精确而非全面
    C、相关而非因果
    D、全样而非抽样
    正确答案: ACD
    4、大数据的四种主要计算模式包括:
    A、流计算
    B、框计算
    C、批处理计算
    D、图计算
    正确答案: ACD
    答案解析:
    查询分析计算;Dremel、Hive、Cassandra、Impala等
    5、云计算的典型服务模式包括三种:
    A、SaaS
    B、PaaS
    C、IaaS
    D、MaaS
    正确答案: ABC
    Software as a Service;Platform as a Service;Infrastructure as a Service 基础设施
    二、大数据处理架构Hadoop
    1、试述hadoop和谷歌的mapreduce、gfs等技术之间的关系
    正确答案:
    Hadoop的核心是分布式文件系统HDFS和MapReduce,HDFS是谷歌文件系统GFS的开源实现,MapReduces是针对谷歌MapReduce的开源实现。
    2、试述Hadoop具有哪些特性。
    正确答案:
    高可靠性,高效性,高可扩展性,高容错性,成本低,运行在Linux平台,支持多种编程语言
    3、试述Hadoop在各个领域的应用情况。
    正确答案:
    2007年,雅虎在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB容量的Hadooop集群系统;Facebook主要将Hadoop平台用于日志处理,推荐系统和数据仓库等方面;百度主要使用Hadoop于日志的存储和统计、网页数据的分析和挖掘、商业分析、在线数据反馈、网页聚类等。
    4、试述Hadoop的项目结构以及每个部分的具体功能。(至少列举出5项)
    正确答案:
    Commeon是为Hadoop其他子项目提供支持的常用工具,主要包括文件系统、RPC和串行化库
    Avro是为Hadoop的子项目,用于数据序列化的系统,提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持续性数据的文件集、远程调用的功能和简单的动态语言集成功能。HDFS是Hadoop项目的两个核心之一,它是针对谷歌文件系统的开源实现。HBase是一个提高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。MapReduce是针对谷歌MapReduce的开源实现,用于大规模数据集的并行运算。Zoookepper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。Hive是一个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分布存储。Pig是一种数据流语言和运行环境,适合于使用Hadoop和MapReducce平台上查询大型半结构化数据集。Sqoop可以改进数据的互操作性,主要用来在H大哦哦哦配合关系数据库之间交换数据。Chukwa是一个开源的、用于监控大型分布式系统的数据收集系统,可以将各种类型的数据收集成适合Hadoop处理的文件,并保存在HDFS中供Hadoop进行各种 MapReduce操作。

    1.启动hadoop所有进程的命令是
    A、start-hdfs.sh
    B、start-dfs.sh
    C、start-hadoop.sh
    D、start-all.sh
    正确答案: D
    2.以下对Hadoop的说法错误的是
    A、Hadoop2.0增加了NameNode HA和Wire-compatibility两个重大特性
    B、Hadoop是基于Java语言开发的,只支持Java语言编程
    C、Hadoop MapReduce是针对谷歌MapReduce的开源实现,通常用于大规模数据集的并行计算
    D、Hadoop的核心是HDFS和MapReduce
    正确答案: B
    3.以下哪个不是hadoop的特性
    A、高容错性
    B、高可靠性
    C、成本高
    D、支持多种编程语言
    正确答案: C
    答案解析:
    成本低
    4.以下名词解释不正确的是
    A、HBase:提供高可靠性、高性能、分布式的行式数据库,是谷歌BigTable的开源实现
    B、Zookeeper:针对谷歌Chubby的一个开源实现,是高效可靠的协同工作系统
    C、Hive:一个基于Hadoop的数据仓库工具,用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储
    D、HDFS:分布式文件系统,是Hadoop项目的两大核心之一,是谷歌GFS的开源实现
    正确答案: A
    Google GFS
    二.多选题
    1
    以下哪个命令可以用来操作HDFS文件
    A、hdfs dfs
    B、hdfs fs
    C、hadoop fs
    D、hadoop dfs
    正确答案: ACD
    答案解析:
    hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统 hadoop dfs只能适用于HDFS文件系统 hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统
    三、分布式文件系统HDFS
    1、试述HDFS中的名称节点和数据节点的具体功能。
    正确答案:名称节点负责管理分布式文件系统系统的命名空间,记录分布式文件系统中的每个文件中各个块所在的数据节点的位置信息;数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并向名称节点定期发送自己所存储的块的列表。hadoop fs -ls 显示 指定的文件的详细信息hadoop fs -cat 指定的文件的内容输出到标准输出hadoop fs -mkdir 创建 指定的文件夹hadoop fs -get [-ignorecrc] [-crc] 复制指定的文件到本地文件系统指定的文件或文件夹。-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。hadoop fs -put 从本地文件系统中复制指定的单个或多个源文件到指定的目标文件系统中。也支持从标准输入(stdin)中读取输入写入目标文件系统。hadoop fs -rmr 删除 指定的文件夹及其的所有文件
    2、分布式文件系统是如何实现较高水平扩展的?
    正确答案:分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(Master Node)或者也被称为“名称结点”(NameNode),另一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode)。
    3、HDFS只设置唯一一个名称节点,在简化系统设计的同时也带来了一些明显的局限性,请阐述局限性具体表现在哪些方面?
    正确答案:
    (1)命名空间的限制:名称节点是保存在内存中的,因此,名称节点能够容纳的对象(文件、块)的个数会受到内存空间大小的限制。
    (2)性能的瓶颈:整个分布式文件系统的吞吐量,受限于单个名称节点的吞吐量。
    (3)隔离问题:由于集群中只有一个名称节点,只有一个命名空间,因此,无法对不同应用程序进行隔离。
    (4)集群的可用性:一旦这个唯一的名称节点发生故障,会导致整个集群变得不可用。
    4、HDFS针对宕机问题提供了哪些有效的保护措施?
    正确答案:

    1. 冗余备份:对每个数据块进行 副本备份,副本个数可以自行设置。
    2. 副本存放:用机架感知(Rack-aware)的策略来改进数据的可靠性、可用性和网络带宽的利用率。通过机架感知,NameNode可以确定每个DataNode所属的机架ID.
    3. 副本选择:尽量选择离程序最近的副本来满足用户请求,这样可以减少总带宽消耗和读延时。

    1.HDFS的命名空间不包含
    A、文件
    B、字节
    C、目录
    D、块

    正确答案: B
    2.对HDFS通信协议的理解错误的是
    A、HDFS通信协议都是构建在IoT协议基础之上的
    B、客户端与数据节点的交互是通过RPC(Remote Procedure Call)来实现的
    C、客户端通过一个可配置的端口向名称节点主动发起TCP连接,并使用客户端协议与名称节点进行交互
    D、名称节点和数据节点之间则使用数据节点协议进行交互
    正确答案: A
    TCP/IP协议
    3.采用多副本冗余存储的优势不包含
    A、保证数据可靠性
    B、节约存储空间
    C、容易检查数据错误
    D、加快数据传输速度
    正确答案: B
    4.假设已经配置好环境变量,启动Hadoop和关闭Hadoop的命令分别是
    A、start-dfs.sh,stop-hdfs.sh
    B、start-hdfs.sh,stop-dfs.sh
    C、start-dfs.sh,stop-dfs.sh
    D、start-hdfs.sh,stop-hdfs.sh
    正确答案: C
    5.分布式文件系统HDFS采用了主从结构模型,由计算机集群中的多个节点构成的,这些节点分为两类,一类存储元数据叫 ,另一类存储具体数据叫
    A、名称节点,数据节点
    B、数据节点,名称节点
    C、名称节点,主节点
    D、从节点,主节点
    正确答案: A
    答案解析:
    NameNode、DataNode
    6.下面关于分布式文件系统HDFS的描述正确的是:
    A、分布式文件系统HDFS是Google Bigtable的一种开源实现
    B、分布式文件系统HDFS比较适合存储大量零碎的小文件
    C、分布式文件系统HDFS是谷歌分布式文件系统GFS(Google File System)的一种开源实现
    D、分布式文件系统HDFS是一种关系型数据库
    正确答案: C
    二.多选题
    1.以下对名称节点理解正确的是
    A、名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问
    B、名称节点的数据保存在内存中
    C、名称节点用来负责具体用户数据的存储
    D、名称节点通常用来保存元数据
    正确答案: ABD
    2.以下对数据节点理解正确的是
    A、数据节点用来存储具体的文件内容
    B、数据节点在名称节点的统一调度下进行数据块的创建、删除和复制等操作
    C、数据节点通常只有一个
    D、数据节点的数据保存在磁盘中
    正确答案: ABD
    3.HDFS只设置唯一一个名称节点带来的局限性包括
    A、隔离问题
    B、命名空间的限制
    C、集群的可用性
    D、性能的瓶颈
    正确答案: ABCD
    4.以下HDFS相关的shell命令不正确的是
    A、hadoop dfs mkdir :创建指定的文件夹
    B、hdfs dfs -rm :删除路径指定的文件
    C、hadoop fs -ls :显示指定的文件的详细信息
    D、hadoop fs -copyFromLocal :将路径指定的文件或文件夹复制到路径指定的文件夹中
    正确答案: AD

    更多相关内容
  • •Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于 2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大 型的、低延迟的数据分析应用程序 •2013年Spark加入Apache孵化器项目后发展迅猛,如今...

    第10讲 Spark

    10.1 Spark概述

    10.1.1 Spark简介

    •Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于 2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大 型的、低延迟的数据分析应用程序
    •2013年Spark加入Apache孵化器项目后发展迅猛,如今已成为Apache 软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、 Spark、Storm)
    Hadoop进行批量数据离线处理MapReduce负责批处理
    Spark基于内存的实时数据分析框架
    Storm数据流分析框架
    •Spark在2014年打破了Hadoop保持的基准排序纪录
    Spark/206个节点/23分钟/100TB数据
    Hadoop/2000个节点/72分钟/100TB数据
    Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度

    Spark具有如下几个主要特点:
    •运行速度快:使用DAG执行引擎以支持循环数据流与内存计算
    •容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程
    •通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算 、机器学习和图算法组件
    •运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、 HBase、Hive等多种数据源

    Spark如今已吸引了国内外各大公司的注意,如腾讯、淘宝、百度、亚马 逊等公司均不同程度地使用了Spark来构建大数据分析应用,并应用到实际的生产环境中

    10.1.2 Scala简介

    Scala是一门现代的多范式编程语言,运行于Java平台(JVM,Java 虚拟机),并兼容现有的Java程序 。集成了面向对象和函数式编程的特点。
    Scala的特性:
    •Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统
    •Scala语法简洁,能提供优雅的API Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中

    Scala是Spark的主要编程语言,但Spark还支持Java、Python、R 作为编程语言
    Scala的优势是提供了REPL(Read-Eval-Print Loop,交互式解释器),提高程序开发效率

    10.1.3 Spark与Hadoop的比较

    Hadoop存在如下一些缺点:
    •表达能力有限。并不是所有的应用都能抽象成map和reduce函数
    •磁盘IO开销大 。尤其是在完成迭代操作时。
    •延迟高
    任务之间的衔接涉及IO开销
    在前一个任务执行完成之前,其他任务就无法开始, 难以胜任复杂、多阶段的计算任务

    Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了 MapReduce所面临的问题
    相比于Hadoop MapReduce,Spark主要具有如下优点:
    •Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型编程模型比Hadoop MapReduce更灵活
    •Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高
    Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制
    在这里插入图片描述
    在这里插入图片描述
    •使用Hadoop进行迭代计算非常耗资源
    •Spark将数据载入内存后,之后的迭代计算都可以直接使用内存中的中间 结果作运算,避免了从磁盘中频繁读取数据
    在这里插入图片描述

    10.2 Spark生态系统

    在实际应用中,大数据处理主要包括以下三个类型:
    •复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间
    •基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间
    •基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒之间
    当同时存在以上三种场景时,就需要同时部署三种不同的软件
    •比如: MapReduce / Impala / Storm

    这样做难免会带来一些问题:
    •不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换
    •不同的软件需要不同的开发和维护团队,带来了较高的使用成本
    •比较难以对同一个集群中的各个系统进行统一的资源协调和分配

    •Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统
    •既能够提供内存计算框架,也可以支持SQL即时查询、实时流式计 算、机器学习和图计算等
    •Spark可以部署在资源管理器YARN之上,提供一站式的大数据解决方案
    •因此,Spark所提供的生态系统足以应对上述三种场景,即同时支持批处理、交互式查询和流数据处理

    Spark生态系统已经成为伯克利数据分析软件栈BDAS(Berkeley Data Analytics Stack)的重要组成部分
    Spark的生态系统主要包含了Spark Core、Spark SQL、Spark Streaming、 MLLib和GraphX 等组件
    提供内存计算、交互式查询分析、流计算、机器学习算法、图计算
    在这里插入图片描述
    在这里插入图片描述

    10.3 Spark运行架构

    10.3.1 基本概念

    •RDD:是Resillient Distributed Dataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型
    •DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系
    •Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task
    •Application:用户编写的Spark应用程序
    •Task:运行在Executor上的工作单元
    •Job:一个Job包含多个RDD及作用于相应RDD上的各种操作
    •Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为 Stage,或者也被称为TaskSet,代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集

    在这里插入图片描述
    Spark运行架构包括集群资源管理器(Cluster Manager)运行作业任务的工作节点 (Worker Node)每个应用的任务控制节点(Driver)每个工作节点上负责具体任务的执行进程(Executor)

    •资源管理器可以自带或Mesos或YARN

    与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点:
    •一是利用多线程来执行具体的任务,减少任务的启动开销
    •二是Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备, 有效减少IO开销

    10.3.2 架构设计

    在这里插入图片描述
    •一个Application由一个Driver和若干个Job构成,一个Job由多个Stage构成,一个 Stage由多个没有Shuffle关系的Task组成
    在这里插入图片描述
    •当执行一个Application时,Driver会向集群管理器申请资源,启动Executor,并向 Executor发送应用程序代码和文件,然后在Executor上执行Task,运行结束后,执行 结果会返回给Driver,或者写到HDFS或者其他数据库中

    10.3.3 Spark运行基本流程

    在这里插入图片描述
    (1)首先为应用构建起基本的运行环境,即由Driver创建一个SparkContext, 进行资源的申请、任务的分配和监控
    (2)资源管理器为Executor分配资源, 并启动Executor进程
    (3)SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给 DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器 TaskScheduler处理;Executor向 SparkContext申请Task,Task Scheduler 将Task发放给Executor运行,并提供应用程序代码
    (4)Task在Executor上运行,把执行结果反馈给TaskScheduler,然后反馈给 DAGScheduler,运行完毕后写入数据并释放所有资源

    总体而言,Spark运行架构具有以下特点:
    (1)每个Application都有自己专属的Executor进程,并且该进程在Application运行期间一直驻留。Executor进程以多线程的方式运行Task
    (2)Spark运行过程与资源管理器无关,只要能够获取 Executor进程并保持通信即可
    (3)Task采用了数据本地性和推测执行等优化机制

    10.3.4 Spark运行原理

    1.设计背景

    •许多迭代式算法(比如机器学习、图算法等)和交互式数据挖掘工具,共同之处是,不同计算阶段之间会重用中间结果
    •目前的MapReduce框架都是把中间结果写入到HDFS中,带来了大量的数据复制、磁盘IO和序列化开销
    •RDD就是为了满足这种需求而出现的,它提供了一个抽象的数据架构,我们不必担心底层数据的分布式特性,只需将具体的应用逻辑表达为一系列转换处理,不同RDD之间的转换操作形成依赖关系,可以实现管道化,避免中间数据存储

    2.RDD概念

    •一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可分成多个分区,每个分区就是一个数据集片段,并且一 个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算
    •RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,不能直接修改,只能基于稳定的物理存储中的数据集创建RDD, 或者通过在其他RDD上执行确定的转换操作(如map、join和group by) 而创建得到新的RDD

    •RDD提供了一组丰富的操作以支持常见的数据运算,分为**“动作” (Action)**和“转换”(Transformation)两种类型
    •RDD提供的转换接口都非常简单,都是类似map、filter、groupBy、join 等
    粗粒度的数据转换操作
    ,而不是针对某个数据项的细粒度修改(不适合网页爬虫)
    •表面上RDD的功能很受限、不够强大,实际上RDD已经被实践证明可以高效地表达许多框架的编程模型(比如MapReduce、SQL、Pregel)
    •Spark用Scala语言实现了RDD的API,程序员可以通过调用API实现对RDD的各种操作

    RDD典型的执行过程如下:
    在这里插入图片描述
    •RDD读入外部数据源进行创建
    •RDD经过一系列的转换(Transformation)操作,每一次都会产生不同的RDD,供给下一个转换操作使用
    •最后一个RDD经过
    “动作”操作
    进行转换,并输出到外部数据源
    这一系列处理称为一个Lineage(血缘关系),即DAG拓扑排序的结果
    优点:惰性调用、管道化、避免同步等待、不需要保存中间结果、每次操作变得简单

    3.RDD特性

    Spark采用RDD以后能够实现高效计算的原因主要在于:
    (1)高效的容错性
    •现有容错机制:数据复制或者记录日志
    •RDD:血缘关系、重新计算丢失分区、无需回滚系统、重算过程在不同节点之间并行、只记录粗粒度的操作
    (2)中间结果持久化到内存,数据在内存中的多个RDD操作之间进行传递,避免了不必要的读写磁盘开销
    (3)存放的数据可以是Java对象,避免了不必要的对象序列化和反序列化

    4.RDD之间的依赖关系

    在这里插入图片描述
    •窄依赖表现为一个父RDD的分区对应于一个子RDD的分区多个父RDD的分区对应于一个子RDD的分区
    •宽依赖则表现为存在一个父RDD的一个分区对应一个子RDD的多个分区

    5.Stage的划分

    Spark通过分析各个RDD的依赖关系生成了DAG,再通过分析各个RDD 中的分区之间的依赖关系来决定如何划分Stage,具体划分方法是:
    •在DAG中进行反向解析,遇到宽依赖断开
    •遇到窄依赖就把当前的RDD加入到Stage
    •将窄依赖尽量划分在同一个Stage中,可以实现流水线计算

    在这里插入图片描述
    被分成三个Stage,在Stage2中,从map到union都是窄依赖,这两步操作可以形成一个流水线操作
    流水线操作实例:分区7通过map操作生成的分区9, 可以不用等待分区8到分区10这个map操作的计算结束,而是继续进行union操作, 得到分区13,这样流水线执行大大提高了计算的效率

    Stage的类型包括两种:ShuffleMapStage和ResultStage,具体如下:
    (1)ShuffleMapStage:不是最终的Stage,在它之后还有其他Stage, 所以,它的输出一定需要经过Shuffle过程,并作为后续Stage的输入;
    这种Stage是以Shuffle为输出边界,其输入边界可以是从外部获取数据,也可以是另一个ShuffleMapStage的输出,其输出可以是另一个Stage的开始;
    在一个Job里可能有该类型的Stage,也可能没有该类型Stage;
    (2)ResultStage:最终的Stage,没有输出,而是直接产生结果或存储。
    这种Stage是直接输出结果,其输入边界可以是从外部获取数据,也可以 是另一个ShuffleMapStage的输出。
    在一个Job里必定有该类型Stage。
    因此,一个Job含有一个或多个Stage,其中至少含有一个ResultStage。

    6.RDD运行过程

    通过上述对RDD概念、依赖关系和Stage划分的介绍,结合之前介绍的Spark运行 基本流程,再总结一下RDD在Spark架构中的运行过程:
    (1)创建RDD对象;
    (2)SparkContext负责计算RDD之间的依赖关系,构建DAG;
    (3)DAGScheduler负责把DAG图分解成多个Stage,每个Stage中包含了多个 Task,每个Task会被TaskScheduler分发给各个WorkerNode上的Executor去执 行。

    10.4 Spark SQL

    10.4.1 从Shark说起

    •Shark即Hive on Spark,为了实现与Hive兼容, Shark在HiveQL方面重用了Hive中HiveQL的解 析、逻辑执行计划翻译、执行计划优化等逻辑, 可以近似认为仅将物理执行计划从MapReduce作业替换成了Spark作业,通过Hive的HiveQL解 析,把HiveQL翻译成Spark上的RDD操作。
    •Shark的设计导致了两个问题:
    一是执行计划优化完全依赖于Hive,不方便 添加新的优化策略;
    二是因为Spark是线程级并行,而 MapReduce是进程级并行,因此,Spark在兼容Hive的实现上存在线程安全问题,导致 Shark不得不使用另外一套独立维护的打了补丁的Hive源码分支 ·在这里插入图片描述

    10.4.2 Spark SQL设计

    Spark SQL在Hive兼容层面仅依赖HiveQL解析、Hive元数据,也就是说,从 HQL被解析成抽象语法树(AST)起,就全部由Spark SQL接管了。Spark SQL执行计划生成和优化都由Catalyst(函数式关系查询优化框架)负责
    在这里插入图片描述
    •Spark SQL增加了SchemaRDD(即带有Schema信息的RDD),使用户可 以在Spark SQL中执行SQL语句,数据既可以来自RDD,也可以是Hive、 HDFS、Cassandra等外部数据源,还可以是JSON格式的数据
    •Spark SQL目前支持Scala、Java、Python三种语言,支持SQL-92规范
    在这里插入图片描述

    10.5 Spark的部署和应用方式

    10.5.1 Spark三种部署方式

    Spark支持三种不同类型的部署方式,包括:
    •Standalone(类似于MapReduce1.0,slot为资源分配单位)
    •Spark on Mesos(和Spark有血缘关系,更好支持Mesos)
    •Spark on YARN
    在这里插入图片描述

    10.5.2 从Hadoop+Storm架构转向Spark架构

    在这里插入图片描述
    在这里插入图片描述
    用Spark架构具有如下优点:
    •实现一键式安装和配置、线程级别 的任务监控和告警
    •降低硬件集群、软件维护、任务监 控和应用开发的难度
    •便于做成统一的硬件、计算平台资 源池

    需要说明的是,Spark Streaming无 法实现毫秒级的流计算,因此,对 于需要毫秒级实时响应的企业应用 而言,仍然需要采用流计算框架 (如Storm)

    10.5.3 Hadoop和Spark的统一部署

    在这里插入图片描述
    •由于Hadoop生态系统中的一些组件所实现的功能,目前还是无法由Spark 取代的,比如,Storm
    •现有的Hadoop组件开发的应用,完全转移到Spark上需要一定的成本

    不同的计算框架统一运行在YARN中,可以带来如下好处:
    •计算资源按需伸缩
    •不用负载应用混搭,集群利用率高
    •共享底层存储,避免数据跨集群迁移

    10.6 Spark编程实践

    10.6.1 Spark安装

    安装Spark之前需要安装Java环境Hadoop环境
    •下载地址: http://spark.apache.org
    进入下载页面后,点击主页右侧的“Download Spark”按钮进入下载页面,下载页面中提供了几个下载选项,主要是Spark release及Package type的选择,如下图所 示。
    第1项Spark release一般默认选择最新的发行版本,如截止至2016年3月份的最 新版本为1.6.0。
    第2项package type则选择“Pre-build with user-provided Hadoop [can use with most Hadoop distributions]”,可适用于多数Hadoop版本。选择好之 后,再点击第4项给出的链接就可以下载Spark了。
    在这里插入图片描述
    在这里插入图片描述

    10.6.2 启动Spark Shell

    在这里插入图片描述

    10.6.3 Spark RDD基本操作

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    10.6.4 Spark应用程序

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    第11讲 流计算

    11.1 流计算概述

    11.1.1 静态数据和流数据

    很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量 历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(OnLine Analytical Processing)分析工具从静态数据中找到对企业有价值的信息
    在这里插入图片描述

    • 近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新的数据密集型应用——流数据,即数据以大量、快速、时变的流形式持续到达
    • 实例:PM2.5检测、电子商务网站用户点击流
    • 流数据具有如下特征:
    – 数据快速持续到达,潜在大小也许是无穷无尽的
    – 数据来源众多,格式复杂 – 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃, 要么被归档存储 – 注重数据的整体价值,不过分关注个别数据
    – 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的 数据元素的顺序

    11.1.2 批量计算和实时计算

    • 对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量计算实时计算
    在这里插入图片描述
    •批量计算:充裕时间处理静态数据, 如Hadoop
    •流数据不适合采用批量计算,因为流数据不适合用传统的关系模型建模
    流数据必须采用实时计算,响应时间为秒级
    •在大数据时代,数据格式复杂、来源 众多、数据量巨大,对实时计算提出 了很大的挑战。因此,针对流数据的 实时计算——流计算,应运而生

    11.1.3 流计算概念

    流计算:实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息
    • 流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低, 如用户点击流。因此,当事件出现时就应该立即进行处理,而不是缓存起来进行批量处理。为了及时处理流数据,就需要一个低延迟、可扩展、高可靠的处理引擎
    • 对于一个流计算系统来说,它应达到如下需求: – 高性能 – 海量式 – 实时性 – 分布式 – 易用性 – 可靠性

    11.1.4 流计算与Hadoop

    • Hadoop设计的初衷是面向大规模数据的批量处理
    • MapReduce是专门面向静态数据的批量处理的,内部各种实现机制都为批处理做了高度优化,不适合用于处理持续到达的动态数据
    • 可能会想到一种“变通”的方案来降低批处理的时间延迟——将基于 MapReduce的批量处理转为小批量处理,将输入数据切成小的片段 ,每隔一个周期就启动一次MapReduce作业。但这种方式也无法有效处理流数据
    – 切分成小片段,可以降低延迟,但是也增加了附加开销,还要处理片段之间依赖关系
    – 需要改造MapReduce以支持流式处理

    结论:鱼和熊掌不可兼得,Hadoop擅长批处理,不适合流计算

    11.1.5 流计算框架

    • 当前业界诞生了许多专门的流数据实时计算系统来满足各自需求
    • 商业级:IBM InfoSphere Streams和IBM StreamBase
    • 开源流计算框架
    – Twitter Storm:免费、开源的分布式实时计算系统,可简单、高效、可 靠地处理大量的流数据
    – Yahoo! S4(Simple Scalable Streaming System):开源流计算平台, 是通用的、分布式的、可扩展的、分区容错的、可插拔的流式系统
    • 公司为支持自身业务开发的流计算框架:
    – Facebook Puma
    – Dstream(百度)
    – 银河流数据处理平台(淘宝)

    11.2 流计算处理流程

    11.2.1 概述

    • 传统的数据处理流程,需要先采集数据并存储在关系数据库等数据管 理系统中,之后由用户通过查询操作和数据管理系统进行交互
    在这里插入图片描述
    • 传统的数据处理流程隐含了两个前提:
    – 存储的数据是旧的。存储的静态数据是过去某一时刻的快照,这 些数据在查询时可能已不具备时效性了
    – 需要用户主动发出查询来获取结果

    流计算的处理流程一般包含三个阶段:数据实时采集、数据实时计算 、实时查询服务
    在这里插入图片描述

    11.2.2 数据实时采集

    • 数据实时采集阶段通常采集多个数据源的海量数据,需要保证实时性 、低延迟与稳定可靠
    • 以日志数据为例,由于分布式集群的广泛应用,数据分散存储在不同 的机器上,因此需要实时汇总来自不同机器上的日志数据
    • 目前有许多互联网公司发布的开源分布式日志采集系统均可满足每秒 数百MB的数据采集和传输需求,如:
    – Facebook的Scribe
    – LinkedIn的Kafka
    – 淘宝的Time Tunnel
    – 基于Hadoop的Chukwa和Flume

    • 数据采集系统的基本架构一般有以下三个部分:
    – Agent:主动采集数据,并把数据推送到Collector部分
    – Collector:接收多个Agent的数据,并实现有序、可靠、高性能的转发
    – Store:存储Collector转发过来的数据(对于流计算不存储数据)
    在这里插入图片描述

    11.2.3 数据实时计算

    • 数据实时计算阶段对采集的数据进行实时的分析和计算,并反馈实时 结果
    • 经流处理系统处理后的数据,可视情况进行存储,以便之后再进行分 析计算。在时效性要求较高的场景中,处理之后的数据也可以直接丢弃

    11.2.4 实时查询服务

    • 实时查询服务:经由流计算框架得出的结果可供用户进行实时查询、 展示或储存
    • 传统的数据处理流程,用户需要主动发出查询才能获得想要的结果。 而在流处理流程中,实时查询服务可以不断更新结果,并将用户所需 的结果实时推送给用户
    • 虽然通过对传统的数据处理系统进行定时查询,也可以实现不断地更新结果和结果推送,但通过这样的方式获取的结果,仍然是根据过去某一时刻的数据得到的结果,与实时结果有着本质的区别

    • 可见,流处理系统与传统的数据处理系统有如下不同:
    – 流处理系统处理的是实时的数据,而传统的数据处理系统处理的 是预先存储好的静态数据
    – 用户通过流处理系统获取的是实时结果,而通过传统的数据处理 系统,获取的是过去某一时刻的结果
    – 流处理系统无需用户主动发出查询,实时查询服务可以主动将实时结果推送给用户

    11.3 流计算的应用

    • 流计算是针对流数据的实时计算,可以应用在多种场景中
    • 如百度、淘宝等大型网站中,每天都会产生大量流数据, 包括用户的搜索内容、用户的浏览记录等数据。采用流计 算进行实时数据分析,可以了解每个时刻的流量变化情况 ,甚至可以分析用户的实时浏览轨迹,从而进行实时个性 化内容推荐
    • 但是,并不是每个应用场景都需要用到流计算的。流计算 适合于需要处理持续到达的流数据、对数据处理有较高实 时性要求的场景

    11.3.1 应用场景1: 实时分析

    • 传统的业务分析一般采用分布式离线计算的方式,即将数据 全部保存起来,然后每隔一定的时间进行离线分析来得到结 果。但这样会导致一定的延时,难以保证结果的实时性
    • 随着分析业务对实时性要求的提升,离线分析模式已经不适 合用于流数据的分析,也不适用于要求实时响应的互联网应 用场景
    • 虽然分布式离线分析带来的小时级的分析延时可以满足大部 分商家的需求,但随着实时性要求越来越高,如何实现秒级 别的实时分析响应成为业务分析的一大挑战
    • 针对流数据,“量子恒道”开发了海量数据实时流计算框架Super Mario。通过该框架,量子恒道可处理每天TB级的实时流数据,并且 从用户发出请求到数据展示,整个延时控制在2-3秒内,达到了实时 性的要求
    在这里插入图片描述

    11.3.1 应用场景2: 实时交通

    • 流计算不仅为互联网带来改变,也能改变我们的生活
    • 如提供导航路线,一般的导航路线并没有考虑实时的交通 状况,即便在计算路线时有考虑交通状况,往往也只是使 用了以往的交通状况数据。要达到根据实时交通状态进行 导航的效果,就需要获取海量的实时交通数据并进行实时 分析
    • 借助于流计算的实时特性,不仅可以根据交通情况制定路 线,而且在行驶过程中,也可以根据交通情况的变化实时 更新路线,始终为用户提供最佳的行驶路线

    11.4 开源流计算框架Storm

    11.4.1 Storm简介

    • 以前只有政府机构和金融机构能够通过昂贵的定制系统来满足流数据 实时分析计算需求
    • 早期对于流计算的研究多数是基于对传统数据库处理的流式化,即实 时数据库,很少研究流计算框架
    • Yahoo! S4和Twitter Storm的开源,改变了这个情况
    • 在流数据处理上比MapReduce更有优势
    • 批处理系统关注吞吐率,流处理系统关注延时
    • Yahoo! S4和Twitter Storm改变了开发实时应用的方式
    – 以前既要关注处理逻辑,还要解决实时数据获取、传输、存储
    – 现在可以快速低成本搭建起实时流处理系统

    • Twitter Storm是一个免费、开源的分布式实时计算系统, Storm对于实时计算的意义类似于Hadoop对于批处理的 意义,Storm可以简单、高效、可靠地处理流数据,并支 持多种编程语言
    • Storm框架可以方便地与数据库系统进行整合,从而开发 出强大的实时计算系统
    • Twitter是全球访问量最大的社交网站之一,Twitter开发Storm流处理 框架也是为了应对其不断增长的流数据实时处理需求
    在这里插入图片描述

    11.4.2 Storm的特点

    • Storm可用于许多领域中,如实时分析、在线机器学习、持续计算、 远程RPC、数据提取加载转换
    • Storm具有以下主要特点: – 整合性 – 简易的API – 可扩展性 – 可靠的消息处理 – 支持各种编程语言 – 快速部署 – 免费、开源

    11.4.3 Storm设计思想

    11.4.4 Storm框架设计

    11.5 Spark Streaming、Samza以及三种流计算框架的比较

    11.6 Storm编程实践

    第12讲 图计算

    12.1 图计算简介

    12.2 Pregel简介

    12.3 Pregel图计算模型

    12.4 Pregel的C++ API

    12.5 Pregel的体系结构

    12.6 Pregel的应用实例——单源最短路径

    12.7 Hama的安装和使用

    第13讲 大数据在不同领域的应用

    13.1 大数据应用概览

    13.2 推荐系统

    13.3 大数据在智能医疗和智能物流领域运用

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 随着流计算越来越流行和普及,越来越多的原本主要针对离线批式数据的统计和机器学习模型也被用于流数据。 比如在风控系统中,当我们计算好特征后,还需要把这些特征输入评分模型进行风险评分。根据不同的使用场景,...

    导读:两千多年以前,孔老夫子站在大河边,望着奔流而去的河水,不禁感叹:“逝者如斯夫,不舍昼夜。”老夫子是在叹惜着韶华白首,时光易逝!

    两千多年以后的今天,当你我抱着手机读书、追剧、抢票、剁手、刷小视频、发红包的时候,一道道信息流正在以光速在世界范围内传递和传播。

    本文就从“流”讲起,带你了解什么是流计算,它都有哪些优势?用在了哪些地方?

    作者:周爽

    来源:大数据DT(ID:hzdashuju)

    自从互联网和物联网诞生以来,人与人、人与物、物与物之间的互联和互动愈加紧密和频繁,大量丰富多彩的数据在互联和互动的过程中产生。海量的数据洪流将我们的时间和空间愈占愈满,以至于让我们开始疲于奔命,鲜有时间和能力再去感受和思考那些一瞬间的百万种可能。

    武林江湖中留传着一句至理名言:“天下武功,无坚不摧,唯快不破!”。

    更快更完整地获取数据,更快更充分地挖掘出数据价值,业已成为大数据时代各行各业的共识。在线系统监控、移动数据和物联网、金融风控、推荐系统等,虽然行业各不相同,但是它们有个共同点——“实时流计算”技术在这些领域发挥着越来越重要的作用。

    01 “流”好在哪里?

    “流”是一种非常好的编程模式。

    ▲图1:代表流计算模式的有向无环图DAG

    首先,“流”与“异步”不谋而合。

    “流”的各个节点通过队列传递消息,不同节点的执行正好就是完全异步的。并且由于有队列隔离,不同节点的执行完全不用考虑并发安全的问题。“流”在内部执行时是异步和并行的,能最大限度提高资源使用效率,提高程序执行性能。

    可以说,“流”是“异步”的一种重要表现方式,“异步”则是“流”在执行时的内禀性质。

    ▲图2:“流”和“异步”,傻傻分不清楚!

    其次,如果“流”的执行节点间使用的是阻塞队列,那么整个流的各个执行环节就天然地带有了反向压力能力,让我们不必担心很多异步系统在高负载而又临时处理能力不足时造成的OOM问题。

    再次,“流”能够非常自然地描述业务执行的流程。不管是大到整个产品线的各个服务模块,还是小到每个服务模块中的具体实现步骤。就像“分形”一样,“流”能够做任意细力度的划分。这是一种非常普遍的描述事情发生过程的模式。

    最后,通过类似于Kafka这样消息中间件的隔离,可以非常清晰地定义模块和模块之间的边界,从设计模式中高内聚、低耦合的角度来看,是一种非常不错的实践!

    02 流计算解决了什么问题?

    总的来说,我们使用流计算主要是为了计算以下几类问题。

    1. 流数据操作

    流数据操作可以说是流计算系统与生俱来的能力,它本身是针对数据流的转化或转移处理,所以实现和使用起来都相对更加直观。

    流数据操作的内容主要包括了三类:对数据进行清洗、规整和结构化,对不同来源的数据进行关联及合并,以及在不同系统之间搬运数据。这三类操作通过一些常用的流式API就可以实现。

    2. 单点特征计算

    一个事件中包含的用户是否在黑名单中?发生事件的设备是否是模拟器?温度传感器传来的温度事件是否已经超出正常温度范围?发送消息设备的IP是否是代理?一次交易的金额是否属于大额交易?手机是否有SIM卡?

    诸如此类的问题,要么可以通过黑白名单,要么能够通过特定的规则计算而得到答案,实现起来相对简单,所以我们将这类特征计算称之为单点特征。

    3. 时间维度聚合特征计算

    相同设备的1小时内注册事件次数、相同银行卡号的7天交易事件次数、过去30天内同一IP段上交易金额、过去1分钟高温事件的次数、过去5分钟日志告警事件的次数……

    诸如此类特征在诸如风控、预警、监控等各种场景都非常广泛的应用。分析不难发现,这类特征都有个共同特点,它们均需要在时间维度对数据进行聚合运算。因此,我们称这类特征为时间维度聚合特征。

    4. 关联图谱特征计算

    除了时间维度的聚合分析外,我们还经常进行“空间”维度的聚合分析。不过这种分析有个更专业的名字,即“关联图谱”分析。

    比如在一些风控场景中,我们需要计算用户账户使用IP的个数、同一手机号码发生在不同城市的个数、同一设备上关联用户的数目、同一用户关联设备的数目、同一推荐人推荐的用户数等特征。

    以设备关联用户数为例,如果某个设备上注册的用户很多,那么它的风险就比较高,毕竟正常情况下我们都只会用自己的手机注册自己的账号,而不会是帮其他几十、上百人注册账号的。

    5. 事件序列分析

    数据流中的数据不是单纯在时间上有着先来后到的关系,而是在数据和数据之间也有着联系。

    考虑用户在手机上安装新APP的过程,它可能是先点击了某个广告链接,然后下载并安装了APP,最后成功注册了账号。从“点击”到“下载”,再到“安装”和“注册”,这就完成了一次将广告转化为用户的过程。

    再比如在网络欺诈识别场景中,如果用户在新建账号后,立马发生大量交易行为。那么这种“新建账号”到“10分钟内5次交易”的行为就是种非常可疑的行为了。

    诸如此类从数据流表示的事件流中,检测并筛选出符合特定模式或行为的事件序列的过程,我们称之为复杂事件处理(Complex Event Processing,简称为CEP)。CEP也是流计算经常被用来解决的问题。

    6. 模型学习和预测

    随着流计算越来越流行和普及,越来越多的原本主要针对离线批式数据的统计和机器学习模型也被用于流数据。

    比如在风控系统中,当我们计算好特征后,还需要把这些特征输入评分模型进行风险评分。根据不同的使用场景,使用的评分模型可能是基于规则的模型,也可能是基于机器学习的模型。传统的机器学习模型主要通过离线训练而来,但现在越来越多的模型会直接基于流数据在线训练和更新。

    再比如在异常检测应用中,我们会在线统计并估计变量的分布参数,然后根据训练出的分布模型判断变量之后的取值是否属于异常。这种同时在线更新和预测的做法,在流计算应用中也越来越常见。

    03 流数据状态和流信息状态

    在流计算系统中,“状态”是非常重要的方面。甚至从各种开源流计算框架的发展历史来看,我们会发现大家对实时流计算中的“状态”问题也是一点点逐步才弄清楚的。

    关联操作中临时保存的窗口数据、实现时间维度聚合特征、关联图谱特征、CEP中有限状态机、统计或机器学习模型的参数估计,实时流计算系统需要的最主要的几个计算目标,无不与“状态”有关。但,这些状态是有区别的!

    我们将流在执行过程中涉及到的状态,分为两类:流数据状态流信息状态

    • 流数据状态。在流数据处理的过程中,可能需要处理事件窗口、时间乱序、多流关联等问题,在解决这些问题的过程中,通常会涉及到对部分流数据的临时缓存,并在处理完后将其清理。我们将临时保存的部分流数据称为“流数据状态”。

    • 流信息状态。在对流数据的分析过程中,会得到一些我们感兴趣的信息,比如时间维度的聚合数据、关联图谱中的一度关联节点数、CEP中的有限状态机等,这些信息可能会在后续的流数据分析过程中被继续使用,从而需要将这些信息保存下来。同时在后续的流数据处理过程中,这些信息还会被不断地访问和更新。我们将这些分析所得并保存下来的数据称为“流信息状态”。

    将实时流计算应用中的状态分为了“流数据状态”和“流信息状态”。可以说是从两个不同的维度对“流”进行的管理。前者“流数据状态”是从“时间”角度对流进行管理,而后者“流信息状态”则是从“空间”角度对流的管理。

    “流信息状态”弥补了“流数据状态”只是对事件在时间序列上做管理的不足,将流的状态扩展到了任意的空间。

    目前,针对“流信息状态”的存储,主要有三种方式:

    • 计算节点和状态数据节点分离的分布式内存数据库方案

    ▲图3:使用Redis集群进行状态存储和管理

    • 计算节点和状态数据节点共存的分布式内存格点方案

    ▲图4:使用Ignite集群进行状态存储和管理

    • 基于分布式文件系统同步状态数据的方案

    ▲图5:基于分布式文件系统的状态存储和管理集群

    将“流计算应用本身的执行过程”和“流数据的信息管理机制”解耦,这使得实时流计算系统的整体结构更加清晰。如果我们将前者理解为CPU的执行流水线,那么后者就相当于是内存。实时流计算系统的这种架构就非常像是一个分布式的JVM了!

    04 流计算框架

    目前的开源流计算框架有许多,比如Apache Storm、Spark Streaming、Apache Samza、Apache Flink、Akka Streaming、Apache Beam等。这些流计算框架各有特色,那我们该如何面对琳琅满目的流计算框架呢?可以从两个角度来看待这个问题。

    从横向功能特征的角度来看,其实所有流计算框架的核心概念都是相同的。只要我们掌握了流计算中的核心概念,把握流计算框架中各种问题的关键所在,那么面对这些流计算框架,也不会感到眼花缭乱,乱了阵脚。

    从纵向发展历史的角度来看,以Flink为代表的新一代流计算框架,在理论和实践上都已日趋完善和成熟。当掌握了流计算中的核心概念后,不妨一开始就站在Flink这个巨人的肩膀上,开始在流计算领域的探索和实践。

    而作为有希望统一流计算领域的Apache Beam,实际上是构建在各种具体流计算框架上的更高一层统一编程模式,它对流计算中的各种概念和问题做出了总结,是我们追踪流计算领域最新进展的一个好切入点。

    最后附上实时流计算系统思维导图(点击图片可放大):

    作者简介:周爽,本硕毕业于华中科技大学,先后在华为2012实验室高斯部门和上海行邑信息科技有限公司工作。开发过实时分析型内存数据库RTANA、华为公有云RDS服务、移动反欺诈MoFA等产品。目前但任公司技术部架构师一职。著有《实时流计算系统设计与实现》一书。

    延伸阅读《实时流计算系统设计与实现》

    点击上方链接了解及购买

    转载请联系微信:DoctorData

    推荐语:高度抽象出实时流计算系统的技术支撑、架构模式、编程模式、系统实现与协同系统,并从零编写一个分布式实时流计算系统。

    有话要说????

    Q: 实时流计算还有哪些应用?

    欢迎留言与大家分享

    猜你想看????

    更多精彩????

    在公众号对话框输入以下关键词

    查看更多优质内容!

    PPT | 读书 | 书单 | 硬核 | 干货 

    大数据 | 揭秘 | Python | 可视化

    AI | 人工智能 | 5G | 中台

    机器学习 | 深度学习 | 神经网络

    合伙人 1024 | 大神 | 数学

    据统计,99%的大咖都完成了这个神操作

    ????

    展开全文
  • 流计算产品预研

    千次阅读 2017-11-19 15:39:58
    国内各大云平台现有流计算产品预研

    国内各大云平台现有流计算产品预研

    阿里云

      Alibaba Cloud StreamCompute(阿里云流计算)是运行在阿里云平台上的流式大数据分析平台,提供给用户在云上进行流式数据实时化分析工具。使用阿里云StreamSQL,用户可以轻松搭建自己的流式数据分析和计算服务,彻底规避掉底层流式处理逻辑的繁杂重复开发工作,属于阿里云的大数据基础服务,目前正在公测中。

    产品特点

    • 开发门槛低

        无需用户在流计算框架上进行代码编程以及相关工作,提供了SQL语义的流式数据分析能力(StreamSQL)降低使用门槛

    • 性能优越、功能强大

        关键性能指标超越Storm的6到8倍,数据计算延迟优化到秒级乃至亚秒级,单个作业吞吐量可达百万(记录/秒)级别,单集群规模在数千台;实现exactly once语义

    • 全链路生态

        阿里云提供了全链路流计算开发平台,涵盖从数据采集到数据生产的各个环节,深度整合各类云数据存储,包括DataHub、日志服务(SLS)、RDS、OTS、ADS、IOTHub等各类数据存储系统,无需额外的数据集成工作,阿里云流计算可以直接读写上述产品数据

    • 运维监控快捷简单

        阿里云流计算是完全托管的流式计算引擎,用户隔离、一键式启用、天然集成了数据开发、数据运维、监控预警等服务

    产品定位

    阿里云流计算提供类标准的StreamSQL语义协助用户简单轻松的完成流式计算逻辑的处理。同时,受限于SQL代码功能有限,无法满足某些特定场景的业务需求,阿里云流计算同时为部分授信用户提供全功能的UDF函数。用户使用StreamSQL+UDF可完成大部分流式数据处理分析逻辑,目前流计算更擅长于做流式数据分析、统计、处理,对于非SQL能够解决的领域,例如复杂的迭代数据处理、复杂的规则引擎告警则不适合用现有的流计算产品去解决。

    目前流计算擅长解决的几个领域的应用场景:

    • 实时网络点击PV、UV统计
    • 统计交通卡口的平均5分钟通过车流量
    • 水利大坝的压力数据统计和展现
    • 网络支付涉及金融盗窃固定行为规则的告警

    曾经阿里云流计算对接,但发现无法满足的情况:

    • Oracle存储过程用阿里云流计算替换
    • 现有的Spark作业无缝迁移到流计算
    • 多种复杂规则引擎告警

    最适用于简单编写流计算SQL即可完成自身流式数据分析业务的场景

    全链路计算

      不同于现有的离线/批量计算模型(和批量计算差异性在下一小节细述),流计算全链路整体上更加强调数据的实时性,包括数据实时采集、数据实时计算、数据实时集成。三大类数据的实时处理逻辑在全链路上保证了流式计算的低时延。全链路流计算示意图如下:


    这里写图片描述

    • 数据采集 用户使用流式数据采集工具将数据流式且实时地采集并传输到大数据消息Pub/Sub系统,该系统将为下游流计算提供源源不断的事件源去触发流式计算作业的运行。

    • 流式计算 流数据作为流计算的触发源驱动流计算运行。因此,一个流计算作业必须至少使用一个流数据作为源。一批进入的数据流将直接触发下游流计算的一次流式计算处理。

    • 数据集成 流计算将计算的结果数据直接写入目的数据存储,这其中包括多种数据存储,包括数据存储系统、消息投递系统,甚至直接对接业务规则告警系统发出告警信息。不同于批量计算(例如阿里云MaxCompute或者开源Hadoop),流计算天生自带数据集成模块,可以将结果数据直接写入到目的数据存储

    • 数据消费 流计算一旦将结果数据投递到目的数据源后,后续的数据消费从系统划分来说,和流计算已经完全解耦。用户可以使用数据存储系统访问数据,使用消息投递系统进行信息接收,或者直接使用告警系统进行告警。

    业务流程

    阿里云流计算全流程系统架构情况如下图所示。


    这里写图片描述

    1. 数据采集 广义的实时数据采集指: 用户使用流式数据采集工具将数据流式且实时地采集并传输到大数据Pub/Sub系统,该系统将为下游流计算提供源源不断的事件源去触发流式计算作业的运行。阿里云大数据生态中提供了诸多针对不同场景领域的流式数据Pub/Sub系统,阿里云流计算天然集成上图中诸多Pub/Sub系统,以方便用户可以轻松集成各类流式数据存储系统。例如用户可以直接使用流计算对接SLS的LogHub系统,以做到快速集成并使用 ECS 日志。

    2. 流式计算 流数据作为流计算的触发源驱动流计算运行。因此,一个流计算作业必须至少使用一个流数据作为数据源头。同时,对于一些业务较为复杂的场景,流计算还支持和静态数据存储进行关联查询。例如针对每条DataHub流式数据,流计算将根据流式数据的主键和RDS中数据进行关联查询(即join查询);同时,阿里云流计算还支持针对多条数据流进行关联操作,StreamSQL支持阿里集团量级的复杂业务也不在话下。

    3. 实时数据集成 为尽可能减少数据处理时延,同时减少数据链路复杂度。阿里云流计算将计算的结果数据可不经其他过程直接写入目的数据存储,从而最大程度降低全链路数据时延,保证数据加工的新鲜度。为了打通阿里云生态,阿里云流计算天然集成了OLTP(RDS产品线等)、NoSQL(OTS等)、OLAP(ADS等)、MessageQueue(DataHub、ONS等)、MassiveStorage(OSS、MaxCompute等)。

    4. 数据消费 流式计算的结果数据进入各类数据存储后,用户可以使用各类个性化的应用消费结果数据: 用户可以使用数据存储系统访问数据,使用消息投递系统进行信息接收,或者直接使用告警系统进行告警。

    附: 数据链路情况

    对于上图的数据链路,部分数据存储由于和流计算模型不能一一匹配,需要使用其他类型的流数据做中转,说明如下:

    • DataHub

        DataHub提供了多类数据(包括日志、数据库BinLog、IoT数据流等等)从其他数据存储上传到DataHub的工具、界面,以及和一些开源、商业软件的集成,参看《DataHub相关介绍文档》,即可获取丰富多样的数据采集工具。

    • 日志服务(LogService)

      LogService是针对日志类数据一站式服务,在阿里巴巴集团经历大量大数据场景锤炼而成。LogService提供了诸多的针对日志的采集、消费、投递、查询分析等功能。

    • 物联网套件(IoTHub)

        物联网套件是阿里云专门为物联网领域的开发人员推出的,其目的是帮助开发者搭建安全性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。

        使用IotHub 规则引擎可以将IoT数据方便投递到DataHub,并利用流计算和MaxCompute进行数据加工计算。查看《IoT规则引擎使用》以查看如何将IoT数据推送到DataHub。

    • 数据传输(DTS)

        DTS支持以数据库为核心的结构化存储产品之间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。使用DTS的数据传输功能,可以方便的将RDS等BinLog解析并投递到DataHub,并利用流计算和MaxCompute进行数据加工计算。

    • Message Service

        阿里云消息服务阿里云商用的消息中间件服务,具有大规模,高可靠、高并发访问和超强消息堆积能力的特点。流计算可以直接从消息服务读取流式数据。阿里云流计算对接消息服务当前仍在开发中。

    • MQ

        阿里云MQ服务是企业级互联网架构的核心产品,基于高可用分布式集群技术,搭建了包括发布订阅、消息轨迹、资源统计、定时(延时)、监控报警等一套完整的消息云服务。阿里云流计算对接ONS服务当前仍在开发中。

    主要概念

    阿里云流计算处理的数据来自哪里?如何加载数据到流计算;流计算处理后的结果数据如何继续应用?

    阿里云流计算本身不带有业务存储,所有的数据均是来自于外部周边阿里云提供的存储系统持有的数据。目前阿里云支持几类数据存储类型:

    • 流式的数据输入: 为下游流式计算提供流式数据输入,是流计算进行数据处理的数据触发机制,推动流计算持续进行数据计算。每个流计算作业必须至少声明一个流式数据输入源。

    • 静态数据输入: 静态存储为流计算提供了数据关联查询,对于每条流式数据,可以关联外部一个静态数据源进行查询。因此,静态数据输入也被成为维表。

    • 结果表输出: 流计算将计算的结果数据写出到目的数据表,为下游数据继续消费提供各类读写接口。

    阿里云流计算支持哪几个流式数据输入?维表输入?结果表输出?

    目前支持流式输入表有:

    • 大数据总线(DataHub)

    • 日志服务(LogService)

    支持静态输入表有:

    • 表格存储(TableStore)

    • 云数据库(RDS)

    • 分布式数据库(DRDS)

    支持输出表有:

    • 大数据总线(DataHub)

    • 日志服务(LogService)

    • 消息服务(MessageService)

    • 分析型数据库(AnalyticDB)

    • 表格存储(TableStore)

    • 云数据库(RDS)

    • 分布式数据库(DRDS)

    阿里云流计算提供的编程接口是什么?如何编写流式数据处理逻辑?

    阿里云流计算提供StreamSQL编写业务逻辑,为流式数据分析定制多种数据处理函数和操作符。以Word Count统计为例,下面给出一个具体的SQL例子:

    -- 声明一个流式源表
    create stream table stream_source(word string) ;
    -- 声明一个目标表
    create result table stream_result(word string, cnt bigint) ;
    --统计word次数
    insert into stream_result select
       t.word
       ,count(1)
    from stream_source t
      group by t.word;
    

    单个阿里云流计算作业包含几个部分?

    一个静态的流计算作业目前分为几大类静态信息,包括:

    • 代码: SQL代码,用户编写的业务逻辑,流计算作业核心逻辑,其中包括 输入表DDL声明(分为流式输入表、静态输入表)、输出表DDL声明,以及执行业务逻辑的DML。

    • 参数: 参数用来描述作业运行时指标,例如并发量、批处理数据量等信息。

    • 属性: 作业的业务信息,例如创建人、创建时间等相关记录。

    我存放的数据不在上述支持的存储列表,如何处理?

    如果您所选择的阿里云存储产品不在我们系统支持范围之内,请提交工单告之我们。如果您使用了自建开源存储,需要您将您的数据转移到上述支持的列表存储中。您需要自己搭建相关的转换常驻程序完成上述转换逻辑,例如当前流计算流式数据源输入暂时还不支持阿里云消息服务,那么用户可以选择写应用程序将消息服务中的数据转换为DataHub,再交由流计算读取DataHub进行处理。

    华为云

      实时流计算服务(Cloud Stream Service,简称CS),是运行在华为云上的实时流式大数据分析服务,全托管的方式使用户无需感知计算集群,只需聚焦于Stream SQL业务,即时执行作业,完全兼容Apache Flink API。

      Cloud Stream实时流计算平台是华为公司在IT领域主推的低时延(ms级时延)、高吞吐、高可靠的分布式实时流计算服务。它以Flink为基础,加入华为沉淀的增强特性和安全增强,是一个批流合一的分布式计算服务,提供了数据处理所必须的丰富Stream SQL特性,后续还会支持在Stream SQL上增加机器学习和图计算相关算法的功能,适用于实时性要求高、吞吐量大的业务场景。

    特点和优势

    • 丰富的Stream SQL在线分析能力

        支持window、join等聚合函数,用SQL表达业务逻辑,简便快捷实现业务。

    • 分布式实时计算

        支持大规模集群计算,集群弹性伸缩,最大化节省成本。

    • 易用

        在SQL编辑平台写Stream SQL,Stream SQL定义数据流入、数据处理、数据流出,快速便捷实现业务逻辑,降低流数据分析门槛。

    • 全托管

        用户完全不感知计算集群,对运行的作业可视化查看运行状态。

    • 开箱即用

        不再关心各种大数据框架,写StreamSQL,即时运行作业。

    • 安全隔离

        租户三重安全机制保障,确保作业安全运行,且租户计算集群完全和其他租户物理隔离,独立的安防设置,确保计算集群的安全性。

    • 高吞吐低时延

        从DIS中读取数据,服务支持自然反压机制,支持高吞吐压力;毫秒级延迟,满足实时计算的业务场景。

    产品架构


    这里写图片描述

      在实时业务架构中,流计算服务使用DIS服务作为数据源,用户在流计算服务中提交StreamSQL作为数据处理逻辑,处理结果输出到持久化数据存储,以供下游业务使用。

    • Source数据源

        从DIS服务中读取数据

    • 流式计算

        提供Stream SQLFlink API两种能力,上手成本最低,使用简便

    • Sink数据输出

        分析的结果数据,实时写入DIS(数据接入服务)/ OBS(对象存储服务)等服务,以供下游业务使用

    应用场景

      Cloud Stream服务的使用,聚焦于互联网和物联网场景,适用于实时性要求高、吞吐量大的业务场景。主要应用在互联网行业中小企业/物联网/车联网/金融反欺诈等多种行业应用场景,如,互联网汽车、日志在线分析、在线机器学习、在线图计算、在线推荐算法应用等。

    • 实时流分析场景

        应用:实时大数据分析。

        场景特点:面向流数据,支持window、CEP、Join等复杂的流分析操作,毫秒级延迟。

        适用场景:在线分析,金融风控,交通流量分析,ETL,实时决策。

    • 物联网IOT场景

        应用:物联网在线数据分析。

        场景特点:物联网IoT直接调用Cloud Stream服务API,Cloud Stream可以实时读取传感器信息并执行用户的分析逻辑,分析结果对接到DIS、RDS等服务用于可视化、持久化、告警或报表展示。

        适用场景:电梯IoT、工业IoT、共享单车、互联网汽车和智能家居。

    上下游数据

    • 数据接入服务(DIS)

        数据接入服务(DIS)是Cloud Stream的数据源和作业输出数据的存储地。

      1. 数据源:DIS接入用户数据,Cloud Stream从DIS读取数据,作为作业的输入数据。
      2. 数据的存储地:Cloud Stream将作业的输出数据写入DIS。
      3. 对象存储服务(Object Storage Service)

    • 对象存储服务(OBS)

        可用作CloudStream的数据源和作业Checkpoint数据的备份地。

      1. 数据源:Cloud Stream支持从OBS上读取用户存储的数据,作为作业的输入数据。

      2. 作业Checkpoint数据的备份地:如果作业开启了Checkpoint功能,Cloud Stream支持将作业快照存储到OBS中,以便作业在出现异常时可以从Checkpoint(一致性检查点)恢复作业。

    • 关系型数据库(Relational Database Service)

        关系型数据库(RDS)用于存储Cloud Stream作业输出的结果数据。

    • 与统一身份认证服务的关系

        统一身份认证服务(Identity and Access Management,简称IAM)为Cloud Stream提供了鉴权功能。

    • 云审计服务(Cloud Trace Service)

        云审计服务(CTS)为用户提供Cloud Stream的操作记录,供用户查询、审计和回溯使用。

    注意:

      Cloud Stream支持从DIS上读取编码格式为csv或json格式的数据。

      Cloud Stream只支持从OBS上存放和读取csv格式的数据。

    代码实例

    创建作业并提交

    使用实时流计算服务,首先要创建一个作业,如“JobSample”。

    登录Cloud Stream管理控制台。

    在Cloud Stream管理控制台的左侧导航栏中,单击“作业管理”,进入“作业管理”页面。

    单击“新建”,弹出“新建作业”页面。

    输入“作业名称”和“作业描述”,例如:作业名称为“JobSample”,作业描述为“This is a job sample.”。

    在“作业模板”下拉框中,选择“默认”,使用系统默认的作业模板。

    单击“确定”,进入“作业编辑”页面,在SQL语句编辑区域中会显示“默认”作业模板的SQL语句。

    在SQL语句编辑区域中,根据作业的实际需要,编辑SQL语句。例如:

    /** 创建输入流,从DIS的dis-source-stream通道获取数据,数据编码格式为CSV,分隔符为逗号 **/
    create source stream stream_source (
      name STRING,
      v2 STRING,
      time LONG
    ) WITH (
      type = "dis",
      region = "cn-north-1",
      channel = "dis-source-stream",
      partitionCnt = "3",
      encode = "csv",
      fieldDelimiter = ","
    ) timestamp by proctime.proctime;
    
    /** 创建输出流,结果输出到DIS的dis-sink-stream1通道,若通道有多个partition,以name作为key 派发,输出格式为json,
        enableOutputnull为false表示当属性为null时,该属性不进行输出 **/
    create sink stream stream_sink (
      name STRING,
      v2 STRING
    ) WITH (
      type="dis",
      region="cn-north-1",
      channel = "dis-sink-stream1",
      partitionKey = "name",
      encode = "json",
      enableOutputnull = "false"
    );
    
    /** 创建输出流,结果输出到DIS的dis-sink-stream2通道,若通道有多个partition,以name作为key 派发,输出格式为csv **/
    create sink stream stream_sink2 (
      name STRING,
      cnt BIGINT
    ) WITH (
      type="dis",
      region="cn-north-1",
      channel = "dis-sink-stream2",
      partitionKey = "name",
      encode = "csv",
      fieldDelimiter = ","
    );
    
    /** 直接将入流 stream_source 输出到 stream_sink **/
    insert into stream_sink select name, v2 from stream_source;
    
    /** 计算从运行开始流进来的事件个数 **/
    insert into stream_sink2
    select name, count(v2) OVER (ORDER BY proctime RANGE UNBOUNDED preceding) as cnt1
    from stream_source;
    

    单击“语义校验”,确保语义校验成功。

    在“作业编辑”页面的右侧“运行参数设置”页签,使用默认运行参数即可。

    单击“保存”。

    单击“提交”,将作业发布线上。

    百度云

    无流计算产品

    腾讯云

    大数据处理套件TBDS

      腾讯大数据处理套件(Tencent Big Data Suite)是基于腾讯多年海量数据处理经验,对外提供的可靠、安全、易用的大数据处理平台。您可以按需部署大数据处理服务实现数据处理需求,例如报表展示,数据提取、分析,客户画像等大数据应用。该平台中集成了流式计算

    • 实时流处理计算

        灵活:支持 TStorm(用 Java 语言重写的 Storm 流处理引擎)、Storm 流式任务作业引擎,覆盖实时要求极高的流式作业场景;支持基于 Spark 上的 Spark Streaming,满足毫秒级的实时计算场景需求,如实时推荐、用户行为分析等。

    网易蜂巢

    无流计算产品

    总结

    1. 从国内各大厂家的云计算产品综合比较来看,流计算平台仍然处于起步阶段,相对来说最为成熟完善的阿里云流计算平台也是处于公测中,还有许多根本就没有流计算平台产品推出。

    2. 阿里云流计算平台技术最成熟、架构最为完善、业务场景丰富、用户相对较多

    3. 华为流计算平台与阿里云流计算平台在各方面都较为类似,但是华为的不够成熟、不够规范、架构脉络不清晰、相关资料较少、还处于起步阶段

    4. 腾讯云将流计算集成在大数据开发套件之中,相关资料太少,只知道底层引擎采用的是腾讯自己用java重写的TStrom,另外支持SparkStreaming

    5. 阿里云之前的流计算平台底层引擎采用的是阿里自己改写的Storm(JStorm),最新版本的话与华为一样,底层引擎都选用的是Flink,可见未来的流计算引擎的趋势应该是Flink

    展开全文
  • 简答题 什么是大数据 大数据是指无法在容许的时间内用常规软件工具对...批处理计算,流计算,图计算,查询分析计算 大数据计算模式 (1)、批处理计算:批处理计算主要解决针对大规模数据的批量处理,也就是我们日常数
  • 中国大学生mooc大数据技术原理与应用(林子雨)答案

    万次阅读 多人点赞 2020-11-30 20:58:42
    以下哪个产品是用于批处理的: A.MapReduce B.Dremel C.Storm D.Pregel 正确答案:A你选对了 6单选(2分) 每种大数据产品都有特定的应用场景,以下哪个产品用于流计算的: A.GraphX B.S4 C.Impala D.Hive 正确答案...
  • 什么是流式计算

    千次阅读 2020-06-02 21:49:19
    一、流式计算的背景 在日常生活中,我们通常会把数据存储在一张表中,然后再进行加工、分析,这里就涉及到一个时效性的问题。如果我们处理以年、月为单位的级别的数据,那么数据的时效性要求并不高;但如果我们处理...
  • 腾讯实时计算团队为业务部门提供高效、稳定和易用的实时数据服务。其每秒接入的数据峰值达到了 2.1 亿条,每天接入的数据量达到了 17 万亿条,每天的数据增长量达到了 3P...
  • 计算机里用于存放程序和数据的东西叫做外辅存储器,简称外存储其实,比如固态硬盘、机械硬盘、U盘、磁盘、光盘等等都属于外存储器。它们的作用就是用于存放大量的数据以及软件的,并且能够长期存放,而短期存放数据...
  • 阿里云StreamCompute流计算架构

    千次阅读 2019-06-20 17:48:11
    下图为阿里云流计算全流程系统架构,主要包含:数据采集,流数据,流计算,数据源,数据消费这些过程。 数据采集 用户可以使用流式数据采集工具将数据流式且实时地采集并传输到大数据Pub/Sub系统,该系统将...
  • 第一代计算机主要应用领域是什么

    千次阅读 2021-07-03 00:29:57
    科学计算(或数值计算)科学计算是指利用计算机来完成科学研究和工程技术中提出的数学问题的计算。在现代科学技术工作中,科学计算问题是大量的和复杂的。利用计算机的高速计算、大存储容量和连续运算的能力,可以实现...
  • 那些年我们用过的流计算框架

    千次阅读 2017-10-23 00:00:00
    数据时代,从数据中获取业务需要的信息才能创造价值,这类工作就需要计算框架来完成。传统的数据处理流程中,总是先收集数据,然后将数据放到DB中。当人们需要的时候通过DB对数据...基于此,一种新的数据计算结构---
  • 软硬一体的EasyNVR边缘计算设备在视频...边缘网关设备必须具备边缘处理能力,媒体能力、感知能力、分析能力; 边缘设备的作用 应用的场景 典型应用 边缘网关的能力 边缘网关推荐 EasyNVR EasyRTMPLive EasyNTS ...
  • 1.科学计算是计算机最原始的应用领域。在科技技术和工程设计中,存在大量的各类数学计算的问题。其特点是数据量不很大、很复杂,如解几百个线性联立方程组、大型矩阵运算、高价微分方程组等,用其他计算工具是难以...
  • 大数据相关技术的代表产品总结

    千次阅读 2020-09-27 12:05:51
    流计算 针对流数据的实时计算 Storm, S4, Flume, Streams, Puma, DStream, Super Mario, 银河流数据处理平台等 图计算 针对大规模图结构数据分析 Pregel, GraphX, Giraph, PowerGraph, Hama, GoldenOrb等 查询...
  • 现今实时流计算模型

    千次阅读 2012-11-27 22:30:29
    近年来,一种新的数据密集型应用已经得到了广泛的认同,这类应用的特征是:数据不宜用持久稳定关系建模,而适宜用瞬态数据建模。这些应用的实例包括金融服务、网络监控、电信数据管理、Web应用、生产制造、传感...
  • 该传感器不仅可准确测量应用于可穿戴设备的运动,而且还可用于提供其他功能,例如跟踪活动、计算步数或者在检测到特定g值时启动某个应用。 ADXL362是一款微功耗、3轴MEMS(微机电系统)加速度计,非常适合在电池供电型...
  • [Flink基础]--什么是处理?

    千次阅读 2018-09-29 12:56:46
    什么是处理? Data Artisans由ApacheFlink®的原始创建者创建,我们花了很长时间来解决处理领域的问题。在这篇介绍性文章中,我们将提供有关处理和Apache Flink适合的视角。要了解更多信息,您可以下载有关...
  •  实时计算的概念实时计算一般都是针对海量数据进行的,一般要求为秒级。实时计算主要分为两块:数据的实时入库、数据的实时计算。主要应用的场景:1) 数据源是实时的不间断的,要求用户的响应时间也是实时的(比如...
  • 大数据技术原理与应用——练习题

    万次阅读 多人点赞 2021-05-10 14:37:55
    第一章 大数据概述 1第三次信息化浪潮的标志是: A.互联网的普及 B.云计算、大数据、物联网技术的普及 C.个人电脑的普及 D.虚拟现实技术的普及 2就数据的量级而言,1PB数据是多少TB... A.... B.... C.
  • 大数据的处理和批处理及其框架

    万次阅读 多人点赞 2019-07-09 19:15:25
    虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近几年才经历了大规模扩展。 在之前的文章中,我们曾经介绍过有关大数据系统的常规概念、处理过程,...
  • 作者简介:田浩兵,中国移动云能力中心SaaS产品部技术专家组成员、边缘应用产品组研发经理,曾参与能力开放平台、中小企业云平台、集中化计划建设、云视频等项目及产品的研发工作,在微服务架构设计及媒体处理领域...
  • 大数据技术原理与应用课后题(林子雨)

    千次阅读 多人点赞 2021-01-06 12:10:45
    以下哪个产品是用于批处理的: A.MapReduce B.Dremel C.Storm D.Pregel 正确答案:A你选对了 6单选(2分) 每种大数据产品都有特定的应用场景,以下哪个产品用于流计算的: A.GraphX B.S4 C.Impala D.Hive 正确答案...
  • 流式计算--Kafka详解

    万次阅读 2018-03-24 16:08:02
    理解storm、spark streamming等流式计算的数据来源、理解JMS规范、理解Kafka核心组件、掌握Kakfa生产者API、掌握Kafka消费者API。对流式计算的生态环境有深入的了解,具备流式计算项目架构的能力。所以学习kafka要...
  • TensorFlow™ 是一个采用数据图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让...
  • 计算是思科创造的一个术语,由OpenFog Consortium支持,该联盟由Arm、思科、戴尔、英特尔、微软和普林斯顿大学边缘实验室于2015年成立。其使命宣言(部分)内容如下: 我们的工作将定义分布式计算、网络、存储、...
  • 什么是处理

    千次阅读 2020-07-07 08:34:24
    处理正变得像数据处理一样流行。处理已经超出了其原来的实时数据处理的范畴,它正在成为一种提供数据处理(包括批处理),实时应用乃至分布式事务的新方法的技术。1、什么是处理?处理是不断...
  • 华为KubeEdge在边缘计算的实践

    万次阅读 多人点赞 2018-12-05 16:09:34
    华为KubeEdge在边缘计算的实践摘要1 介绍2 相关工作3 架构和设计3.1 KubeBus3.1.1 Edge Node VPN3.1.2 将边缘节点VPN与容器网络连接3.1.3 多租户管理/数据平面和服务发布 本篇文章是对华为论文的翻译,意在让更多人...
  • 导读:本文将介绍边缘计算出现的背景、不同的概念。作者:赵志为 闵革勇来源:大数据DT(ID:hzdashuju)01 边缘计算的历史背景1946年在美国宾夕法尼亚大学,电子晶体管计算机EN...
  • 2022年了,PyTorch和TensorFlow选哪个

    千次阅读 多人点赞 2022-01-07 00:24:55
    Coral 提供了一系列用于原型设计、生产和传感的硬件产品,其中一些本质上是增强型的树莓派,专为 AI 应用程序创建,能够利用 Edge TPU 在低功耗设备上进行高性能推理。Coral 还提供用于图像分割、姿态估计、语音...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,406
精华内容 64,962
热门标签
关键字:

哪个产品是用于流计算的