

英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
使用Cloudera Impala管理Mysql群集数据
Sahithi Tummalapallia , Venkata rao Machavarapub
摘要:MySQL群集是用于存储和操作数据的广泛使用的群集数据库,它为MySql数据库管理系统提供了无共享的群集,从而提供高可用性和高吞吐量,具有低延迟。 MySQL集群的问题是,随着数据的增长,处理数据所需的时间增加,可能需要额外的资源.Hadoop和Impala可以比MySql集群快一些,而且可能比Hive和Pig更快。 本文提供初步结果。评估结果表明,即使与Hive和Pig和MySql集群相比,Impala也可以实现一些数据分析和处理任务的可接受性能。
1、简介
Hadoop是一个框架,它使用简单的单一mapreduce接口和自己的分布式文件系统为分布式计算提供开源库。它有助于可扩展性,并且关心检测和处理故障。 Hadoop具有为我们处理所有复杂性的组件,并且通过使用简单的映射减少框架,我们能够利用分布式计算的功能,而不必担心像容错,数据丢失这样的复杂性。 Hadoop可用于存储大数据和处理数据,如数据挖掘,报告生成,文件分析,Web索引和生物信息学研究。
MySQL集群是为MySQL数据库管理系统提供无共享的集群和自动分片的技术.MySQL Cluster没有单点故障。它旨在提供高可用性和高吞吐量,具有低延迟,同时允许接近线性可扩展性。 MySQL集群实现为完全分布式的多主数据库,确保任何应用程序或SQL节点进行的更新可以立即访问所有访问集群的其他节点,每个数据节点都可以接受写入操作。 MySQL集群在具有自动分片功能的商品硬件上水平放置,可以通过SQL和NoSQL接口访问读写密集型工作负载。它支持内存和基于磁盘的数据,通过负载平衡进行自动数据分区,并且能够以无停机时间将节点添加到运行的集群,从而允许线性数据库可扩展性来处理最不可预测的工作负载。它由跨机器分布的多个节点组成,以确保系统可以工作,即使在节点出现网络故障等问题的情况下也是如此。
Apache Hive和Apache Pig是用于分析高级语言的大型数据集的开放源代码程序.Pig是一个高级数据流系统以及简单的查询代数,可让用户将数据转换声明为文件或文件组。 Hive是数据仓库软件,便于在分布式存储中查询和管理大型数据集。 Hive允许用户使用自己的类型和功能扩展系统。查询语言与SQL非常相似,因此熟悉SQL的任何人都可以轻松理解。 Hive和猪跑在Hadoop的顶部。
Cloudera Impala是用于存储在HDFS中的数据的Apache授权的实时查询引擎.Impala非常适合使用实时查询和速度至关重要的情况。但是许多开发人员将熟悉Hive和Pig,Impala使用自己的遍布集群的守护进程进行查询。此外,Impala不利用MapReduce,允许Impala实时返回结果。
关于在MySQL群集上查询大型数据集,可能需要几秒钟。随着数据的增长,处理数据所需的时间也会增加。 Hadoop与Hive和Pig可以比MySql集群更快地处理查询。但是,使用Cloudera Impala的Hadoop可以快速处理查询,因为它有自己的守护进程遍布集群进行查询。
本文介绍了Impala,Hive,Pig和MySQL Cluster在简单数据模型中的处理时间,在数据不断增长的同时进行简单查询。第3节讨论了一种提出的方法。第4节显示结果和解释。最后一节,第5节提供了一个结论。
2.Impala
Impala为Hadoop带来可扩展的并行数据库技术,使用户能够对存储在HDFS和Apache HBase中的数据执行低延迟SQL查询,而不需要数据移动或转换。 Impala与Hadoop集成,使用MapReduce,Apache Hive,Apache Pig和其他Hadoop软件使用的相同文件和数据格式,元数据,安全性和资源管理框架。分析师和数据科学家使用Impala通过SQL或商业智能工具对存储在Hadoop中的数据进行分析。结果是可以在相同的系统上使用相同的数据和元数据进行大规模数据处理和交互式查询,从而消除将数据集迁移到专用系统和/或专有格式的需要,只需执行分析即可。
在Impala之前,如果您的关系数据库有能力,您可能别无选择,只能扩展该系统以保持对性能的期望。如果您使用Hadoop来负担得起分析任何数量或种类的数据,但希望进行交互式性能,则必须将该数据移动到快速关系数据库中。然后,您必须接受重复存储和数据同步的成本和努力;接受要求固定方案的刚性;接受当你移动和转换数据时,你不可避免地会留下一些东西;接受您的分析选项将受限于该目标数据库。使用Impala,您现在可以选择。作为Hadoop生态系统的本地组件,Impala将其他Hadoop框架的所有优势(包括灵活性,可扩展性和成本效益)与企业级分析数据库所需的性能,可用性和SQL功能相结合.Impala是专门针对与标准业务Sahithi Tummalapalli和Venkata rao Machavarapu / Procedia Computer Science 85(2016)463 - 474 465智能环境的集成,并为此支持最相关的行业标准:客户端可以通过ODBC或JDBC进行连接;使用Kerberos或LDAP完成身份验证授权遵循标准SQL角色和权限。为了查询HDFS驻留的数据,用户通过熟悉的CREATE TABLE语句创建表,除了提供数据的逻辑模式之外,还表示物理布局,例如HDFS目录结构中的文件格式和放置位置。然后可以使用标准SQL语法来查询那些表。
与艾滋病毒携手合作IMPAA:Impala利用Hadoop生态系统中许多熟悉的组件。 Impala可以与其他Hadoop组件(作为消费者和生产者)交换数据,因此可以灵活地融入到ETL和ELT管道中。
主要的Impala目标是使SQL-on-Hadoop操作快速有效地吸引新类别的用户,并将Hadoop打开到新类型的用例。实际上,它利用了现有的许多Hadoop用户已经具备的Apache Hive基础架构,以便执行长时间运行的批处理SQL查询。特别是,Impala将其表定义保留在传统的MySQL或PostgreSQL数据库中,称为转移,相同的数据库,Hive保留这种类型的数据。因此,Impala可以访问Hive定义或加载的表,只要所有列都使用Impala支持的数据类型,文件格式和压缩编解码器,如图1所示。最初关注查询功能和性能意味着Impala可以读取使用SELECT语句的更多类型的数据可以使用16(57语句)写入。要使用Avro,RCFile或SequenceFile文件格式查询数据,请使用Hive加载数据。
- 拟议系统
在本文中,我们有三个具有相同数据模型的数据集。第一个数据集标为D1,其中存储了1年的航空公司数据,接下来的两个数据集分别标有D2,D3,分别含有2和3年的航空公司数据。 年的航空公司数据有大约70-80百万行的数据记录。
有不同的性能因素将决定结果,即:1.数据集文件大小; 查询声明; 数据复制因子 4.HDFS块大小; 5.平均时间
- Hadoop环境
在Hadoop环境中,有一个hadoop名称节点,四个hadoop数据节点,一个Sqoop,一个Hive,一个Pig和一个Impala,如图2所示.Sqoop有助于从MYSQL Server获取数据并将其直接导入Hadoop 分布式文件系统(HDFS).Sqoop设计用于在hadoop和关系数据库(如MYSQL)之间高效传输批量数据。HDFS配置中的数据复制因子设置为3。
- MySQL集群环境
MySQL集群有一个管理节点,四个数据节点和一个MySQL服务器作为应用程序节点,如图3所示。每个节点都部署在一个机器上。MySQL集群中的复制因子设置为2,即创建两个节点组。 该图说明了一个具有四个数据节点的MySQL集群,分别布置在两个节点的两个节点组中; 节点1和节点属于节点组0,节点3和节点属于节点组1.注意,这里只显示数据(ndbd)节点; 尽管工作集群需要一个用于集群管理的ndb_mgm进程和至少一个SQL节点来访问集群存储的数据。副本数设置为2,因为这是使MySQ1集群防止单个故障点的最低要求。
C.数据集
数据测试者使用ASA部分的数据集:统计计算统计图形数据展览09 [11]。数据最初来自RITA,并以每个细节进行描述。这些文件具有取消的可推定变量,以年度块和 已经比原件压缩得更多。每个文件使用23个属性描述一年的航空公司数据,并且包含大约75-80百万行的数据记录。
D.Query语句
在Hadoop上执行了MySQL和Hive,Pig和Impala上的十个查询。每个查询运行三次以获取执行的平均时间。执行的查询语句列表如表1所示。
- 实验结果
实验在Oracle VM VirtualBox上完成。每个系统都运行在具有2个处理器核心和4GB RAM的Red Hat操作系统之上。
- MYSQL群集结果
表I中列出的查询在数据集D1,D2,D3上的MySQL集群上运行,结果如表II所示,MySQL集群处理的平均结果如图4所示。
随着数据的增长,MySQL群集中的查询处理时间分别增加.MySQL群集是分布式的,共享的数据有一套计算机,每个都运行一个或多个进程,这些节点都是通过网络连接的。 当访问MySQL服务器和分布在数据节点之间的表之间的数据时,进行网络访问。要执行查询,必须从所有数据节点检索数据,并可能导致延迟[6]。由于顺序访问存在查询性能问题 到存储引擎,使用86,1 * $ 6 创建的唯一哈希索引不能用于访问表,如果将NULL作为键的一部分。
- 蜂巢结果
以下结果是对数据集D1,D2和D3的Hive查询,如表III所示,平均结果如图5所示.Hadoop上的Hiveop使数据处理直接和可扩展。 Hive是对大数据集执行查询的强大工具,精心设计的表和查询可以大大提高查询速度并降低处理成本。
- 猪结果
以下结果是D1,D2和D3数据集中的Pig查询,如表IV所示,平均结果如图6所示.Pig是查询大型半结构化数据集的高级程序语言,因此猪不能正常工作 这些数据集是高度结构化的.Pig执行由程序员定义的逐步方法,但是对于具有很少聚合,连接和排序功能的查询,该方法不能很好地工作。由于逐步的方法,Pig消耗 更多的时间为这个数据集。
D. Impala结果
以下结果是对数据集D1,D2和D3的Impala查询,如表IV所示,平均结果如图6所示.Impala是在Hadoop集群上运行的本机SQL查询引擎,提供对原始HDFS数据的简单查询访问和HBase数据库。 Impala与Hive及其ODBC驱动程序是API兼容的。 Hive将SQL查询转换/编译为基于Java的MapReduce代码,然后以批处理模式运行,就像其他Hadoop任务一样.Hive实际上为MapReduce添加了一个步骤,而Impala替换了MapReduce。
Impala提供更快的响应,因为它使用033(大规模并行处理),而不是使用MapReduce的Hive。大量并行处理是一种使用并行运行的独立CPU执行单个程序的计算,每个CPU都有自己的专用内存。事实上,Impala是基于MPP的,不涉及MapReduce作业的开销,即作业创建和设置,插槽分配,拆分创建,地图生成等,这使得它非常快。凭借高度的内存密集型(MPP),它是不适合需要诸如连接等大量数据操作的任务,因为您不能将所有内容都放入内存中,而是实时空闲,在一部分数据上进行即席查询。
在该数据集中,Impala克服了Hive处理时间。图7显示了MySQL Cluster,Hive,Pig和Impala之间的处理时间查询。 MySQL集群在某种程度上比Hive更快,但随着数据的增长,MySQL需要更多的时间来处理数据,而Hive可以在更短的时间内有效地处理数据。但是Impala比Hive更有效,并且需要的时间远远少于Hive 用于处理数据。另一方面,Pig不适合这种数据模型,当查询更复杂时,它可以很好地执行。
- 结论与未来作品
Impala能够处理大量数据,并且比Hive更有效.Pig不适合此数据集,更适合复杂的查询.Impala旨在处理实时的adhoc查询以处理数据探索,非常适合 在大数据集上执行SQL查询以进行交互式探索性分析。Impala的性能随主机数量而变化。
然而,这是在一个低成本的硬件上测试的。 当某些软件使用更好的硬件时,性能可能会改变。如果数据节点的数量增加,性能会有所不同。
这可以通过在更好的硬件环境中比较每个软件性能并增加主机数量来进行下一个未来的工作。
参考文献:
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[26392],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
