Hive Tunning(二)优化存储
CREATE TABLE sale( id int, timestamp timestamp, productsk int, storesk int, amount decimal, state string )STORED AS orc;
相关参数,自己看,不解释了。 CREATE TABLE sale( id int, timestamp timestamp, productsk int, storesk int, amount decimal, state string )STORED AS orc tblproperties ("orc.compress"="NONE");
下面是加快hive查询的一些可以参考的方式:
CREATE TABLE sale( id int, amount decimal, ... )partitioned by (xdate string, state string);
INSERT INTO sale (xdate=‘2013-03-01’, state=‘CA’) SELECT * FROM staging_table WHERE xdate = ‘2013-03-01’ AND state = ‘CA’;
set hive.exec.dynamic.partition.mode=nonstrict; INSERT INTO sale (xdate, state) SELECT * FROM staging_table;
INSERT INTO sale (xdate, state=‘CA’) SELECT id, amount, other_stuff, xdate, state FROM staging_table WHERE state = ‘CA’;
下面我们讲一下常用的hive查询调优

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hive Tuning(一) 连接策略
群里共享了一本hive调优的书记,名叫《Hive Tunning》,就忍不住开始看了,也顺便记录一下自己学到的东西,备忘! 首先,这是hive的数据摘要,别问我什么意思,我也没看懂。 好,我们正式开始,首先是连接的问题,我们都知道连接耗时长,但是连接无法避免,那hive又是怎么处理连接操作的呢? 下面是hive的连接策略: hive有 三种类型的连接策略: (1)Shuffle Join : 这种类型的是通过map/reduce 来实现连接操作的,优点是不需要考虑数据的大小和分布,缺点是消耗大量的资源而且是最慢的。 (2)Broadcast Join:这种类型的方式是把一个小的表在所有节点中加载到内容当中,然后用mapper来扫描大表进行连接,速度非常快,但是其中一个表必须可以加载到内存当中。 (3)Sort-Merge-Bucket Join:mapper可以协同定位keys去进行高效的连接,速度很快,不需要考虑表的大小,但是数据必须先排序和整理。 Shuffle Join: 我们以这个销售订单这个例子来做演示,可以看到其中的图,它们是通过customer.id=order.cid来...
- 下一篇
Spark Tungsten-sort Based Shuffle 分析
前言 看这篇文章前,建议你先简单看看 Spark Sort Based Shuffle内存分析。 Tungsten 中文是钨丝的意思。 Tungsten Project 是 Databricks 公司提出的对Spark优化内存和CPU使用的计划,该计划初期似乎对Spark SQL优化的最多。不过部分RDD API 还有Shuffle也因此受益。 简述 Tungsten-sort优化点主要在三个方面: 直接在serialized binary data上sort而不是java objects,减少了memory的开销和GC的overhead。 提供cache-efficient sorter,使用一个8bytes的指针,把排序转化成了一个指针数组的排序。 spill的merge过程也无需反序列化即可完成 这些优化的实现导致引入了一个新的内存管理模型,类似OS的Page,对应的实际数据结构为MemoryBlock,支持off-heap 以及 in-heap 两种模式。为了能够对Record 在这些MemoryBlock进行定位,引入了Pointer(指针)的概念。 如果你还记得Sort B...
相关文章
文章评论
共有0条评论来说两句吧...