打造高性能的大数据分析平台.docx

上传人:李司机 文档编号:5201881 上传时间:2023-06-13 格式:DOCX 页数:10 大小:183.97KB
返回 下载 相关 举报
打造高性能的大数据分析平台.docx_第1页
第1页 / 共10页
打造高性能的大数据分析平台.docx_第2页
第2页 / 共10页
打造高性能的大数据分析平台.docx_第3页
第3页 / 共10页
打造高性能的大数据分析平台.docx_第4页
第4页 / 共10页
打造高性能的大数据分析平台.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《打造高性能的大数据分析平台.docx》由会员分享,可在线阅读,更多相关《打造高性能的大数据分析平台.docx(10页珍藏版)》请在三一办公上搜索。

1、大数据时代,大数据的应用与挖掘,大数据的分析和决策,大数据在经济社会的运行轨道上发挥着愈来愈重要的作用。对于大数据分析,现在好多互联网金融公司和传统的商业银行、证券基金公司都特别看重。个个都想在大数据分析中获得重要信息,以此拓宽和巩固自己的经济业务和进展疆域。由此,一个高性能的大数据分析平台就显得极其重要,可以说,一个公司假如打造出了一个高性能的大数据平台,那么它离胜利就比同行更近一步。高性能的大数据分析平台,犹如充分了油的马达,一路向前狂奔,一路高歌猛进。下面,针对打造高性能的大数据分析平台的话题,给大家共享一篇文章,盼望对大家有所借鉴和关心。如何打造高性能的大数据分析平台大数据分析系统作为

2、一个关键性的系统在各个公司快速崛起,但是这种海量规模的数据带来了前所未有的性能挑战。同时,假如大数据分析系统无法在第一时间为运营决策供应关键数据,那么这样的大数据分析系统一文不值。本文将从技术无关的角度争论一些提高性能的方法。下面我们将争论一些能够应用在大数据分析系统不同阶段的技巧和准则(例如数据提取,数据清洗,处理,存储,以及介绍)。本文应作为一个通用准则,以确保最终的大数据分析平台能满意性能要求。1 .大数据是什么?大数据是最近IT界最常用的术语之一。然而对大数据的定义也不尽相同,全部已知的论点例如结构化的和非结构化、大规模的数据等等都不够完整。大数据系统通常被认为具有数据的五个主要特征,

3、通常称为数据的5Vs。分别是大规模,多样性,高效性、精确性和价值性。据Gartner称,大规模可以被定义为“在本(地)机数据采集和处理技术力量不足以为用户带来商业价值。当现有的技术能够针对性的进行改造后来处理这种规模的数据就可以说是一个胜利的大数据解决方案。这种大规模的数据没将不仅仅是来自于现有的数据源,同时也会来自于一些新兴的数据源,例如常规(手持、工业)设施,日志,汽车等,当然包括结构化的和非结构化的数据。据Gartner称,多样性可以定义如下:“高度变异的信息资产,在生产和消费时不进行严格定义的包括多种形式、类型和结构的组合。同时还包括以前的历史数据,由于技术的变革历史数据同样也成为多样

4、性数据之一高效性可以被定义为来自不同源的数据到达的速度。从各种设施,传感器和其他有组织和无组织的数据流都在不断进入IT系统。由此,实时分析和对于该数据的解释(展现)的力量也应当随之增加。依据Garmer,高效性可以被定义如下:”高速的数据流1/0(生产和消费),但主要聚焦在一个数据集内或多个数据集之间的数据生产的速率可变上精确性,或真实性或叫做精度是数据的另一个重要组成方面。要做出正确的商业决策,当务之急是在数据上进行的全部分析必需是正确和精确(精确)的。大数据系统可以供应巨大的商业价值。像电信,金融,电子商务,社交媒体等,已经熟悉到他们的数据是一个潜在的巨大的商机。他们可以猜测用户行为,并推

5、举相关产品,供应危急交易预警服务,等等。与其他IT系统一样,性能是大数据系统获得胜利的关键。本文的中心主旨是要说明如何让大数据系统保证其性能。2 .大数据系统应包含的功能模块大数据系统应当包含的功能模块,首先是能够从多种数据源猎取数据的功能,数据的预处理(例如,清洗,验证等),存储数据,数据处理、数据分析等(例如做猜测分析,生成在线使用建议等等),最终呈现和可视化的总结、汇总结果。下图描述了大数据系统的这些高层次的组件:2.1 各种各样的数据源当今的IT生态系统,需要对各种不同种类来源的数据进行分析。这些来源可能是从在线Web应用程序,批量上传或feed,流媒体直播数据,来自工业、手持、家居传

6、感的任何东西等等。明显从不同数据源猎取的数据具有不同的格式、使用不同的合同。例如,在线的Web应用程序可能会使用SOAPxmxxxxl格式通过HTTP发送数据,feed可能会来自于CSV文件,其他设施则可能使用MQTT通信合同。由于这些单独的系统的性能是不在大数据系统的掌握范围之内,并且通常这些系统都是外部应用程序,由第三方供应商或团队供应并维护,所以本文将不会在深化到这些系统的性能分析中去。2.2 数据采集第一步,猎取数据。这个过程包括分析,验证,清洗,转换,去重,然后存到适合你们公司的一个长久化设施中(硬盘、存储、云等)。在下面的章节中,本文将重点介绍一些关于如何猎取数据方面的特别重要的技

7、巧。请留意,本文将不争论各种数据采集技术的优缺点。2.3 存储数据其次步,一旦数据进入大数据系统,清洗,并转化为所需格式时,这些过程都将在数据存储到一个合适的长久化层中进行。在下面的章节中,本文将介绍一些存储方面的最佳实践(包括规律上和物理上)。在本文结尾也会争论一部分涉及数据平安方面的问题。2.4 数据处理和分析第三步,在这一阶段中的一部分洁净数据是去法律规范化的,包括对一些相关的数据集的数据进行一些排序,在规定的时间间隔内进行数据结果归集,执行机器学习算法,猜测分析等。在下面的章节中,本文将针对大数据系统性能优化介绍一些进行数据处理和分析的最佳实践。2.5 数据的可视化和数据展现最终一个步

8、骤,展现经过各个不同分析算法处理过的数据结果。该步骤包括从预先计算汇总的结果(或其他类似数据集)中的读取和用一种友好界面或者表格(图表等等)的形式展现出来。这样便于对于数据分析结果的理解。3 .数据采集中的性能技巧数据采集是各种来自不同数据源的数据进入大数据系统的第一步。这个步骤的性能将会直接打算在一个给定的时间段内大数据系统能够处理的数据量的力量。数据采集过程基于对该系统的共性化需求,但一些常用执行的步骤是-解析传入数据,做必要的验证,数据清楚,例如数据去重,转换格式,并将其存储到某种长久层。涉及数据采集过程的规律步骤示如下图所示:下面是一些性能方面的技巧:来自不同数据源的传输应当是异步的。

9、可以使用文件来传输、或者使用面对消息的(MOM)中间件来实现。由于数据异步传输,所以数据采集过程的吞吐量可以大大高于大数据系统的处理力量。异步数据传输同样可以在大数据系统和不同的数据源之间进行解耦。大数据基础架构设计使得其很简洁进行动态伸缩,数据采集的峰值流量对于大数据系统来说算是平安的。假如数据是直接从一些外部数据库中抽取的,确保拉取数据是使用批量的方式。假如数据是从feedfile解析,请务必使用合适的解析器。例如,假如从一个XmXXXXl文件中读取也有不同的解析器像JDoM,SAX,DOM等。类似地,对于CSV,JSoN和其它这样的格式,多个解析器和APl是可供选择。选择能够符合需求的性

10、能最好的。优先使用内置的验证解决方案。大多数解析/验证工作流程的通常运行在服务器环境(ESB/应用服务器)中。大部分的场景基本上都有现成的标准校验工具。在大多数的状况下,这些标准的现成的工具一般来说要比你自己开发的工具性能要好很多。类似地,假如数据XmXXXXl格式的,优先使用XmXXXXl(XSD)用于验证。即使解析器或者校等流程使用自定义的脚原来完成,例如使用java优先还是应当使用内置的函数库或者开发框架。在大多数的状况下通常会比你开发任何自定义代码快得多。尽量提前滤掉无效数据,以便后续的处理流程都不用在无效数据上铺张过多的计算力量。大多数系统处理无效数据的做法通常是存放在一个特地的表中

11、,请在系统建设之初考虑这部分的数据库存储和其他额外的存储开销。假如来自数据源的数据需要清洗,例如去掉一些不需要的信息,尽量保持全部数据源的抽取程序版本全都,确保一次处理的是一个大批量的数据,而不是一条纪录一条纪录的来处理。一般来说数据清洗需要进行表关联。数据清洗中需要用到的静态数据关联一次,并且一次处理一个很大的批量就能够大幅提高数据处理效率。数据去重特别重要这个过程打算了主键的是由哪些字段构成。通常主键都是时间戳或者id等可以追加的类型。一般状况下,每条纪录都可能依据主键进行索引来更新,所以最好能够让主键简洁一些,以保证在更新的时候检索的性能。 来自多个源接收的数据可以是不同的格式。有时,需

12、要进行数据移植,使接收到的数据从多种格式转化成一种或一组标准格式。 和解析过程一样,我们建议使用内置的工具,相比于你自己从零开发的工具性能会提高很多。 数据移植的过程一般是数据处理过程中最简单、最紧急、消耗资源最多的一步。因此,确保在这一过程中尽可能多的使用并行计算。 一旦全部的数据采集的上述活动完成后,转换后的数据通常存储在某些长久层,以便以后分析处理,综述,聚合等使用。 多种技术解决方案的存在是为了处理这种长久(RDBMS,NOSQL的分布式文件系统,如Hadp和等)。 谨慎选择一个能够最大限度的满意需求的解决方案。4 .数据存储中的性能技巧一旦全部的数据采集步骤完成后,数据将进入长久层。

13、在本节中将争论一些与数据数据存储性能相关的技巧包括物理存储优化和规律存储结构(数据模型)。这些技巧适用于全部的数据处理过程,无论是一些解析函数生的或最终输出的数据还是估计算的汇总数据等。 首先选择数据范式。您对数据的建模方式对性能有直接的影响,例如像数据冗余,磁盘存储容量等方面。对于一些简洁的文件导入数据库中的场景,你或许需要保持数据原始的格式,对于此外一些场景,如执行一些分析计算聚集等,你可能不需要将数据范式化。 大多数的大数据系统使用NoSQL数据库替代RDBMS处理数据。 不同的NoSQL数据库适用不同的场景,一部分在SeIeCt时性能更好,有些是在插入或者更新性能更好。 数据库分为行存

14、储和列存储。 详细的数据库选型依靠于你的详细需求(例如,你的应用程序的数据库读写比)。 同样每个数据库都会依据不同的配置从而掌握这些数据库用于数据库复制备份或者严格保持数据全都性。 这些设置会直接影响数据库性能。在数据库技术选型前肯定耍留意。 压缩率、缓冲池、超时的大小,和缓存的对于不同的NoSQL数据库来说配置都是不同的,同时对数据库性能的影响也是不一样的。 数据Sharding和分区是这些数据库的另一个特别重要的功能。数据Sharding的方式能够对系统的性能产生巨大的影响,所以在数据Sharding和分区时请谨慎选择。 并非全部的NoSQL数据库都内置了支持连接,排序,汇总,过滤器,索引

15、等。 假如有需要还是建议使用内置的类似功能,由于自己开发的还是不灵。 NoSQLs内置了压缩、编解码器和数据移植工具。假如这些可以满意您的部分需求,那么优先选择使用这些内置的功能。这些工具可以执行各种各样的任务,如格式转换、压缩数据等,使用内置的工具不仅能够带来更好的性能还可以降低网络的使用率。 很多NoSQL数据库支持多种类型的文件系统。其中包括本地文件系统,分布式文件系统,甚至基于云的存储解决方案。 假如在交互式需求上有严格的要求,否则还是尽量尝试使用NOSQL本地(内置)文件系统(例如Hbaxxxxse使用HDFS)。 这是由于,假如使用一些外部文件系统/格式,则需要对数据进行相应的编解

16、码/数据移植。它将在整个读/写过程中增加原本不必要的冗余处理。 大数据系统的数据模型一般来说需要依据需求用例来综合设计。与此形成鲜亮对比的是RDMBS数据建模技术基本都是设计成为一个通用的模型,用外键和表之间的关系用来描述数据实体与现实世界之间的交互。在硬件一级,本地RAID模式或许不太适用。请考虑使用SAN存储。5 .数据处理分析中的性能技巧数据处理和分析是一个大数据系统的核心。像聚合,猜测,聚集,和其它这样的规律操作都需要在这一步完成。本节争论一些数据处理性能方面的技巧。需要留意的是大数据系统架构有两个组成部分,实时数据流处理和批量数据处理。本节涵盖数据处理的各个方面。 在细节评估和数据格

17、式和模型后选择适当的数据处理框架。 其中一些框架适用于批量数据处理,而此外一些适用于实时数据处理。 同样一些框架使用内存模式,此外一些是基于磁盘io处理模式。 有些框架擅长高度并行计算,这样能够大大提高数据效率。 基于内存的框架性能明显优于基于磁盘io的框架,但是同时成本也可想而知。 概括地说,当务之急是选择一个能够满意需求的框架。否则就有可能既无法满意功能需求也无法满意非功能需求,当然也包括性能需求。 一些这些框架将数据划分成较小的块。这些小数据块由各个作业独立处理。协调器管理全部这些独立的子作业 在数据分块是需要当心。 该数据快越小,就会产生越多的作业,这样就会增加系统初始化作业和清理作业

18、的负担。 假如数据快太大,数据传输可能需要很长时间才能完成。这也可能导致资源采用不均衡,长时间在一台服务器上运行一个大作业,而其他服务器就会等待。 不要忘了查看一个任务的作业总数。在必要时调整这个参数。 最好实时监控数据块的传输。在本机机型i。的效率会更高,这么做也会带来一个副作用就是需要将数据块的冗余参数提高(一般hadoop默认是3份)这样又会反作用使得系统性能下降。K此外,实时数据流需要与批量数据处理的结果进行合并。设计系统时尽量削减对其他作业的影响。大多数状况下同一数据集需要经过多次计算。这种状况可能是由于数据抓取等初始步骤就有报错,或者某些业务流程发生变化,值得一提的是旧数据也是如此

19、。设计系统时需要留意这个地方的容错。 这意味着你可能需要存储原始数据的时间较长,因此需要更多的存储。 数据结果输出后应当保存成用户期望看到的格式。例如,假如最终的结果是用户要求依据每周的时间序列汇总输出,那么你就要将结果以周为单位进行汇总保存。 为了达到这个目标,大数据系统的数据库建模就要在满意用例的前提下进行。例如,大数据系统常常会输出一些结构化的数据表,这样在展现输出上就有很大的优势。 更常见的是,这可能会这将会让用户感觉到性能问题。例如用户只需要上周的数据汇总结果,假如在数据规模较大的时候依据每周来汇总数据,这样就会大大降低数据处理力量。 一些框架供应了大数据查询懒评价功能。在数据没有在

20、其他地方被使用时效果不错。 实时监控系统的性能,这样能够关心你预估作业的完成时间。6 .数据可视化和展现中的性能技巧细心设计的高性能大数据系统通过对数据的深化分析,能够供应有价值战略指导。这就是可视化的用武之地。良好的可视化关心用户猎取数据的多维度透视视图。需要留意的是传统的Bl和报告工具,或用于构建自定义报表系统无法大规模扩展满意大数据系统的可视化需求。同时,很多COTS可视化工具现已上市。本文将不会对这些个别工具如何进行调整,而是聚焦在一些通用的技术,关心您能打造可视化层。确保可视化层显示的数据都是从最终的汇总输出表中取得的数据。这些总结表可以依据时间短进行汇总,建议使用分类或者用例进行汇

21、总。这么做可以避开直接从可视化层读取整个原始数据。 这不仅最大限度地削减数据传输,而且当用户在线查看在报告时还有助于避开性能卡顿问题。 重分采用大化可视化工具的缓存。缓存可以对可视化层的整体性能产生特别不错的影响。 物化视图是可以提高性能的另一个重要的技术。 大部分可视化工具允许通过增加线程数来提高恳求响应的速度。假如资源足够、访问量较大那么这是提高系统性能的好方法。 尽量提前将数据进行预处理,假如一些数据必需在运行时计算请将运行时计算简化到最小。 可视化工具可以依据各种各样的展现方法对应不同的读取策略。其中一些是离线模式、提取模式或者在线连接模式。每种服务模式都是针对不同场景设计的。 同样,

22、一些工具可以进行增量数据同步。这最大限度地削减了数据传输,并将整个可视化过程固化下来。 保持像图形,图表等使用最小的尺寸。 大多数可视化框架和工具的使用可缩放矢量图形(SVG)。使用SVG简单的布局可能会产生严峻的性能影响。7 .数据平安以及对于性能的影响像任何IT系统一样平安性要求也对大数据系统的性能有很大的影响。在本节中,我们争论一下平安对大数据平台性能的影响。- 首先确保全部的数据源都是经过认证的。即使全部的数据源都是平安的,并且没有针对平安方面的需求,那么你可以敏捷设计一个平安模块来配置实现。- 数据进过一次认证,那么就不要进行二次认证。假如实在需要进行二次认证,那么使用一些类似于to

23、ken的技术保存下来以便后续连续使用。这将节约数据一遍遍认证的开销。- 您可能需要支持其他的认证方式,例如基于PKl解决方案或Kerberos。每一个都有不同的性能指标,在最终方案确定前需要将其考虑进去。- 通常状况下数据压缩后进入大数据处理系统。这么做好处特别明显不细说。- 针对不同算法的效率、对CPU的使用量你需要进行比较来选出一个传输量、CPU使用量等方面均衡的压缩算法。- 同样,评估加密规律和算法,然后再选择。- 明智的做法是敏感信息始终进行限制。-在审计跟踪表或登录时您可能需要维护纪录或类似的访问,更新等不同的活动纪录。这可能需要依据不同的监管策略和用户需求共性化的进行设计和修改。- 留意,这种需求不仅增加了数据处理的简单度,但会增加存储成本。-尽量使用下层供应的平安技术,例如操作系统、数据库等。这些平安解决方案会比你自己设计开发性能要好很多。8 .总结本文介绍了各种性能方面的技巧,这些技术性的知道可以作为打造大数据分析平台的一般准则。大数据分析平台特别简单,为了满意这种类型系统的性能需求,需要我们从开头建设的时候进行考量。本文介绍的技术准则可以用在大数据平台建设的各个不同阶段,包括平安如何影响大数据分析平台的性能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号