目录
Hive是什么... 1
hadoop是什么... 1
hadoop、hive两者关系... 2
hive的优缺点... 2
hive的存在意义... 2
hive常用命令... 2
一些相关命令... 2
创建表... 3
创建分区partition_table.dt. 3
加载数据到分区... 4
删除表 drop table partition_table. 4
桶表... 4
内部表与外部表:4
UDF、UDAF、UDTF:4
hive使用技巧与优化方法... 4
3.1 重点参数设置... 4
3.2 MapJoin. 4
3.3 数据倾斜问题原因查找与解决方法... 5
3.4 减少重复IO.. 5
3.5 Map/Reduce参数的优化设置... 5
FAQ.. 5
4.1 执行慢或卡死... 5
4.2 突然报异常,重跑后正常了/重跑后不正常?. 5
4.3 任务执行忽快忽慢,如之奈何... 5
4.4 数据评估一个任务合理的运行时间... 5
4.5 如何系统地完成一个hive任务的设计与实现... 5
参考资料:... 5
QA. 6
自由问答时间... 6
分布式存储系统(HDFS)
并行计算框架(Map/Reduce)
前者为Core,后者为Shell
前者为驱体,后者为形状
过度封装,易于使用,但难理其所以然,如遇异常情况经常使初学者或欠经验者卡壳。
开放出来的API不够丰富灵活,个性化优化偶尔会比较困难,必要时要写原生态的MR。
存在很多版本上的bug,有一定的不稳定性,升级成本较高。而原生态的MR要小很多。
易于构建数据仓库:承载大数据量、易扩展、接口统一、易于维护
BI等轻开发等人员的需要
降低大数据应用研发门槛
Hadoop生态圈的重要一环
SHOW TABLES; #查看所有的表
SHOW TABLES '*TMP*'; #支持模糊查询
SHOWPARTITIONS TMP_TABLE; #查看表有哪些分区
DESCRIBE TMP_TABLE; #查看表结构
CREATE TABLE tmp_table #表名
(
title string, #字段名称 字段类型
minimum_bid double,
quantity bigint,
have_invoice bigint
)COMMENT'注释:XXX' #表注释
PARTITIONED BY(pt STRING) #分区表字段(如果你文件非常之大的话,采用分区表可以快过滤出按分区字段划分的数据)
ROW FORMAT DELIMITED
FIELDSTERMINATED BY '\001' # 字段是用什么分割开的
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'; #用哪种方式存储数据
创建表
createtable partition_table(c1 string,c2 string)
partitioned by(daytime string,city string)
row formatdelimited fields terminated by '\t'
stored asTEXTFILE;
load data local inpath '/home/partition_table.dat'into table
partition_tablepartition(daytime='2013-02-01',city='bj');
桶表是对数据进行哈希取值,然后放到不同文件中存储。
创建表create table bucket_table(id string) clustered by(id) into 4buckets; 加载数据set hive.enforce.bucketing = true;
数据加载到桶表时,会对字段取hash值,然后与桶的数量取模。把数据放到对应的文件中。
T1, f1,
T2 f2
天亮教育云分享地址:http://pan.baidu.com/s/1pJJrcqJ
Csdn博客: http://blog.csdn.net/erliang20088
技术交流群:320349384