【云驻共创】华为云大数据应用开发总指导(概述)

举报
SilenCQ 发表于 2021/12/13 20:09:53 2021/12/13
【摘要】 大数据应用开发总指导介绍了大数据的主流技术,以及大数据技术的演变过程,然后总体介绍了三个解决方案的概念、特点和流程图,最后介绍了大数据开发过程中应该注意的细节。

前言

随着大数据技术的飞速发展和大数据应用的不断普及,大数据已经成为当今时代最热门的话题之一。不过对于大数据的了解,很多人还只是停留在表面,提到大数据,很多人只是知道它是最新的科技,有很大的价值,对于它的主流技术和具体的解决方案可能没有过多的认知,本次课程将指引大家学习大数据主流技术和企业级大数据解决方案。

目标

学完本章后,您将能够:

了解大数据主流技术

了解大数据场景化解决方案

了解大数据应用开发


一、大数据主流技术

第三次信息化浪潮

根据IBM前首席执政官郭士纳的观点,IT领域每隔十五年就会迎来一次重大变革。

第一次信息化浪潮呢是在1980年前后,标志是个人计算机,当时解决的问题是信息处理,其实就类似于我们学数学一样,对数据进行条件成熟或者其他相应运算。在当时的一些代表企业,包括英特尔、AMD、IBM(蓝色巨人)、苹果、微软、联想、戴尔、惠普等公司。

第二次大概是在1995年前后,它的一个标志是互联网,解决的问题也是信息传输。比如说打游戏或者上网聊天,微博、微信、qq等等。代表企业包括雅虎、谷歌、阿里巴巴、百度、腾讯等等。

第三次信息化是在2010年前后,这时候就有了几个概念,第一个叫物联网,万物互联,第二个是云计算。第三个是大数据。解决的问题是什么呢?信息爆炸。

为什么是信息爆炸呢?首先在互联网的时候,它就产生了很多的数据,比如在使用微博、微信在发朋友圈或者动态的时候,就会产生很多的数据。第二块数据在物联网,大家可能听说过万物互联的这种概念,万物互联其实就是什么呢?在生活中的天气预报,天气预报会说某个地方温度是多少,温度它是一种实时变化的。实时变换的是什么呢?它里面可能是有一个温度传感器,一直在那里采集温度。像这种传感器它并不是某一行才有,它是很多行业里面都有各种各样的传感器,这个传感器和我们人不一样。人一天的信息数据有可能并不多,但是像传感器是一天二十四小时不间断的去产生数据,所以说这时候就产生一个衡量的数据。代表企业包括有亚马逊、谷歌、IBM、Hortonworks、阿里云、华为等等。

科技助力大数据时代到来


大数据的迅速发展离不开存储技术、CPU处理能力的提升,同时网络带宽不断增加,移动通信宽带网络快速发展,各种终端设备可以随时随地快速传输数据。

第一个V是volume,数据的体量巨大。主要体现在从TB级别到PB级别,截至目前为止,人类生产的所有印刷材料的数据量是两百个PB。那么当前典型的个人计算机硬盘的容量为TB量级,而一些大企业的数据量已经接近到EB级别.

第二个V指的是variety。多元化主要指大数据的异构和多样性。

第三个V是value价值,主要体现在大量的不相关信息,价值密度低,需要通过深度复杂分析才可以对未来的趋势和模式进行预测。

第四个V是velocity,高效主要体现在实时分析,实时呈现分析结果。


三驾马车

大数据技术起源于Google在2004年前后发表的三篇论文,也就是我们经常听到的“三驾马车”。

  • 分布式文件系统GFS
  • 大数据分布式计算框架MapReduce
  • 分布式数据库系统BigTable

作为大数据时代开拓者的谷歌,它的“三驾马车”远远早于2010年诞生:谷歌文件系统第一次公开发表的论文是在2003年,MapReduce公开发表的时间是2004年,而BigTable则公开发表于2006年。这“三驾马车”,主要是为谷歌的核心搜索业务服务的。作为全球最大的搜索引擎,谷歌需要存储整个互联网的内容,并且要在这个内容的基础上构建倒排索引,这些都是基于“三驾马车”来实现的。

倒排索引是对互联网内容的一种索引方法,是指从搜索词到对应的互联网文档的索引方法。用户可以通过搜索词去搜索互联网,返回的则是和搜索词相关的文档。之所以称为倒排索引,是因为文档到文档里面的词是顺序的,而从文档里面的词到文档是逆序的。

为了构建倒排索引,谷歌首先需要存储整个互联网的内容,并存储构建倒排索引所需的空间。而在当时的技术条件下,世界上是没有现成的产品可以实现这种倒排索引。所以,谷歌发明了谷歌文件系统,一个基于大量的廉价个人计算机的海量存储系统,它可以轻松地存储整个互联网的内容。

MapReduce则是谷歌构建第一代倒排索引的基础,它可以大规模并行地处理整个互联网上的所有文档。

BigTable是一个键值存储系统。它可以存储一个主键的不同时期的多个版本的值,是谷歌代号为“咖啡因”的最新一代倒排索引引擎的核心。


2003:谷歌发布The Google File System 论文

2004:谷歌发布Mapreduce 论文

2006:谷歌发布Big table论文,受谷歌论文启发Doug Cutting开发相关项目,同年, Hadoop从Nutch中分离,为了便于MapReduce开发,Yahoo研发Pig。

2007:Hadoop成为Apache顶级项目;专门运营Hadoop的商业公司Cloudera成立

2008:Facebook将Hive贡献到开源社区

2010:HBase独立成为Apache顶级项目

2012:Yarn作为独立项目,负责资源调度;Sqoop成为Apache顶级项目

2014:Spark成为Apache顶级项目,Storm成为Apache顶级项目,Flink成为Apache顶级项目

大数据主流技术

所谓大数据技术,是指伴随大数据的采集、存储、处理和分析的相关技术。大数据的关键技术可以分为大数据采集、大数据预处理、大数据存储及管理、大数据处理、大数据分析及挖掘、大数据展示等几方面


大数据主流技术–数据采集

上图图标一个木头在水上进行相应的滑动。我们古时候中国的历史源远流长,很多时候在上游的某个河道里面去伐木,然后的就会把这个木头给它抛到水里面去,然后让这个木头去顺流而下。到另一个地方去把木头去给它收集起来,这样的话就省了很多人力。在大数据里,它就是把数据放到一个类似河道的地方,然后数据进行流动,并进行相应的采集。

使用Flume,可进行流式日志数据的收集。使用Sqoop可以交互关系型数据库,进行导入导出数据。使用爬虫技术,可在网上爬取海量网页数据。

在互联网行业技术快速发展的今天,数据采集广泛应用于互联网及分布式领域(常见的摄像头、麦克风等都可以成为数据采集的工具),此外还集合了信号、传感器、激励器、信号调流、数据采集设备和软件应用等。大数据采集技术通过RFID射频数据、传感器数据、社交网络数据、移动互联网数据等方式获得各种类型的结构化、半结构化、非结构化的海量数据。

因此,大数据采集技术也面临着诸多挑战

一方面数据源的种类多,数据的类型繁杂,数据量大,并且产生的速度快;另一方面需要保证数据采集的可靠性和高效性,同时还要避免重复数据。

大数据主流技术–数据存储与管理

在大数据时代,由于从多渠道获得的数据通常缺乏一致性,数据结构混杂,且数据不断增长,更何况任何机器都会有物理上的限制:内存容量、硬盘容量、处理器速度等。为了有效应对现实世界中复杂多样性的大数据处理需求,需要针对不同的大数据应用特征,从多个角度、多个层次对大数据进行存储和管理。

目前,大数据主要来源于搜索引擎服务、电子商务、社交网络、音视频、在线服务、个人数据业务、地理信息数据、传统企业、公共机构等领域。因此数据呈现方法众多,可以是结构化、半结构化和非结构化的数据形态,不仅使原有的存储模式无法满足数据时代的需求,还导致存储管理更加复杂。

大数据利用分布式文件系统HDFS、HBase、Hive,实现对结构化、半结构化和非结构化数据的存储和管理。

大数据主流技术–数据处理与分析

Hadoop分布式文件系统,建立起可靠、高带宽、低成本的数据存储集群,便于跨机器的相关文件管理。Hadoop的MapReduce引擎,则是高性能的并行/分布式MapReduce算法数据的处理实现。Spark,是基于内存计算,大大提升数据处理效率。Flink流数据处理引擎是新一代流处理系统,具有高吞吐、低时延、高可靠等特性,它的性能可以达到毫秒水平,处理的可靠性可以达到SparkStreaming一样的Exactly Once,同时支持多租户资源隔离,更适合企业级流处理场景。

我们可以利用分布式并行编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析。


小结:

本节介绍了大数据的发展史,以及各种大数据技术,包括数据采集,数据存储与管理,数据处理与分析。

1、ACD      2、D       3、AB


二、大数据场景化解决方案

大数据已经融入到了社会、生产和生活这个方方面面,其巨大价值日益显现。大数据最近比较火的是人工智能这块,人工智能它分为初级和高级,目前主要是集中在初级的人工智能。但是大数据这块不一样,大数据应用是非常成熟的。

首先我们看一下它的应用领域,比如说金融、物流、医疗、互联网、城市。金融有高频交易、市场运行分析和现代风险分析等。主要都是实时的,因为涉及到金钱他需要得到快速的响应结果。第二是物流这块,比如说智慧物流,如果说我需要送一个快递,这个快递运输都是用货车或者卡车,该走哪条线路都是从里程进行分析,进行成本控制和路况风险管理。医疗有流行病预测、智慧医疗,健康管理等。互联网有用户画像,个性化推荐,广告投放等。城市领域有智慧交通,城市规划,智能安防等。


场景化解决方案的分类

在面对不同的场景时,会使用不同的大数据组件去解决处理,主要有如下大数据场景化解决方案。

  • 离线批处理
  • 实时检索
  • 实时流处理
  • 融合数仓


离线批处理的概念

离线批处理,是指对海量历史数据进处理和分析,生成结果数据,供下一步数据应用使用的过程。离线处理平台主要用来进行数据处理和加工,将原始数据加工成明细数据。以及进行离线分析和碰撞分析产生分析结果数据,供上层应用调用。

离线批处理对数据处理的时延要求不高,但是处理的数据量较大,占用的计算存储资源较多,通常通过MR作业、Spark作业或者HQL作业实现。


离线批处理的特点

  • 处理时间要求不高
  • 处理数据量巨大
  • 处理数据格式多样
  • 占用计算存储资源多


离线批处理分为三块分别是数据源、离线处理平台和业务应用,数据源主要处理流式数据、文件数据和数据库里的数据。

流式数据:从某个地方源源不断收集数据

文件数据:电影、音乐mp3等文件

数据库:业务数据库,网站注册登录时的个人信息 


离线处理平台分为三块:数据采集、数据存储和数据分析。实时采集系统有Flume/第三方采集等,批量采集系统有Flume/Sqoop/第三方ETL等进行导入导出

数据存放在HDFS分布式文件系统,数据处理分为两种,一种是Hive以表的方式对数据进行管理,管理之后提取我们想要的数据,Hive底层是MapReduce计算机引擎,类似于一个皮包公司;Spark SQL是Spark组件之一,YARN是对海量数据进行分布式处理分配执行,类似于一个管家的身份。

业务应用可以在数据集市进行集市应用、数据仓库的仓库应用(交互式分析)、专题库的专题应用。

实时检索概念

实时检索简而言之就是对系统内的一些信息根据关键词进行即时、快速搜索,实现即搜即得的效果。强调的是实时低延迟。

核心诉求

  • 检索性能要求高:基于主键的检索需要在1秒内响应,基于非主键的检索需要在3秒内响应,不承担复杂查询和统计类查询
  • 高并发查询:·通常有大于100的并发查询
  • 数据量大:PB级数据量,集群规模在1000节点以上。对图数据库的场景,点个数在10亿以上,边个数在100亿以上
  • 支持结构化和非结构化:需要同时保存结构化数据和非结构化数据,经常用来对图片等小文件进行检索
  • 高效的数据加载:数据加载要求高,每小时可以加载TB级数据
  • 支持图检索:支持检索图数据,支持图标准查询接口


源数据分为三块,文件数据、流式数据和图数据;文件数据;实时检索平台中数据采集分为批量加载(Loader/Flume/Spark/第三方加载)、实时加载(Spark Streaming/第三方采集)和GraphBase导入工具;实时检索引擎有HBase\ElasticSearch,GraphBase(可选)。业务应用上的实时检索业务分为轨迹查询、日志查询和话费查询。


实时流处理概念

实时流处理,通常是指对实时数据源进行快速分析,迅速触发下一步动作的场景。实时数据对分析处理速度要求极高,数据处理规模巨大,对CPU和内存要求很高,但是通常数据不落地,对存储量要求不高。实时处理,通常通过StructuredStreaming或者Flink任务实现。


实时数据处理系统的诉求

  • 处理速度快:端到端处理需要达到秒级,流处理平台负责的数据采集和数据处理要在1秒内完成。如风控项目要求单条数据处理时间达到秒级,单节点TPS大于2000。
  • 吞吐量高:需在短时内接收并处理大量数据记录,吞吐量需要达到数十兆/秒/节点。
  • 抗震性强:为应对数据源端业务数据产生速度会突然出现峰值的情形,需提供数据缓存机制。
  • 可靠性高:网络、软件等故障发生时,需保证每条数据不丢失,数据处理不遗漏、不重复。
  • 水平扩展:当系统处理能力出现瓶颈后,可通过节点的水平扩展提升处理性能。
  • 多数据源支持:支持网络流、文件、数据库表、IOT等格式的数据源。对于文件数据源,可以处理增量数据的加载。
  • 数据权限和资源隔离:消息处理、流处理需要有数据权限控制,不同的作业、用户可以访问、处理不同的消息和数据。多种流处理应用之间要进行资源控制和隔离,防止发生资源争抢。
  • 第三方工具对接:支持与第三方规则引擎、决策系统、实时推荐系统等对接。


实时流处理数据流图中数据源分为三块,数据库、实时数据流和实时文件,实时处理评语有数据采集工具Flume等,第三方采集工具有Oracle等,分布式消息系统是指采用分布式软件系统(Distributed Software Systems)构建的支持分布式处理的信息系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。Flink和StructuredStreaming进行微批处理;再把数据放入Redis中进行快速的响应。实时应用有公安监控业务:实战指挥、区域监控、人员布控;金融反欺诈业务:交易拦截、实时冻结和其它实时业务等。


融合数仓

在数据慢慢呈现数据处理量大、数据处理时延低、数据处理格式多样的要求下,基于模块化存储的数据仓库重要性日益增加,但同时也带来了新的问题。

随着精准营销、客户画像、互联网平台等业务的上线,需要引入非结构化数据,以及提升对实时数据的计算处理能力,需要建立大数据平台满足上述业务需求。

金融领域随着数据与日俱增(如国内某大行,平均3亿笔业务/天,峰值6亿/天);业务驱动下的数据分析灵活性要求越来越高,不同业务的数据分系统构建,导致冗余严重,缺乏高效、统一的融合数仓,阻碍企业快速转型。如何对浪涌式的数据进行整合分析,发挥最大价值,金融机构对数据的处理提出了相应诉求具体表现如下:

 第一,数据统一存储:为了节约成本,企业希望一份数据支持多种使用场景;减少数据孤岛和冗余,通过数据共享产生更大价值。

第二,高效:金融业务数据分析要求越来越高效、实时。

第三,易集成:提供标准接口,新的大数据方案与企业已采购的工具和IT系统要能无缝集成,支撑老业务快速迁移。

第四,大集群:区别于以往的单机系统,企业客户希望新的大数据方案能应对日益增多的数据,随时可以通过增加资源的方式横向扩展,无极扩容。

第五,开放生态:通过开源开放,让更多的客户和合作伙伴的数据连接在一起,发挥更大的价值。

数据中台,其本质就是让数据更加灵活、敏捷地服务前端业务。没有数据中台,前端业务与后端之间的联系与沟通通常是低效率的情况。现实情况往往又是,前端业务部门一般都是以自身业务为中心,希望后端能够给与前端足够的配合和个性化支持。这种“矛盾”在数字化时代就促使了数据中台的出现。

数据中台可以提供强大的数据获取和存储能力,并且基于多元化、多渠道、多种类数据来快速高效提供数据服务,大幅提升业务响应速度和创新能力。为构建起强大的数据中台,通过华为GaussDB +FusionInsight融合型数据仓库解决方案可以实现了强大的数据中台基础。


以CarbonData为融合数仓的大数据方案为金融转型打造新一代数仓引擎

1)XX银行针对交易流水记录做审计业务,针对140亿的大数据量,老的方案经过多次优化查询仍需700多秒且系统不稳定,采用了CarbonData方案后平均性能提升10+倍,分行的明细查询平均在10秒内。

2)XX银行的行长手机项目(亿级数据),行长可通过手机终端随时查询各分行利润、营收报表等,客户原有系统查询需要等待10秒以上,采用了CarbonData方案后,平均性能提升了4-10倍,且支持数据线性增加,查询性能保持在小于3秒。

华为将依托社区开发模式,通过开放、共赢的方式,推动大数据技术生态持续发展,为金融业务转型,打造高性能多业务融合部署的新一代数仓引擎,为客户快速创造价值。



小结

本节介绍了大数据在实际应用场景中的解决方案,包括离线批处理,实时检索,实时流处理和融合数仓。并讲解了它们的特点及架构流程。

1、对   2、对  3、错


三、大数据应用开发

怎么样才能做好大数据应用开发?

编程基础:1.具备JAVA/Scala编程能力     2.熟悉SQL     3.熟悉Linux常规操作

熟悉业务开发:1.理解研发开发流程        ⒉.理解本应用业务背景


大数据应用开发流程

1. 提出需求:多部门协商:项目的可行性分析

2. 需求分析:需求调研、市场调研

3.技术选型:数据流图和技术方案

4.可行性分析:搭建技术平台,测试可行性

5. 指标分析:需求和指标之间转换

6. 数据对接:数据采集,清洗,源数据存储,中间件

7. 数据分析:代码实现

8.结果存储:存到数据库或其它位置

9.结果展示:运营部门



小结

本节介绍了大数据开发需要的基础技能和大致开发步骤,以及需要考虑到的细节。

1、对     2、错    3、对


总结:

本章介绍了大数据的主流技术,以及大数据技术的演变过程,然后总体介绍了三个解决方案的概念、特点和流程图,最后介绍了大数据开发过程中应该注意的细节。


本文整理自华为云社区【内容共创系列】活动,
查看活动详情:https://bbs.huaweicloud.com/blogs/314887
相关任务详情:大数据应用开发总指导

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。