Hive 本地模式与 Fetch 抓取优化
需积分: 31 79 浏览量
更新于2024-08-06
收藏 5.69MB PDF 举报
本文主要探讨了Hive在处理小规模数据时的一种优化策略——本地模式(Local Mode),以及Fetch抓取优化技术,这两种方法都旨在提高Hive查询的效率。
9.2 本地模式
在Hadoop环境中,通常使用Hadoop的分布式特性处理大规模数据集。然而,对于Hive中的小数据量查询,启动完整的MapReduce作业可能会导致预处理时间过长,反而降低了整体性能。为了解决这个问题,Hive引入了本地模式(Local Mode),它允许在单台机器上完成所有任务,从而显著减少执行时间。用户可以通过设置`hive.exec.mode.local.auto`为`true`来启用这个优化,使得Hive能自动判断何时启动本地模式。此外,还可以通过`hive.exec.mode.local.auto.inputbytes.max`和`hive.exec.mode.local.auto.input.files.max`两个参数分别设置输入数据量的最大值和文件数量,以决定何时使用本地模式,这两个参数的默认值分别为128MB和4。
案例演示了开启和关闭本地模式对查询时间的影响。当本地模式开启时,一个查询只需要1.328秒,而关闭时则耗时20.09秒,显示了本地模式在处理小数据集时的优势。
9.1 Fetch抓取
Fetch抓取是一种Hive优化,针对某些特定类型的查询,如简单的SELECT * FROM表或者带有LIMIT的查询,可以直接由Hive读取文件并返回结果,无需MapReduce的参与。在`hive-fetch-task-conversion`属性设置为`more`的情况下,更多类型的查询可以被转化为单个FETCH任务,包括全局查找、字段查找和LIMIT操作。相比旧版本的`minimal`设置,`more`选项提供了更多的优化可能性,但不支持聚合、 DISTINCT、笛卡尔积、LATERAL VIEW和JOIN等复杂操作。
实验中,当将`hive.fetch.task.conversion`设置为`none`时,即使是简单的查询也会执行MapReduce程序,这展示了Fetch任务转换在优化查询效率上的作用。
本地模式和Fetch抓取都是Hive在处理小规模数据或简单查询时的效率提升手段,通过合理配置和运用这些策略,可以在不牺牲性能的前提下,提高Hive的响应速度和用户体验。在企业级Hadoop环境的调优过程中,理解并利用这些特性显得尤为重要。
663 浏览量
2525 浏览量
1441 浏览量
6044 浏览量
915 浏览量
663 浏览量
思索bike
- 粉丝: 38
- 资源: 3959
最新资源
- 水利水电施工组织设计-某混凝土重力坝施工导流设计
- modscan32.rar
- Kontext--模拟苹果ios系统页面过渡效果插件
- srfi-11:接收多个值的语法
- react-native-networking-patch:提高了React Native网络模块的性能并添加了超时功能
- LocationPicker:适用于您的应用的即用型和完全可定制的位置选择器
- 江苏无纸记录仪,温度记录仪.zip
- 各种鼠标悬停css3动画效果
- google-maps-in-react:React中的Google Maps:自动完成位置搜索| 可拖动标记| 标记信息框
- PYTHON矩阵乘法.zip
- JournalToGo
- protobuf-second-go:每秒自动生成的go文件
- BoardViewer 官方版
- dibyajyotihazra.github.io:投资组合网站
- 6502-json-parser-v1.1.1.zip
- 微信PC2.6.8.1安装文件.rar