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     使用适当的操作系统设置

看到CDH优化性能有关的操作系统设置的建议,你可以改变影响 Impala的性能。特别是,你可能会发现,改变vm.swappiness Linux内核设置一个非零的值(5.7建议为1-10,建议为1,这个参数从早期的为0,5.3的10,目前5.7建议为1,反映一切为最佳实践为依据),提高了系统的整体性能。

接下来几天将为朋友们优化十个章节的具体细节,敬请关注!

下篇:impala十大优化系列之(1)—分区优化

Hadoop-Impala优化十大指导原则和最佳实践相关推荐

  1. 云原生应用的十大设计原则

    目录 云应用程序的十大设计原则 自我修复设计 实现全面冗余 尽量减少协调 横向扩展设计 通过分区解决限制 运营设计 使用托管服务 使用最佳的数据存储完成作业 演变设计 根据业务需求构建 越来越多的企业 ...

  2. B端系统体验好不好,尼尔森十大可用性原则

    B端系统的用户体验至关重要.这些系统通常是用于提升商业效率.生产力和准确性,因此用户界面的设计和易用性直接影响到生产力和员工满意度. 以下是尼尔森十大可用性原则,可以帮助设计出更好的B端系统用户体验: ...

  3. 必须掌握的内容营销十大关键原则

    在谷歌的实验室中,数百名有着博士学位的数学家在为钻研搜索引擎和算法,试图寻找能让大家都关注.喜欢的内容和提升用户体验的有效途径,他们在寻找优质内容,和产生优秀内容的原因.内容是搜索引擎和社交网络所构建 ...

  4. UX用户体验设计十大重要原则 上

    在UI设计中什么是最重要的?没错就是用户体验设计无疑了.但是提到用户体验设计很多小伙伴就迷茫不知所措了,今天胡老师给大家分解总结出了UX用户体验设计十条重要原则,并通过示例进行了简单的定义.学会这些内 ...

  5. 交互设计的十大可用性原则

    产品经理有必要投入精力来学习和练习交互设计. 交互设计领域有丰富的理论沉淀,最著名和经典的理论当属人机交互大师雅各布·尼尔森(Jakob Nielsen)博士在1995提出的尼尔森十大可用性原则(Ja ...

  6. 测试也需要懂尼尔森的十大可用性原则

    尼尔森的十大可用性原则是产品设计与用户体验设计的重要参考标准,值得深入研究与运用. 一.状态可见原则 用户在网页上的任何操作,不论是单击.滚动还是按下键盘,页面应即时给出反馈."即时&quo ...

  7. 尼尔森的十大可用性原则

    尼尔森的十大可用性原则是产品设计与用户体验设计的重要参考标准,值得深入研究与运用. 一.状态可见原则 用户在网页上的任何操作,不论是单击.滚动还是按下键盘,页面应即时给出反馈."即时&quo ...

  8. 前端设计十大可用性原则

    界面设计的流程在团队分工明确.人力储备充足的情况下,在开发一套全新的B端业务系统时,界面设计的流程一般如下: 产品经理绘制线框图原型,表达软件中每个页面的设计需求. UE设计师协助产品经理完善交互体验 ...

  9. 软件测试-产品的十大可用性原则

    产品的十大可用性原则 尼尔森的十大可用性原则是产品设计与用户体验设计的重要参考标准,值得深入研究与运用. 一.状态可见原则 用户在网页上的任何操作,不论是单击.滚动还是按下键盘,页面应即时给出反馈.& ...

最新文章

  1. 学python是看书还是看视频-零基础自学Python是看书还是看视频?
  2. vonic 安装的坑
  3. 《第一行代码》学习笔记40-网络(1)
  4. 设计师Yoyo:为用户设计产品,让他们生活更美好
  5. ZZULIOJ 1096: 水仙花数(函数专题)
  6. tomcat使用方法大全
  7. 将Python和R整合进一个数据分析流程
  8. SystemMenu添加Item
  9. html添加田字,兆加页(是加三个田是什么字)
  10. IP地址点分十进制转化为二进制以字符串的形式输出
  11. word在html中预览,在网页中预览word和excel
  12. 故障树分析法MATLAB,基于VC++与MATLAB的故障树分析系统
  13. Redis采用不同内存分配器碎片率对比
  14. #R语言# 生成随机数
  15. Druid配置文件properties的详细配置
  16. 丰田将在所有销售店安装充电设备丰田章男社长“建立共享基础设施”
  17. java编程思想读书笔记
  18. 帆软两台服务器文件同步,同步帆软代码
  19. 安全帽识别与火焰识别系统功能应用
  20. 批处理文件删除注册表数据

热门文章

  1. Spring Security 0auth2 认证服务器和资源服务器实现
  2. chown –r mysql:mysql_MySQL安全配置
  3. 安卓手机来电防火墙_iPhone 超酷炫的来电闪光秀,安卓手机也可以玩了。
  4. 裁员天花板!!!谷歌中国赔偿N+9?
  5. javabean,BeanUtils以及 java7的新特性 .
  6. 计量经济学(1.1)
  7. 企业组织员工体检的意义在哪里?让我来告诉你
  8. 美国“鼠女”放生数千老鼠 旧金山成鼠城
  9. uniapp打包时未添加camera模块,请参考http://ask.dcloud.net.cn/article/283
  10. 3步领取 AMC8数学竞赛免费测评