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 ...
随机推荐
- jsoup 抓取省市区
package com.xazhxc.htjcom.back.controller.base; import cn.hutool.core.util.StrUtil; import com.aliba ...
- 用Javac编译Java文件时出现“编码 GBK 的不可映射字符“的error
前提:JDK版本 >= 1.6会出现编译报错, 1.6前只会是警告 以下是javac的document: 遇到这种情况的原因是: 文件编码格式与编译器编译所选的encoding不同,有非英文字符 ...
- 基础篇:6.1)形位公差-要素 Feature
本章目的:理解形位公差研究的对象-要素,即点.线.面. 1.定义 2.类型 2.1 按存在的状态分 2.2 按结构特征分 2.3 按所处的地位分 2.4 按结构性能分 2.5 按与尺寸关系分
- Rx
more detailed in WIKI's document SDP :session description protocal book AAA AA-Answer 鉴权授权应答AAR AA-R ...
- genkins的报错排查
[ERROR] /root/.jenkins/workspace/car/src/main/java/com/zhengxin/tool/code/Code.java:[20,64] diamond ...
- django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066
1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate(*args,**kwargs) : 通过对QuerySet进行计算 ,返回一个聚合值的字典. ...
- 文件IO(存取.txt文件)
//存文件方法 public void Save_File_Info(string Save_Path) { //根据路径,创建文件和数据流 FileStream FS = new FileStrea ...
- FastDFS安装、配置、部署(一)-安装和部署 (转)
FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 Fast ...
- Js正则Replace方法
JS正则的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\s+)|(\s+$)" ...
- Spark standalone简介与运行wordcount(master、slave1和slave2)
前期博客 Spark standalone模式的安装(spark-1.6.1-bin-hadoop2.6.tgz)(master.slave1和slave2) Spark运行模式概述 1. Stan ...