5种让Hive查询变快的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5种让Hive查询变快的方法相关的知识,希望对你有一定的参考价值。

参考技术A 在过去几年中,主要受到围绕Stinger计划的Hive社区创新的推动,Hive查询时间得到了显着改善,使Hive能够以速度和规模支持批量和交互式工作负载。
但是,许多使用者仍然不熟悉以最快速度运行Hive查询的基本技术和最佳实践。本文中,将重点介绍一些常使用的简单技术,以提高HIVE查询的性能。

Hive可以使用Apache Tez执行引擎而不是Map-reduce引擎。不会详细介绍这里提到的使用Tez的许多好处; 相反,提出一个简单的建议:如果在您的环境中默认情况下没有打开它,请在Hive查询的开头使用Tez设置为“true”

Hive支持ORCfile,这是一种新的表存储格式,通过谓词下推,压缩等技术实现极佳的速度提升。
对每个HIVE表使用ORCFile应该是一个明智的选择,对于获得HIVE查询的快速响应时间非常有益。
作为一个例子,考虑两个大表A和B(存储为文本文件,这里没有指定一些列),以及一个简单的查询 :

此查询可能需要很长时间才能执行,因为表A和B都存储为TEXT。将这些表转换为ORCFile格式通常会显着缩短查询时间:

ORC支持压缩存储(使用ZLIB或如上所示使用SNAPPY),但也支持未压缩存储。
将基表转换为ORC通常是取决于所在团队获取数据的职责,由于其他优先级,可能需要一些时间来更改完整的获取数据过程。ORCFile的好处是如此明显,以至于推荐如上所示的自助式方法 - 将A转换为A_ORC,将B转换为B_ORC并以此方式进行连接,以便立即从更快的查询中受益,而不依赖于其他团队。

矢量化查询执行通过一次批量执行1024行而不是每行一行来提高扫描,聚合,过滤器和连接等操作的性能。
这个功能在Hive 0.13中引入,显着缩短了查询执行时间,并且可以通过两个参数设置轻松启用:

在提交最终执行之前,Hive会优化每个查询的逻辑和物理执行计划。这些优化不是基于查询的成本 - 也就是说,直到运行时。
最近添加到Hive,基于成本的优化,基于查询成本执行进一步优化,从而导致可能不同的决策:如何订购联接,执行哪种类型的联接,并行度等。

要使用基于成本的优化(也称为CBO),请在查询开头设置以下参数

然后,通过运行Hive的“analyze”命令为CBO准备数据,以收集我们想要使用CBO的表的各种统计信息。
例如,在tweet数据表中,希望收集有关该表的统计信息以及大约2列:“sender”和“topic”:

使用HIVE 0.14(在HDP 2.2上),analyze命令的工作速度要快得多,而且您不需要指定每一列,因此只需如下:

现在使用此表执行查询应该会导致不同的执行计划由于成本计算和Hive创建的不同执行计划而更快。

SQL是一种强大的声明性语言。与其他声明性语言一样,编写SQL语句的方法不止一种。尽管每个语句的功能都相同,但它可能具有截然不同的性能特征

每条记录代表一次点击事件,希望找到每个sessionID的最新网址。

有人使用如下方式:

在上面的查询中,构建一个子查询来收集每个会话中最新事件的时间戳,然后使用内部联接来过滤掉其余的事件。
虽然查询是一个合理的解决方案 - 从功能的角度来看 - 事实证明,有一种更好的方法来重写这个查询,如下所示

在这里,使用Hive的OLAP功能(OVER和RANK)来实现相同的功能,但没有使用表连接。
显然,删除不必要的连接几乎总能带来更好的性能,而且当使用大数据时,这比以往任何时候都更重要。在很多情况下查询不是最优的 - 所以仔细查看每个查询并考虑重写是否可以使它更好更快。

更多内容信息 https://blue-shadow.top

电脑慢的快速解决办法 22种方法电脑速度变快10倍

很多电脑用户一直都被电脑慢的问题困扰着,而大脑大神根本不把电脑慢当做电脑问题,因为让电脑变快的方法有很多,而且操作都巨简单。

提高电脑速度的方法也能很多而且很容易操作,一切的难,只是来源于你没有学过而已,现在就跟着小编来学那些简单又使用的电脑技能吧。

让电脑速度快10倍,大概会让人觉得很不可思议吧,而实际上,你羡慕的大神可能也只是因为学会了下面的22种提高电脑速度的方法哦。

1、系统常规优化

1)关闭系统属性中的特效。点击开始→控制面板→系统→高级→性能→设置→在视觉效果中,设置为调整为最佳性能→确定即可。

2)“我的电脑”-“属性”-“高级”-“错误报告”-选择“禁用错误汇报”。

3)再点“启动和故障恢复”-“设置”,将“将事件写入系统日志”、“发送管理警报”、“自动重新启动”这三项的勾去掉。再将下面的“写入调试信息”设置为“无”。

4)“我的电脑”-“属性”-“高级”-“性能”-“设置”-“高级”,将虚拟内存值设为物理内存的2.5倍,将初始大小和最大值值设为一样(比如你的内存是256M,你可以设置为640M),并将虚拟内存设置在系统盘外(注意:当移动好后要将原来的文件删除)。

5)将IE临时文件夹转到其他分区:打开IE浏览器,选择“工具“-“internet选项”-“常规”-“设置”-“移动文件夹”,设置设置到系统盘以外的分区即可。

2、加速开、关机

1)首先,打开“系统属性”点“高级”选项卡,在“启动和故障恢复”区里打开“设置”,去掉“系统启动”区里的两个√,再点“编辑”确定启动项的附加属性为/fastdetect而不要改为/nodetect,先不要加 /noguiboot属性,因为后面还要用到guiboot。

2)接下来这一步很关键,在“系统属性”里打开“硬件”选项卡,打开“设备管理器”,展开“IDE ATA/ATAPI控制器”,双击打开“次要IDE通道”属性,点“高级设置”选项卡,把设备1和2的传送模式改为“DMA(若可用)”,设备类型如果可以选择“无”就选为“无”,点确定完成设置。同样的方法设置“主要IDE通道”。

3)设置预读改善开机速度,打开注册表,找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters,右边窗口将EnablePrefetcher的数值更改为1(0-禁用预读,1-预读应用程序,2-系统启动预读,3-前两者皆预读)。电脑是PIII 800MHz 以上的可以尝试将数值更改为4或5。

4)顺便把关机也加速一下吧。打开注册表(开始-运行-regedit),单击“我的电脑”打开“编辑”菜单的“查找”,输入AutoEndTasks,点“查找下一个”。双击打开找到的结果修改“数值数据”为1(此项是让系统自动关闭停止响应的程序)。然后在AutoEndTasks的下面找到HungAppTimeout(将其“数值数据”设为2000或者更小,推荐设为200),再找到WaitToKillAppTimeout(将其“数值数据”设为2000或者更小,推荐设为1000)。在这里顺便也把菜单延迟的时间修改一下,在AutoEndTasks的下面找到MenuShowDelay,数值是以毫秒为单位,如果想去掉菜单延迟就设为0。修改后点“编辑”菜单,打开“查找下一个”(快捷键F3),继续查找,把找到的结果都安照上一步的方法修改(注意:数值要对应相同)。

5)用上面的方法找到WaitToKillServiceTimeout并设置数值与WaitToKillAppTimeout相同。

6)享受了极速重启的乐趣后我们再进一步加速一下启动的速度,打开“系统属性”-“高级”-“启动和故障恢复”设置,打开“系统启动”区的编辑,在fastdetect的后面加上/noguiboot,这样在启动的时候就不会再显示滚动条。如果你非常喜欢这个滚动条的显示这一步就不用做了。

7)MsConfig。选择“运行”-“msconfig”。我们要动手脚的是“启动”选项卡,点击它,这个选项卡中显示了Windows启动时运行的所有程序。这里没有一个程序对Windows来说是生死悠关的,所以放心大胆地把不要的去掉。

3、减少开机磁盘扫描等待时间

选择“开始→运行”,在运行对话框中键入“chkntfs /t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs /x c:”命令;如果要恢复对C盘的扫描,可使用“chkntfs /d c:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。

4、关掉调试器Dr. Watson

运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十M的空间。这是出错程序的现场,对我们没用。然后打开注册表,找到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug子键分支,双击在它下面的Auto键值名称,将其“数值数据”改为0,最后按F5刷新使设置生效,这样就彻底来取消它的运行了。另外蓝屏时出现的memory.dmp也可删掉。在“我的电脑→属性→高级→设置→写入调试信息→选择无”。

5、关闭“系统还原”

鼠标右健单击桌面上的“我的电脑”,选择“属性”,找到“系统还原”去掉,这样可以节省好多空间。

6、关闭“休眠支持”

休眠功能会占用不少的硬盘空间,如果使用得少不妨将其关闭。打开“控制面板”-“电源选项”-“休眠”选项卡,取消“启用休眠”复选框。

7、取消对ZIP压缩文件的支持

点击开始→运行,敲入:“regsvr32 /u zipfldr.dll”双引号中间的,然后回车确认即可,成功的标志是出现个提示窗口,内容大致为:zipfldr.dll中的Dll UnrgisterServer成功。

8、不加载DLL文件(卸载无用的动态链接)

找到注册表如下位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer,接下来建立一个名为AlwaysUnloadDLL,值为1的双字节值。如果想要去除这项优化,只需把该键值设为0(也可以干脆把键删掉)。

9、关闭错误报告

在“系统属性”对话框中选择“高级”选项卡,单击“错误报告”按钮,在弹出的“错误汇报”对话框中,选择“禁用错误汇报”单选项,最后单击“确定”即可。

10、加快窗口显示速度

打开注册表编辑器,找

到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics,右边窗口找到MinAniMate键值,把它改为0。

11、关闭自动更新

“我的电脑”右键,选择“属性”-“自动更新”-“关闭自动更新,我将手动更新计算机”,单击“确定”。

12、加快开始菜单的显示

打开注册表编辑器,找

"HKEY_CURRENT_USER\Control Panel\Desktop\MenuShowDelay"主键,适当调小该键值,最低可设为“0”。如果此方法无效,请从“控制面板”-“显示属性”-“显示效果”-“高级”,将"show menu shadow"项的选择取消,便可加快开始菜单的显示。

13、关闭磁盘索引

打开我的电脑-右击驱动器-“属性”-取消“使用索引以便快速查找文件”。

14、加快自动刷新率

运行注册表编辑器,找

HKEY_LOCAL_MACHINE\ystem\CurrentControlSet\Control\Update\,将Dword[UpdateMode]的数值数据更改为[0]。

15、关闭自动重新启动功能

WindowsXP遇到严重问题时会突然重新开机,可从注册表将此功能取消。打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”将AutoReboot键的Dword值更改为0。

16、删除强加的附件

用记事本修改\winnt\inf\sysoc.inf,用查找/替换功能,在查找框中输入“,hide”(一个英文逗号紧跟hide),将“替换为”框设为空,并全部替换,这样,就把所有的,hide都去掉了;保存退出;运行“添加-删除程序”,就会看见“添加/删除Windows组件”中多出了好几个选项,这样你可以删除些没有用的附件。

17、启动时禁止自动调用"Windows Messenger"

运行注册表编辑器,找到并删除

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\MSMSGS"此键来实现。

18、每次启动时保持桌面设置不变

打开注册表编辑器,找到

HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\ Polices\Explorer子键分支,在它的下面找到NoSaveSettings,将其键值改为“0”,或者直接删除该键值项。

19、在启动电脑时运行Defrag(磁盘打扫)程序

打开注册表编辑器,找到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction键,将键值Enable设定为Y等于开启,而设定为N等于关闭。

20、清除预读文件

定期删除该文件夹内的所有文件,在安装盘的\Windows\prefetch文件夹里。

21、取消磁盘容量警告

打开注册表编辑器后,找到

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer键,双击NoLowDiskSpaceChecks键并修改其数值为1然后“确定”即可。如果此键值不存在,则新建一个名为NoLowDiskSpaceChecks的DWORD值,并将其数值设为1然后“确定”即可。

22、在关机时清空页面文件(清空虚拟内存)

打开“控制面板”,点击“管理工具”→“本地安全策略”→“本地策略”→“安全选项”,双击其中“关机:清理虚拟内存页面文件”一项,点击弹出选单中的“已启用”选项,单击“确定”即可。

这么实用的干货怎么能不收藏起来呢?转发给好友,还可以提高自己的逼格哦,如果,如果你还想了解更多,就关注我的公众号“大番茄电脑管家(dafanqie1)”

以上是关于5种让Hive查询变快的方法的主要内容,如果未能解决你的问题,请参考以下文章

一份可以令 Python 变快的工具清单

加快 hive 查询的 5 种方法

Hive表数据质量校验的设计与开发

pycharm启动慢的解决方法

如何让网站加载速度变快(干货!)

什么软件可以让自己的网速快