大数据下的数据分析平台架构

所需积分/C币:15 2017-10-17 21:07:45 881KB PDF
收藏 收藏
举报

随着互联网、移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海量数据的分析已经成为一个非常重要且紧迫的需求。
Hadoop平台上的OLAP分析,同样存在这个问题, Facebook针对Hive开发的 RCFile数据格式,就是采 用了上述的一些优化技术,从而达到了较好的数据分析性能。如图2所示。 然而,对于 Hadoop平台来说,单单通过使用Hive模仿出SQL,对于数据分析来说远远不够,首先Hive 虽然将 Hive QL翻译 MapReduce的时候进行了优化,但依然效率低下。多维分析时依然要做事实表和维度表 的关联,维度一多性能必然大幅下降。其次, RCFile的行列混合存储模式,事实上限制死了数据格式,也 就是说数据格式是针对特定分析预先设计好的,一旦分析的业务模型有所改动,海量数据转换柊式的代价 是极其巨大的。最后, HiveQL对OLAP业务分析人员依然是非常不友善的,维度和度量才是直接针对业务 人员的分析语言。 而且目前OLAP存在的最大问题是:业务灵活多变,必然导致业务模型随之经常发生变化,而业务维度 和度量一旦发生变化,技术人员需要把整个Cube(多维立方体)重新定义并重新生成,业务人员只能在此 Cube上进行多维分析,这样就限制了业务人员快速改变问题分析的角度,从而使所谓的B系统成为死板的 日常报表系统。 使用 Hadoop进行多维分析,首先能解决上述维度难以改变的问题,利用 Hadoop中数据非结构化的特 征,采集来的数据本身就是包含大量冗余信息的。同时也可以将大量冗余的维度信息整合到事实表中,这 样可以在冗余维度下灵活地改变问题分析的角度。其次利用 Hadoop MapReduce强大的并行化处理能力, 无论OLAP分析中的维度增加多少,开销并不显著增长。换言之, Hadoop可以支持一个巨大无比的Cube, 包含了无数你想到或者想不到的维度,而且每次多维分析,都可以支持成千上百个维度,并不会显著影响 分析的性能。 因此,我们的大数据分析架构在这个巨大Cube的 维度1维度2度3 支持下,直接把维度和度量的生成交给业务人员,由 操 用产山别 年收入 HE 大学1000 业务人员自己定义好维度和度量之后,将业务的维度 和度量直接翻译成 MapReduce运行,并最终生成报 表。可以简单理解为用户快速自定义的“MDX”(多维 男男女男女女女 大学 85000 权入广情户 大学 大学 SIAD 中收入 高中 55000 价值客户 学 D 低收入 表达式,或者多维立方体查询)语言→ MapReduce的 志学 分析命:说计人数5 Hect Gender All on Column. 转换工具。同时OLAP分析和报表结果的展示,依然 性批男+女 Education allege on Row Hadoop Ercome B Alion Row MapReduce 学历大学 兼容传统的B和报表产品。如图3所示。 收入:维度B Measure count UserID) 程 图3可以看出,在年收入上,用户可以自己定义 大学大学 子维度。另外,用户也可以在列上自定义维度,比如 图3MDX→ Map Reduce简略示意图 将性别和学历合并为一个维度。由于 Hadoop数据的 非结构化特征,维度可以根据业务需求任意地划分和重组。 种 Hadoop多维分析平台的架构 整个架构由四大部分组成:数据采集模块、数据冗余模块、维度定义模块、并行分析模块。如图4所 数据采集模块采用了 Cloudera的Fume,将海量的小日志文件进行高速传输和合并,并能够确保数据 的传输安全性。单个 collecto宕机之后,数据也不会 丢失,并能将 agent数据自动转移到其他的 collecter 数期果集数据冗余 枫日志 目志 处理,不会影响整个采集系统的运行。如图5所示。 数余度虚义器 数据冗余模块不是必须的,但如果日志数据中没 可视化维度 可视化分柱 有足够的维度信息,或者需要比较频繁地增加维度, 度量定文器组度度量定义模块多分析提交块 则需要定义数据冗余模块。通过冗余维度定义器定义 并行分 按心慢块 报表中心 需要冗余的维度信息和来源(数据库、文件、内存 Hadoop分析建 等),并指定扩展方式,将信息写入数据日志中。在 图4 Hadoop多维分析平台架构图 海量数据下,数据冗余模块往往成为整个系统的瓶 颈,建议使用一些比较快的內存№oSQL来冗余原始数据,并采用尽可能多的节点进行并行冗余;或者也完 全可以在 Hadoop中执行批量Map,进行数据格式的转化。 agent A 提交的度录 件和度量 客户自定义的 度量所需的一 agent B 度量 些默认的度 和量 Hadoop nt c 客户自定义的 lobOn 度 一参数 --、= master 系统参数 ient D collector a collector B b HDFS agent F collector C Map拼装 Reduce拼装 agent E Job流程拼装 图6核心模块的逻辑 agent tier collector tier storage tier 图5采集模块 当 当 图7 MapReduce WorkFlow例子 维度定义模块是面向业务用户的前端模块,用户通过可视化的定义器从数据日志中定义维度和度量, 并能自动生成一种多维分析语言,同时可以使用可视化的分析器通过GU执行刚刚定义好的多维分析命令。 并行分析模块接受用户提交的多维分析命令,并将通过核心模块将该命令解析为Map- Reduce,提交给 Hadoop集群之后,生成报表供报表中心展示。 核心模块是将多维分析语言转化为 Map Reduce的解析器,读取用户定义的维度和度量,将用户的多维 分析命令翻译成 MapReduce程序。核心模块的具体逻辑如图6所示。 图6中根据 Job Conf参数进行Map和 Reduce类的拼装并不复杂,难点是很多实际问题很难通过一个 MapReduce Job解决,必须通过多个 Map Reduce Job组成工作流( WorkFlow),这里是最需要根据业务 进行定制的部分。图7是一个简单的 MapReduce工作流的例子。 个, Map Reduce的输出一般是统计分析的结果,数据量相较于输入的海量数据会小很多,这样就可以导入 统的数据报表产品中进行展现 结束语 当然,这样的多维分析架构也不是没有缺点。由于 MapReduce本身就是以蛮力去扫描大部分数据进行 计算,因此无法像传统B产品一样对条件查询做优化,也没有缓存的概念。往往很多很小的查询需要“兴师 动众”。尽管如此,开源的 Hadoop还是解决了很多人在大数据下的分析问题,真可谓是“功德无量”。 Hadoop集群软硬件的花费极低,每GB存储和计算的成本是其他企业级产品的百分之一甚至千分之 ,性能却非常出色。我们可以轻松地进行千亿乃至万亿数据级别的多维统计分析和机器学习。 6月29日的 Hadoop Summit2011上, Yahoo!剥离出一家专门负责 Hadoop开发和运维的公司 Hortonworks。 Cloudera带来了大量的辅助工具,MapR带来了号称三倍于 Hadoop MapReduce速度的并行 计算平台。 Hadoop必将很快迎来下一代产品,届时其必然拥有更强大的分析能力和更便捷的使用方式,从 而真正轻松面对未来海量数据的挑战。

...展开详情
试读 5P 大数据下的数据分析平台架构
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐
大数据下的数据分析平台架构 15积分/C币 立即下载
1/5
大数据下的数据分析平台架构第1页

试读结束, 可继续读1页

15积分/C币 立即下载 >