简介:这是我在阅读文献中读到的一篇关于大数据高性能分析的文章,写的很不错,自己根据自己的理解翻译了一下,希望能和大家分享。
随着企业收集反馈信息到每一个可能的细节, 数据存储库都在充斥着信息量。为了获取有价值的信息, 应使用复杂的统计分析来处理这些数据。传统的分析工具、现有的统计软件和数据管理系统发现对大型数据库进行深入分析具有挑战性。用户需要一个可以存储和处理大量数据的服务平台, 这些功能具有易于访问性、快速性能、持久性和安全性。可以利用这些功能, 而不必花费太多的硬件、升级、配置等来对大数据进行分析。
该项目旨在克服所有这些障碍, 并建立了一个用户友好的 SAAS 平台。它是基于云计算的 web 应用程序, 它将数据存储在亚马逊 S3 中。由于该系统支持动态和优化的群集节点大小, 根据需要的时间, 用户不需要计算和估计节点的数量。该系统采用开源 R 脚本语言, 利用亚马逊 EMR 和 MapReduce 范式, 对一定时间内的 bigdata 分析进行分析。
传统的分析工具, 旨在通过处理信息来摄取、可视化、分析和再现结果, 往往被诸如工程研究、商业、银行和金融等领域收集的数据所淹没,科研、卫生保健等。随着时间的推移, 数据量的增加成倍地增加了平台的工作量。在分析工具能够从所有隐藏的数据中提取有益的信息, 从而帮助域做出更明智的决策之前, 必须面对存储、有效分析、管理和获取数据的快速和正确结果等挑战。这些从大规模集合的过程需要在分布式环境中执行。但是, 要建立这样的集群, 大量的投资是强制性的要求;把它丢到了中小企业的范围内, 研究等。另外还有维护、空间、存储、灾难恢复等额外费用。
在数据分析员能够从大型数据集获取有价值的信息之前, 必须对许多进程进行检查。首先, 对感兴趣域的数据进行了探讨, 建立了模型。在分析人员满意之前, 可能需要对模型生成和评估进行多次迭代。该模型经过测试处理信息, 在获得反馈之前做出决策, 并对模型进行进一步改进, 直到达到满意的性能。
为分析工具工作的分析人员提供方便的工具是检查效率高的 SPSS, SAS, Minitab, R等等然而, 它们有两个主要缺点, 即它们依赖于主内存, 并且只能在中等大小的数据集内运行。这种低效率使得这些分析工具不切实际, 无法获取大型数据的概览。这里, R 编程语言的 ff 包和 bigglm可能证明是强有力的。ff 包可以在内存中制作元数据, 并将数据存储在辅助存储中, 并使用 bigglm 执行分析, 其中数据通过交换和执行解析在内存中加载。
单个节点的垂直缩放可以提高其性能, 使其能够执行对 gb 到 tb 的数据的分析。但是, 用户可能需要向其添加辅助存储。这里的缺点是, 此类升级后的系统的检查依赖于数据集的大小;即随着数据集的增加, 执行分析所用的时间也会增加。有一个限制, 使台式机 CPU 可以垂直缩放和建立超级计算机是一个昂贵和复杂的任务。相反, 可以使用 MapReduce 范式中的 R 来处理分布式环境中的数据, 并确保高性能。在全球范围内, 正在研究建立大型数据分析服务。在这之前, 必须克服的一些障碍是找到一种方法来存储不断扩展的数据, 改善网络滞后时间, 加快复制和移动数据, 为内容提供安全性, 并改进$l 辅助功能.创建一个正式的 hadoop群集需要一个人去通过购买硬件, 货架, 联网, 配置它和雇用一个人来监控它, 虽然它不会在任何时候使用。
亚马逊电子病历是亚马逊 Web 服务的一个服务, 在这里可以创建一个集群。亚马逊电子病历是一个 hadoop群集运行 mapreduce 程序, 但你应该安装依赖包, 并创建一个 mapreduce 程序, 需要数据的集群。虽然这意味着用户不再需要购买硬件、机架 it 网络并付费使用它, 但没有经验的用户不知道最适合其需要的群集的最佳大小。
本文介绍了利用动态优化的 Hadoop 集群节点构建 Bigdata 高性能分析的经验。该平台的目标和特点是:
x此软件作为服务平台不需要计算机技术方面的专门知识, 即使对具有计算基本能力的人也有用.
x 亚马逊 S3 是在这里使用的云存储, 允许用户上载数据。用户可以执行文件安全和管理。数据安全、可用性、存储等都是通过使用亚马逊 S3 实现的。由于亚马逊 S3 和亚马逊电子病历在同一地区的连接, 可以更快地实现数据传输, 从而消除网络延迟问题。
x使用此软件时, Hadoop 群集不受用户的关注, 因为系统自行创建一个优化的、动态的 Hadoop 群集节点, 具体取决于用户数据大小、欲望和其他属性.
x使用 MapReduce 范式在多个内核和节点中的分布式节点中运行使其分析性能高.
A. HDFS
Hadoop 分布式文件系统是一种非常高效的文件系统, 它使用户能够使用可伸缩和可靠的数据存储。它是基于 java 的, 它是为跨越大型商品服务器集群而创建的。使用 HDFS [10], 用户可以扩展到200PB 和4500台服务器的群集单元, 从而支持大约10亿个文件和块。
HDFS 是一个分布式文件系统, 设想在商品硬件上运行, 尽管它被设计为 apache Nutch 搜索引擎项目的基础设施, 但现在它已被划定成一个主要的 apache Hadoop 子项目。尽管它与现有的分布式文件系统相似, 但它们之间的差异相当显著, 使得 HDFS 在其他分布式文件系统中脱颖而出。首先, HDFS 具有高度的容错性, 是一种很好的设计方法, 可以应用于较为常用的经济型硬件。其次, HDFS 提供了在时间框架内处理的大量数据的访问, 特别适合需要大型数据集的应用程序。第三, HDFS 放松了一些 POSIX 强迫, 从而使它有可能得到文件系统数据的流式访问。
B. MapReduce
MR减少是一个分布式的处理体系结构和一个流行的编程模型和一个必不可少的发明, 满足处理和生成大型数据集。一个典型的 MapReduce 计算在成千上万个数据集的群集中处理许多 tb 的数据。用户输入一个映射函数, 它将启动对键或值对的处理, 从而生成更多中间键或值对, 从而减少群集中的各种数据集之间的分析任务。这些缩减函数将所有与同一中间键关联的中间值组合在一起。
这些程序计划在一个大型的商品机器集群上自动并行化和执行。运行时系统将输入数据分离, 在群集上组织最佳的程序性能, strategizes 跨机通信, 并强制精确处理机器故障, 从而允许甚至没有经验的程序员执行一个大的分布式系统的资源轻松。数以百计的 MapReduce [13] 程序被实施, 并在谷歌的集群每天执行超过 1000 MapReduce 任务。
C. 亚马逊 EMR
亚马逊弹性 MapReduce推出的亚马逊在2009年4月建立 Hadoop 集群, 执行和结束指定的分析任务和数据传输之间的 EC2 (VM)和 S3 (对象存储)。通过将分析任务分发到由开源框架管理的虚拟服务器群集 (hadoop), 它使一个人能够分析和处理海量数据。Hadoop 使用 MapReduce, 其中一个任务映射到一组服务器进行处理, 然后将结果缩减为单个输出集。
D. R 编程语言和 Rhadoop
R是一个普遍开放来源统计编程语言使成为可利用在一般公共许可证 (GPL) 之下。作为开源, R 有超过1000万活跃用户和几个活跃论坛和小组。
从现在起, 在全面的 R 存档网络中有8237个软件包可供使用, 这个数字每天都在增加。分析共轭 R 与 hadoop 来组成Rhadoop是开源项目。它由四个构成。 x Plyrmr x Rmr x Rhdfs x Rhbase
E. 亚马逊 S3
亚马逊简单的存储服务是为 Internet 存储的, 它具有一个简单的 web 服务接口, 可用于在任何给定时间从 web 上的任何位置保存和检索所需数量的数据。亚马逊 S3 通过 web 服务接口 (REST、SOAP 和 BitTorrent) 提供存储。S3 和 amazon.com, 其全球电子商务网络应用相同的可伸缩存储。S3 的其他用途包括 web 托管、映像托管和备份系统存储。S3 保证每月99.9% 的正常运行时间。
F. 线性回归
线性回归分析, 是最广泛使用的统计技术。它是研究变量之间的线性, 加法关系。
预测值的计算公式
Yt为:
Yt = b0 + b1x1t+ b2x2t…kXkt。其中 Y 表示要预测其值的 “从属” 变量, X1 .。XK是 “独立” 变量。句点 t 中变量 xi的值由 X 表示..
此公式的属性是, 如果其他值是固定的, 则 Y 的预测是每个 X 变量的直线函数。然后 X 的不同预测值的贡献是加法。与 Y 常量 b1、b2、..、bk等各自的直线关系的斜率是变量的系数。
G. 群集优化
Hadoop 是一种能够处理数以千计的节点和数 pb 数据的工具。它可以自动处理作业调度、部分故障和负载平衡。
为了充分利用计算资源, 最重要的是优化性能, 包括 CPU、内存和 i/o (磁盘和网络)。Hadoop 可以自动工作以提高性能, 同时使用户能够根据其特定的应用程序调整性能。
集群优化是在 hadoop 集群中创建最佳节点数以执行数据分析的技术。在该系统中, 线性回归用于预测 hadoop 群的节点数, 以便在期望的时间内执行 MapReduce 应用程序。
系统模型由四层组成:
A. 服务层:
系统保留所有用户及其详细信息的记录。他们可以上传文件在 S3 中没有限制文件大小和文件存储, 从而满足可伸缩性, 可靠性, 速度, 低成本的要求。系统还记录用户执行的工作, 使系统能够单独保存文件记录。有关用户文件及其属性的信息也将保存并显示给用户。数据从任何地方和任何时候都可以方便地访问, 因为它存储在云存储中。目前系统支持线性回归, 在该系统中可以添加 k-均值、时序分析等。无论文件大小如何, 系统都会根据用户所需的时间框架创建动态和优化的群集。
B. 数据处理层:
开放源码的 R 与 hadoop 集成使用 Rhadoop, 以利用 hadoop 分布式文件系统和 mapreduce 范式的特点。用户选择要在其中执行位于云存储中的分析的文件。线性回归是根据用户需要的期望时间在给定的数据集中进行分析。根据期望时间和最终结果显示并存储在云存储中, 对 hadoop 群中的节点数进行实例化。
C. 虚拟化层
虚拟化层是一个云平台, 应用服务器和数据库服务器托管在虚拟实例中, 并与虚拟云存储亚马逊 S3 连接。应用服务器虚拟实例以及 hadoop 分发被称为亚马逊 EMR 服务。这里的虚拟实例集群亚马逊电子病历对虚拟存储亚马逊 S3 执行读写操作。
D. 基础结构层
基础结构层由虚拟实例、虚拟存储、数据、网络资源以及它们之间的连接组成。
E. 系统通信
系统通信模式如下所示:
1) 输入: 格式的数据是系统的输入.
2) 输出: 系统的输出将是在亚马逊 S3 中存储的文本格式的线性回归结果.
3) 应用程序服务器和数据库服务器:
数据库服务器存储用户详细信息、数据详细信息和作业历史记录详细信息。应用程序服务器负责用户通过 web 应用程序进入系统的身份验证。
4) 应用程序服务器和亚马逊 S3: 应用程序服务器使用亚马逊 Java SDK 与亚马逊 S3 通信, 帮助用户存储数据、浏览和执行诸如上载之类的数据管理操作,使用 web 浏览器下载、查看、重命名和删除。
5) 应用程序服务器和群集优化: 应用程序服务器有一个群集优化模块, 它根据输入数据的数量、预计完成时间来启动具有最佳节点数的群集。
6) 应用程序服务器和 EMR 群集: 应用程序服务器启动一个具有最佳节点数的群集, 并采取位于亚马逊 S3 中的文件位置, 根据需要执行线性回归。用户给出的期望时间。
7) emr 群集和亚马逊 S3: emr 群集由一个主节点和几个核心节点组成。启动时, 当所有必需的软件包及其依赖项都安装在 EMR 集群中时, 群集将执行引导操作, 以便为线性回归执行 map 减少操作。
一旦准备就绪, 系统就可以从 bigdata 开始, 通过 EMR 复制脚本来执行 mapreduce 数据集。当设置为开始运行时, EMR 群集开始从亚马逊 S3 获取数据。它是由 Hadoop 分布式文件系统所接收的 EMR 集群和生成的mr和减少分配任务开始的。完成此过程后, 将在群集中的节点之间划分任务, 以执行 bigdata 的分析。当分析完成时, 数据存储在亚马逊 S3 中。
F. 系统的工作机制
1) 群集优化: 一种算法, 可以选择执行 bigdata 分析所需的理想群集节点数, 同时考虑到文件大小、有效成本和其他参数.
2) 引导操作: R, Rhadoop 包及其依赖项包安装在预配置的 hadoop 群集 EMR 中, 以使群集可以在 bigdata 中执行 mapreduce 操作。此外, 还安装了 emr 群集和亚马逊 S3 的基础设施, 使其能够从 EMR 集群写入 S3。
3) MapReduce 作业: EMR 群集生成许多映射并减少任务, 以便通过群集分发。这些映射和缩减任务是在 hadoop 框架的分布式环境中执行的。
4) 输出: 分析的结果存储在亚马逊 S3 中.
上面讨论的模型是一个 SaaS 框架, 它能够分析云上的大数据。而且安全、可伸缩、易于访问和高效, 这是非常有益的潜力。目前, 它使用 Rhadoop 执行回归分析, 并在分布式环境中以并行方式实现分析。它还计算群集中所需的最佳节点数, 以便在固定时间帧内处理输入数据。
分析可以进一步扩展, 包括其他预测分析, 如时间序列, 合作关系, kmean。当与 SAP 等其他企业系统结合使用时, 也可以实现直接的输入数据的采购。其他程序, 如商业智能或与 oracle 或 SAP 等系统的链接, 无疑将成为业界可用的最佳分析工具。它可以使用 Openstack 或 Cloudstack 在私有云中部署。
在商界, 时间就是金钱。在短时间内进行基于云的大数据分析的可行性, 使得上述模型的研究更加.
2016 International Conference on Advanced Communication Control and Computing Technologies (ICACCCT),Pages: 715 - 720