离线大数据分析生成在线大数据分析为什么报错

本发明涉及一种大数据处理解决方案,特别是一种同时支持离线 数据和实时在线数据的完整的大数据处理解决系统。

随着技术的发展,人们越来越需要构建复杂和低延迟的处理系 统。他们所能使用的两个工具都不能完全解决问题:用于处理历史数 据的可扩展的高延迟批处理系统,和无法再处理结果的低延迟流式处 理系统。但将这两个工具连在一起,就可以构建可用的解决方案。

Hadoop框架带来了批量数据处理,但是网络规模大数据的实时 处理仍然是一个挑战。有很多技术可以用来建立这样一个完整的数 据处理系统,但要选择合适的工具并且编排使用它们却是复杂和艰巨 的。

基于以上情况,本发明提出了一种同时支持离线数据和实时在线 数据的完整的大数据处理解决方案。其中包括:

一、一个可配置的能够采集多种数据来源的数据采集模块,并引 入了分布式故障检测机制,来提高数据采集的稳定性和可靠性。

二、一个可配置的数据预处理模块,可以从统一配置中心读取配 置信息加载相应的处理程序。

三、一个改进算法的分布式文件存储模块,提出一种对节点性能 的评估方法,对HDFS存储算法进行改进,使其能更加快速、高效、 准确地完成海量数据的存储工作。

四、一个高性能的实时数据处理模块,采用Strom分布式流式处 理框架,处理海量实时数据,并将计算结果实时存入数据库中。

五、一个高性能的离线数据处理模块,采用HadoopMapReduce 编程模型,并提出了一种基于节点动态性能推断的任务分配算法,提 高了离线数据处理模块的性能和稳定性。

六、一个高度定制化的综合展示模块,基于web容器提供查询服 务,通过ECharts实现分析结果可视化,用户可通过拖拽自定义布局, 定制个性化的展示页面,图表之间支持联动和钻取。并提供界面对统 一配置中心进行维护。

为实现本发明之目的,采用以下技术方案予以实现:

一种同时支持离线数据和实时在线数据的大数据处理系统,包 括:

数据采集模块、预处理模块、分布式存储模块、分布式实时流计 算模块、离线数据处理模块、数据库、数据综合分析查询模块、综合 展示模块和统一配置中心;

数据采集模块用于从统一配置中心读取配置信息,根据该配置信 息读取关系型数据库中的数据,并将该数据导入分布式文件存储模 块,接收应用集群发出的处理请求,将接收到的请求数据直接提供给 分布式实时流计算模块,将应用集群日志文件传送到本地磁盘进行存 储备份;

数据预处理模块用于从统一配置中心读取配置信息,读取本地磁 盘存储的应用的日志文件,对数据进行处理后存入本地磁盘,并上传 文件到分布式文件存储模块;

分布式存储模块用于存储海量数据;

分布式实时流计算模块用于从数据采集模块读取数据,并读取统 一配置中心的配置信息,进行实时计算,将计算结果存储到数据库中; 离线数据处理模块用于处理分布式文件存储模块中存储的数据,将各 个指标计算完成后写入数据库;

数据综合分析查询模块用于访问数据库,并提供各种指标查询接 口;

综合展示模块用于基于web容器提供查询服务,实现分析结果可 视化;

统一配置中心用于对应用集群进行配置。

所述的大数据处理系统,优选的:数据采集模块包括消息中间件 模块,该消息中间件模块接收应用集群发出的处理请求,接收到的数 据直接提供给分布式实时流计算模块;该消息中间件模块还将应用集 群日志文件传送到本地磁盘进行存储备份。

所述的大数据处理系统,优选的:数据预处理模块对数据进行预 处理包括对数据进行清洗、规约,压缩处理相同类别的数据。

所述的大数据处理系统,优选的分布式文件存储模块包括:存储 节点、节点性能评估模块;

(1)节点性能评估模块对应用集群中各个服务器的性能进行评 估,生成一个动态的节点性能基准文件,该文件根据需求定期更新; 对集群中节点服务器性能评估包括服务器的CPU处理能力、内存性能 和磁盘I/O性能;

(2)当用户上传文件时,节点性能评估模块先计算存储节点的 性能数值与所有节点性能数值总和的比例值,再根据该比例的值来确 定该节点可以存储的数据大小占集群总存储数据大小的比例。

所述的大数据处理系统,优选的:

服务器节点的性能值P_i用以下函数描述,其中C_i表示CPU 性能值,M_i表示内存性能值,D_i表示磁盘I/O性能值,W_i表示 网络I/O性能值:

上述公式中α、β、γ、δ这四个参数表示各个指标对于服务器 性能的不同权重的影响。

一种同时支持离线数据和实时在线数据的大数据处理方法,包 括:

从统一配置中心读取配置信息,根据该配置信息读取关系型数据 库中的数据,并将该数据导入分布式文件存储模块,接收应用集群发 出的处理请求,将接收到的请求数据直接提供给分布式实时流计算模 块,将应用集群日志文件传送到本地磁盘进行存储备份;

从统一配置中心读取配置信息,读取本地磁盘存储的应用的日志 文件,对数据进行预处理后存入本地磁盘,并上传文件到分布式文件 存储模块;

从数据采集模块读取数据,并读取统一配置中心的配置信息,进 行实时计算,将计算结果存储到数据库中;离线数据处理模块用于处 理分布式文件存储模块中存储的数据,将各个指标计算完成后写入数 据库。

所述的大数据处理方法,优选的:对数据进行预处理包括对数据 进行清洗、规约,压缩处理相同类别的数据。

图1为本发明提供的同时支持离线数据和实时在线数据的大数 据处理系统示意图;

图2为本发明的改进调度算法示意图。

如图1所示,同时支持离线数据和实时在线数据的大数据处理系 统包括:数据采集模块、数据预处理模块、统一配置中心、分布式文 件存储模块、分布式实时流计算模块、离线数据处理模块、数据库、 数据综合分析查询模块和综合展示模块。

(1)从统一配置中心读取配置信息,通过定时循环调度的方式 将一个关系型数据库(例如:MySQL,Oracle等)中的数据增量导 入分布式文件存储模块,如HDFS。例如导入Oracle数据库中存储的 用户信息表,产品明细表等,该数据作为基础数据在后续的日志处理 中配合日志数据进行分析、计算等处理。数据采集模块可以根据以上 从配置中心读取的数据配置导出数据的数据库的连接信息、从哪些表 导出数据,导出数据的方式(全量/增量)以及导出数据的开始时间、 数据类型等。

(2)包括消息中间件模块,可以是WebSphereMQ消息中间件, 该中间件模块接收应用集群发出的处理请求,接收到的数据直接提供 给分布式实时流计算模块用于实时计算。通过该消息中间件模块将各 应用的日志文件(应用集群日志文件)传送到本地磁盘进行存储备份。 该部分不会对数据进行任何处理修改,保证数据完整地存储。日志文 件将直接提供给数据预处理模块使用。采集模块还可包括调度模块和 同步任务管理模块,同步任务管理模块用于同步将数据库中的数据采 集到HDFS,调度模块用于对上述数据采集进行定时。

(3)数据采集模块作为一个分布式系统,本身为多节点结构, 数据需要在不同节点间进行传输,因此会出现节点失效、系统进程失 效、节点负载过大等情况,而这些情况都将会导致数据丢失。为了保 障数据的传输安全,本发明还提出了一个基于数据采集模块的分布式 故障检测框架。该框架中,数据采集模块采集的数据源包括两类节点, 一类是主节点,另一类是受控节点,将一个监控节点管理服务器作为 主节点,各应用节点作为受控节点,在各个应用节点完成对各个应用 的监测和控制功能,监控主节点通过心跳通信的方法与各个受控节点 进行数据交互。受控节点需要定时向其发送心跳数据,报告该节点应 用的状态信息,可以是该节点的应用名称、存储位置、IP地址、当 前节点的CPU负载等节点状态信息。当某个受控节点在心跳周期内没 有发送心跳数据,则判定该节点暂时失效,当某个节点失效时及时报 警,有利于相关人员尽快排除故障,提高数据传输的容错性和可靠性。 同时,管理员可以通过web界面来对受控节点配置进行更改,并通过 心跳通信由监控节点来通知受控节点更新其配置。

原标题:从无到有、从小到大,今日头条大数据平台实践经历的那些坑

今日头条(以下简称头条)成立于 2012 年,本文作者王烨在 2014 年加入,那时公司人员仅三百人。2014 年,对头条来说是很关键的阶段,当时 DAU只有几百万的级别;到 2016 年,DAU 达到 7800

随着公司规模的发展,数据量呈递增式爆棚,他也见证了基础数据平台从无到有、从小到大的历程。头条在这一发展过程中对于数据使用及难度都经历了数量级的变化。本文将与大家分享数据平台经历的各种坑及一些重要的技术决策

基础数据平台的建设历程

为什么要建设基础数据平台?

对于初创公司来讲,核心是服务好用户,做好产品功能的迭代。当公司发展到一定阶段,业务开始多元化并开始精细化运营,数据需求变多,产生的数据量和数据处理复杂度也大幅增加,这时就该建设基础数据平台了

2014 年,头条每天只有几百万活跃用户,支撑好产品是首要任务,并没有专门的人负责做数据。众多复杂业务的上线,同步会招聘大量的 PM(产品经理)和运营。基于刻到骨子里的数据驱动的思想,各种各样的数据需求源源不断的被提上来,这时不再是几个数据工程师单打独斗就能解决问题了而让PM 和运营直接分析数据的门槛也很高。

面对这些情况,头条的做法是成立数据平台团队,把数据基础设施像Hadoop、Hive、Spark、Kylin等封装成工具,把这些工具结合通用的分析模式整合成完整的解决方案,再把这些解决方案通过平台的形式,提供给业务部门使用。

这里需要注意数据平台的发展是一个演进的过程,并不需要追求一开始就大而全,不同阶段采用的技术能匹配当时需求就好。

基础数据平台的职责什么?

数据平台的需求最初来自推荐业务,从用户的阅读需求出发,搭建面向全公司的通用数据平台。其中,用户数据(内容偏爱、行为轨迹、阅读时间等)是头条最庞大的数据源,这些被记录下来的数据反映了用户的兴趣,会以各种形式传输和存储,并提供给全公司各个业务系统来调用。

还要维护面向 RD(分析师)数据工具集(日志收集、入库、调度、依赖管理、查询、元数据、报表),面向 PM运营的通用用户行为分析平台,底层查询引擎(Hive,Presto,Kylin 等 OLAP 查询引擎,支撑上层数据平台和数据仓库),平台基础数据仓库及协助维护业务部门数据仓库

当前,头条每日处理数据量

今日头条数据平台架构师

2014 年加入今日头条,目前负责头条基础数据平台的技术架构,解决海量数据规模下推荐系统和用户产品的统计分析问题,并见证了头条数据平台从无到有、从小到大的历程。加入头条前,曾就职于豆瓣负责 Antispam 系统的研发。

我要回帖

更多关于 大数据分析 的文章

 

随机推荐