hive中的bucket table
前言
bucket table(桶表)是对数据进行哈希取值,然后放到不同文件中存储
应用场景
当数据量比较大,我们需要更快的完成任务,多个map和reduce进程是唯一的选择。
但是如果输入文件是一个的话,map任务只能启动一个。
此时bucket table是个很好的选择,通过指定CLUSTERED的字段,将文件通过hash打散成多个小文件。
create table test
(id int,
name string
)
CLUSTERED BY(id) SORTED BY(name) INTO 32 BUCKETS
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘/t’;
执行insert前不要忘记设置
set hive.enforce.bucketing = true;
强制采用多个reduce进行输出
hive> INSERT OVERWRITE TABLE test select * from test09;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 32
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapred.reduce.tasks=<number>
Starting Job = job_201103070826_0018, Tracking URL = http://hadoop00:50030/jobdetails.jsp?jobid=job_201103070826_0018
Kill Command = /home/hjl/hadoop/bin/../bin/hadoop job -Dmapred.job.tracker=hadoop00:9001 -kill job_201103070826_0018
2011-03-08 11:34:23,055 Stage-1 map = 0%, reduce = 0%
2011-03-08 11:34:27,084 Stage-1 map = 6%, reduce = 0%
*************************************************
Ended Job = job_201103070826_0018
Loading data to table test
5 Rows loaded to test
OK
Time taken: 175.036 seconds
hive的sunwg_test11文件夹下面出现了32个文件,而不是一个文件
[hadoop@hadoop00 ~]$ hadoop fs -ls /ticketdev/test
Found items
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000000_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000001_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000002_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000003_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000004_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000005_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000006_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000007_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000008_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000009_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000010_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000011_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000012_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000013_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000014_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000015_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000016_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000017_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000018_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000019_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000020_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000021_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000022_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000023_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000024_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000025_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000026_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000027_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000028_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000029_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000030_0
-rw-r–r– ticketdev hadoop -- : /ticketdev/test/attempt_201103070826_0018_r_000031_0
文件被打散后,可以启动多个mapreduce task
当执行一些操作的时候,你会发现系统启动了32个map任务
hive中的bucket table的更多相关文章
- 当在hive中show table …
当在hive中show table 时如果报以下错时 FAILED: Error in metadata: javax.jdo.JDODataStoreException: Error(s) were ...
- hive错误排查一:hive中执行 drop table命令卡住,删除表不成功
起因 公司用的AWS EMR上的hive,突然不能删除表了. 经过 分析来看,估计是元数据那块出了问题.从元数据入手,元数据存在mysql的hive数据库中 直接使用hive配置文件hive-site ...
- Hive中的数据库(Database)和表(Table)
在前面的文章中,介绍了可以把Hive当成一个"数据库",它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table). 本文介绍一下Hive中的数据库( ...
- hive中的null
在处理流水增量表的时候,出现了一个判定的失误. select a.a1,a.a2 from ( select a.a1 ,,) as diff ,a.a2 from a lefter join b o ...
- hive中简单介绍分区表(partition table)——动态分区(dynamic partition)、静态分区(static partition)
一.基本概念 hive中分区表分为:范围分区.列表分区.hash分区.混合分区等. 分区列:分区列不是表中的一个实际的字段,而是一个或者多个伪列.翻译一下是:“在表的数据文件中实际上并不保存分区列的信 ...
- Hive学习笔记——Hive中的分桶
对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记 ...
- hive中使用rcfile
(1)建student & student1 表:(hive 托管)create table student(id INT, age INT, name STRING)partitioned ...
- HIVE中join、semi join、outer join
补充说明 left outer join where is not null与left semi join的联系与区别:两者均可实现exists in操作,不同的是,前者允许右表的字段在select或 ...
- Hive中的一些点
hive严格模式 Hive中Order by和Sort by的区别是什么? hive中order by,sort by, distribute by, cluster by作用以及用法 Hadoop ...
随机推荐
- Python全栈-magedu-2018-笔记12
第三章 - Python 内置数据结构 字典dict key-value键值对的数据的集合 可变的.无序的.key不重复 字典dict定义 初始化 d = dict() 或者 d = {} dict( ...
- BZOJ - 2741 分块维护最大连续异或和
题意:给定\(a[l...r]\),多次询问区间\([l,r]\)中的最大连续异或和\(a_i⊕a_{i+1}⊕...⊕a_{j},l≤i≤j≤r\) 一眼过去认为是不可做的,但题目给出\(n=1.2 ...
- overload_protect_config.txt
overload_protection_switch=Y reject_uri_list= reject_request_percent=50 period_time=10 period_max_fa ...
- Tomcat 9内存溢出:"http-apr-8080-Acceptor-0" java.lang.OutOfMemoryError: Direct buffer memory
Tomcat开启了APR模式,而APR模式会使用堆外内存,关于堆内存可从如下链接了解一下:http://blog.csdn.net/zhouhl_cn/article/details/6573213. ...
- CSAPP阅读笔记-存储器层次结构-第六章-P400-P462
6.1 存储技术 1.随机访问存储器(RAM),是易失性存储器,掉电存储信息会丢失,与之相对的是非易失性存储器(ROM),它掉电后存储信息不丢失,但前者访问速度较快,但容量有限,通常只有几百或几千兆字 ...
- (转)Systemd 入门教程:命令篇
Systemd 入门教程:命令篇 原文:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html Systemd 入门 ...
- C# 实现IP视频监控(摄像头)画面推送(简单的不能再简单的DEMO)
最近继续在家休息,在完成上一个Python抓取某音乐网站爬虫后,琢磨着实现一个基于HTTP推送的 IP视频监控,比如外出的时候,在家里 开启一个监控端(摄像头+服务端),可以看到实时画面,如果再加上自 ...
- 阿里云CentOS环境下tomcat启动超级慢的解决方案
1 为什么会出现这个问题 Tomcat在本地服务器跑,一切都正常,但部署到阿里云上,发现启动巨慢. 经过在网上搜索,找到了原因: Tomcat 7/8都使用org.apache.catalina.ut ...
- git学习笔记6
打标签 git tag -m "Say bye-bye to all previous practice." old_practice //引号里是注释 本地删除不是真的删除,对暂 ...
- 1.8 js基础(常用方法小结)
1.获取随机数 var rdm=function(n,m){ return parseInt(n+Math.random()*(m-n)); } 2.位数不够补0 function toDou(inu ...