首页 > 其他分享 >大数据应用开发流程

大数据应用开发流程

时间:2022-08-25 00:58:57浏览次数:66  
标签:Flume 存储 流程 获取 开发 应用 分布式系统 数据处理 数据

通常将大数据应用开发分为五个步骤:获取、存储、处理、访问以及编制,获取是指获取一些辅助数据,例如来自CRM、生产数据(ODS)的数据,并将其加载入分布式系统(如Hadoop)为下一环节处理做准备。存储是指对分布式文件系统(GFS)或NoSQL分布式存储系统、数据格式)、压缩和数据模型的决策。处理是指将采集的原始数据导入到大数据管理系统,并将其转化为可用于分析和查询的数据集。分析是指对已处理过的数据集运用各种分析查询,获得想要知道的答案和见解。编排是指自动地安排和协调各种执行获取、处理、分析的过程。大数据应用开发的流程如下图所示:  

通过点击流分析来介绍大数据应用开发流程中的每一步如何实现。在点击流分析的例子中,利用分布式文件系统(GFS)来存储数据,通过Flume 获取ingestion网站日志文件及其他辅助数据并导入到分布式系统中。同时,利用Spark 来处理数据,通过连接商业智能工具,分布式系统交互地进行数据处理查询,并利用工具将操作过程编制成单一的工作流程。

(1)大数据获取

有多种获取数据并导入至大数据管理系统的方法:

①文件传输∶此方法适合一次性传输文件,对于本任务面临可靠的大规模点击流数据获取,将不适用。

②Sqoop∶ Sqoop 是Hadoop 生态系统提供的将关系型数据管理系统等外部数据导入大数据管理系统的工具。

③Kafka∶ Kafka的架构用于将大规模的日志文件可靠地从网络服务器传输到分布式系统中。

④Flume∶Flume工具和Kafka类似,也能可靠地将大量数据(如日志文件)传输至分布式系统中。Kafka和Flume都适用于获取日志数据,都可以提供可靠的、可扩展的日志数据获取。

(2)大数据存储

在数据处理的每个步骤中,包括初始数据、数据变换的中间结果及最终的数据集都需要存储。由于每一个数据处理步骤的数据集都有不同的目的,选择数据存储的时候要确保数据的形式及模型和数据相匹配。

原始数据的存储是将文本格式的数据存储到分布式系统中。分布式系统具有以下一些优点:

①在序列数据处理过程中,需要通过多条记录来进行批处理转换;

②分布式系统可以高效率地通过批处理,处理大规模数据。

(3)大数据处理

使用Flume获取点击流数据,网络服务器上的原始数据在分析前需要进行清洗。例如,需要移除无效和空缺的日志数据、需要删除这些重复数据。清洗完数据后,还要将数据进行统一ID编号,在处理数据前需要对点击数据做进一步的处理和分析,包括对数据以每天或每小时为单位进行汇总,这能更快地进行之后的查询操作。事实上,对数据进行预处理是为了之后能高效地进行查询操作。大数据处理需要经历以下四步:

①数据清洗清理原始数据。

②数据抽取∶从原始点击数据流中提取出需要的数据。

③数据转换∶对提取后的数据进行转换,以便之后产生处理后的数据集。

④数据存储∶存储在分布式文件系统中的数据支持高性能查询方式。

(4)大数据分析

数据经过获取和处理后,将通过分析数据来获得想要了解的知识及答案。商业分析师通过以下几个工具来探索和分析数据:

①可视化(visualization)和商业智能工具(BI),例如Tableau和MicroStrategy.

②统计分析工具,例如R或Python。

③基于机器学习的高级分析,例如Mahout和Spark MLlib。

④SQL。

(5)大数据编制

数据分析经常临时性的需要,需要进行自动化编制。编制点击流分析的步骤如下:

首先,在获取数据阶段,通过Flume将数据连续传输到分布式系统中。

其次, 在数据处理阶段, 因为在一天结束时终止所有连接是常见的, 故采用每天执行会话算法。在开始处理工作数据流前,验证Flume写入分布式系统的当天数据。这种同步验证方式是常见的,因为通过简单地查看当前日期分区的情况,可以校验当前日期数据是否开始写入大数据管理系统。

 

转 https://www.cnblogs.com/tiduyun/p/16566574.html

标签:Flume,存储,流程,获取,开发,应用,分布式系统,数据处理,数据
From: https://www.cnblogs.com/wl-blog/p/16622845.html

相关文章

  • 【2022.8.24】前端开发(3)
    学习内容概要盒子模型浮动布局定位属性z-indexJavaScript基础语法内容详细盒子模型所有的标签都可以看成是一个快递盒1.两个快递盒之间的距离标签之间......
  • vue3 基础-应用app和组件基本概念
    这篇主要对vue最基础的应用程序Application和组件Components进行一个简要和直观的认知,具体要分析的代码如下:<!DOCTYPEhtml><htmllang="en"><head><metac......
  • 【2022-08-24】python前端开发(三)
    python前端开发(三)CSS盒子模型margin:用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。......
  • 开发规范-DTO和VO
    DTO和VO的区别DTO是展示层和服务层之间传递数据的对象,为什么还需要一个VO呢?在绝大部分场景,DTO和VO的属性值是一致的,通常都是POJO,这只是实现方面的思维,但是在设计层......
  • vscode远程开发环境搭建
    1.配置ssh环境变量1.将ssh.exe所在目录E:\Github\GitInstallation\Git\usr\bin加入到path环境变量中2.将windows自带的openssh环境变量删除2.安装远程开发插件搜索R......
  • 前端开发3
    目录一、CSS盒子模型1.margin外边距2.padding内填充二、浮动布局(float)1.浮动的特点2.浮动的三种取值3.clear属性4.清除浮动4.1.清除浮动主要的三种方式:4.2.伪元素清除法(使......
  • java关于程序流程控制
    java流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构分支结构循环结构 顺序结构:程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构:根......
  • web项目开发写接口时,为什么需要在关键位置打印日志-2022新项目
    一、业务场景最近在开发新功能,新功能主要就是写app的首页查询接口,接口比较多有十几个,首页会有各种查询,新增操作比较少。由于用户量比较大,据说并发量不小,所以首页的很......
  • 【案例】用低代码应用开发平台实现电厂信息化系统管理
    在数字化发展浪潮中,想要在竞争激烈的市场中占得一席之地,就需要掌握和整理好各方资源,让这些资源为企业所用,制定出更完善的管理系统,提升企业运营和决策效率。近期,一家电厂自......
  • 直播电商平台开发,android cardview 取消阴影,高度
    直播电商平台开发,androidcardview取消阴影,高度 <androidx.cardview.widget.CardView      app:cardBackgroundColor="@color/white"      an......