Hadoop-Impala优化十大指导原则和最佳实践大数据培训.docx_第1页
Hadoop-Impala优化十大指导原则和最佳实践大数据培训.docx_第2页
Hadoop-Impala优化十大指导原则和最佳实践大数据培训.docx_第3页
Hadoop-Impala优化十大指导原则和最佳实践大数据培训.docx_第4页
全文预览已结束

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

兄弟连IT教育作为国内领先的培训机构,迄今已有10年的教育历史。8大特色课程:PHP培训、安卓培训、JAVAEE+大数据、UI设计、HTML5培训、云计算架构师,虚拟现实VR培训,机器人教育培训,在目前IT市场特别火,每门课程都由名师牵头,以认认真真的态度做教育。1.1 Hadoop-Impala优化十大指导原则和最佳实践以下是性能准则和最佳做法。您可以使用在规划过程中实验,和hadoop集群一起进行impala的性能调整。所有这些信息也可在文档的其他地方更详细的impala文档;以下是优化的方法措施,强调优化调优技术提供最高的投资回报1) 选择适当的数据文件格式2) 避免数据摄入过程,产生许多小的文件3) 基于实际数据量选择分区粒度4) 使用最小的适当的整数类型进行分区键列5) 选择一个合适的block大小6) 收集性能关键或高容量连接查询中使用的所有表的统计数据7) 尽量减少将结果发送给客户端的开销8) 请确认您的查询以一种有效的逻辑方式进行计划9) 验证查询的性能特征10) 使用适当的操作系统设置1.1.1 选择适当的数据文件格式通常,对于大量的数据(每个表或分区有很多G字节),Parquet文件格式表现最好,因其柱状存储布局相结合,大量的I/O请求的大小,和压缩编码。看到Impala与所有支持的文件格式的Impala对比Hadoop文件格式,并采用Parquet文文件格式的详细说明,Parquet表对于小容量的数据,几个字节或更少的每个表或分区,你可能看不到的文件格式之间的业绩差异明显。在小数据量,减少I/O的高效的压缩文件格式可以被并行执行的机会减少。当规划一个生产部署或进行基准测试时,总是使用真实的数据卷来获得性能和可扩展性的真实图像。1.1.2 避免摄取过程产生很多年小的文件避免数据摄入过程,产生许多小的文件。当生产数据文件以外的impala,喜欢的不是文本格式或公司,在那里你可以通过建立文件排排。一旦数据在Impala,你可以将它转换成更高效的Parquet和分裂成多个数据文件中使用一个单一的插入SELECT语句。或者,如果你有基础设施,生产多兆字节的文件作为您的地板数据准备过程的一部分,这样做,跳过转换进入impala。总是使用插入选择要复制的数据从表到表内大量的impala。避免插入数据或性能关键表的任何实质性数据量的值,因为每一个这样的语句都会产生一个单独的小数据文件。查看插入的示例的插入语句选择语法。例如,如果你在Parquet有成千上万的分区,每个小于256 MB的数据,考虑在一个较低的粒度划分,如由年/月而不是年/月/日。如果一个低效的数据摄取过程产生成千上万的数据文件在同一个表或分区,考虑通过执行一个插入压缩数据选择将所有数据复制到另一个表;这个过程将被重新组织成一个较小的较大的文件数。1.1.3 选择合适的分区粒度分区是一种基于一个或多个列的值的物理上划分数据的技术,例如:年、月、日、区域、城市、网站的一部分,等等。当你发出查询请求一个特定的值或值的范围为分区键列,Impala可以避免阅读不相关的数据,可能会产生一个巨大的节省磁盘I / O.在决定使用哪个列(S)进行分区时,选择合适的粒度级别。例如,你应该分配一年,一个月,一天,或只有一年和一个月?选择一个分区策略,提出至少256 MB的每个分区中的数据,利用HDFS块I/O和Impala分布式查询。在分区也会导致查询计划需要更长的时间比必要的,如Impala修剪不必要的分区。理想情况下,保持表中的分区的数量低于3万。准备数据文件时,要在分区目录中,创建几个大文件,而不是许多小文件。如果您以许多小文件的形式接收数据,并没有对输入格式的控制,请考虑使用“插入”选择语法复制数据从一个表或分区到另一个,它压缩的文件到一个相对小的数量(基于集群中的节点数)。如果你需要减少分区的整体数量和增加在每个分区的数据量,分区键列,很少引用或非关键查询引用第一次看(不受SLA)。例如,您的网站日志数据可能会被年、月、日和小时划分,但如果大多数查询每天都将结果卷起来,也许你只需要一年、一个月、一天的时间来划分。如果您需要更大的减少粒度,请考虑创建“桶”,计算对应于不同的分区键的值的计算值。例如,您可以使用trunc()功能与时间戳列组的日期和时间间隔的基础上如周或季度值。看到Impala Date和时间函数的详细信息。1.1.4 使用最小的适当的整数类型进行分区键列虽然它是使用字符串的分区键列很吸引人,因为这些值可以转化为HDFS的目录名称,但是不管怎样,你可以用普通分区的关键领域如年月数值最小化内存使用,和天。使用最小的整数类型,认为适当的范围值,通常TINYINT为年月日、年和smallint。使用extract()功能拉出个别日期和时间字段的时间戳值,和cast()返回值到相应的整数类型。1.1.5 选择一个合适的数据块大小默认情况下,插入的Impala选择语句创建一个256MB的文件块大小的block。(Impala2开始更改变更为默认。从前,限为1 GB,但是Impala关于压缩的保守估计,导致小于1 GB的文件。)每个parquet文件写的Impala是一个块,让整个文件是由一个单一的主机单元处理。当你拷贝文件到HDFS地板之间或HDFS文件系统,使用hdfs dfs -pb保持原块的大小。如果只有一个或几个数据块中的表,或在一个分区,是唯一的查询访问,那么你可能会经历一个不同的理由放缓:没有足够的数据来利用Impala的并行分布式查询。每个数据块的一个重要组成部分,由一个单一的核心处理。在16个核心机器的100个节点集群中,您可能同时处理数千个数据文件。您要在“多个小文件”和“单个巨型文件”之间找到一个“小文件”和“单个巨文件”之间的一个“小文件”和“并行处理”之间的“小文件”和“并行处理”。你可以设置parquet_file_size查询选项在插入之前SELECT语句来减少每个生成的parquet文件的大小。(指定文件大小的字节,一个绝对的数量或在Impala2后,在结束与M为千兆字节。兆字节或G单位)使用不同的文件大小的基准,找到适合您的特定数据量正确的平衡点。1.1.6 收集性能关键或高容量连接查询中使用的所有表的统计数据用计算统计语句收集统计数据。查看详细信息的连接查询的性能报告。1.1.7 尽量减少将结果发送给客户端的开销使用技术,如:汇聚。如果你需要知道一个条件匹配多少行,从一些列的总值中匹配值,最高或最低的匹配,等等,叫汇总等功能count(),sum(),并在查询结果集的max()而不是发送到应用程序和做这些计算有。记住,一个不汇聚的结果集是巨大的,通过网络传输需要大量的时间。过滤。在查询的其中一个子句中使用所有适用的测试,以消除不相关的行,而不是产生一个大的结果集,并使用应用程序逻辑进行过滤。限制条款。如果您只需要从结果集上看到一些示例值,或从查询使用顺序的顶部或底部值,包括限制条款,以减少结果集的大小,而不是要求充分的结果集。最好的就是丢掉大多数的行。避免过度开销。由于漂亮的打印结果并显示在屏幕上。当你检索结果通过使用Impala的外壳,外壳等选项,B和output_delimiter产生结果没有特殊的格式,并将输出重定向到文件中而不是打印到屏幕上。考虑使用插入选择写的结果直接向HDFS的新文件。看到Impala外壳配置选项的Impala shell的命令行选项的详细信息。1.1.8 请确认您的查询以一种有效的逻辑方式进行计划在实际运行之前检查一个查询的解释计划。参看性能调整部分的解释声明语句和使用解释计划的细节部分。1.1.9 验证查询的性能特征验证在运行后,检查查询配置文件的查询配置文件中的低级别的I / O、内存使用、网络带宽、中央处理器利用率等方面都在预期的范围内。查看使用查询配置文件进行性能调整的详细信息。1.1.10 使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论