![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
文章平均质量分 72
小神left
这个作者很懒,什么都没留下…
展开
-
hive使用经验
优化时,把hive sql当做map reduce程序来读,会有意想不到的惊喜。理解hadoop的核心能力,是hive优化的根本。这是这一年来,项目组所有成员宝贵的经验总结。 长期观察hadoop处理数据的过程,有几个显著的特征:1.不怕数据多,就怕数据倾斜。2.对jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,没半小时转载 2013-02-21 13:49:30 · 438 阅读 · 0 评论 -
hive数据类型
列类型Hive支持的数据类型如下:原生类型:TINYINTSMALLINTINTBIGINTBOOLEANFLOATDOUBLESTRINGBINARY (Hive 0.8.0以上才可用)TIMESTAMP (Hive 0.8.0以上才可用)复合类型:arrays: ARRAYmaps: MAPstructs: STRUCTunion: UNIONTYPE时间戳转载 2013-06-04 13:53:26 · 2221 阅读 · 0 评论 -
hive bucket
hive中table可以拆分成partition,table和partition可以通过‘CLUSTERED BY ’进一步分bucket,bucket中的数据可以通过‘SORT BY’排序。bucket主要作用:1. 数据sampling2. 提升某些查询操作效率,例如mapside join需要特别注意的是:clustered by和sorted by不会影响数据的导入,这意味转载 2013-07-09 13:41:57 · 675 阅读 · 0 评论 -
Hive性能调校
本报告主要就如何提高Hive执行的总体性能进行了调研,下面以分条的形式列举出来。 1. 设置hive.map.aggr=true,提高HiveQL聚合的执行性能。这个设置可以将顶层的聚合操作放在Map阶段执行,从而减轻清洗阶段数据传输和Reduce阶段的执行时间,提升总体性能。 缺点:该设置会消耗更多的内存。 注:顶层的聚合操作(top-level aggregation oper转载 2013-06-26 15:01:08 · 1113 阅读 · 0 评论 -
hive中的udf时间函数用法
1 from_unixtime函数 用法为将时间戳转换为时间格式语法: from_unixtime(bigint unixtime[, string format]) 返回值为string例如 hive>select from_unixtime(1326988805,'yyyyMMddHH') from test;如果为字段转换的话,则为 select from_unix转载 2013-06-27 09:21:50 · 889 阅读 · 0 评论 -
hive 不等值
1)用MAPJOIN解决:1: 有一个极小的表2: 需要做不等值join操作(a.x 这种操作如果直接使用join的话语法不支持不等于操作,hive语法解析会直接抛出错误如果把不等于写到where里会造成笛卡尔积,数据异常增大,速度会很慢。甚至会任务无法跑成功~根据mapjoin的计算原理,MAPJION会把小表全部读入内存中,在map阶段直接拿另外一个表的数据和内存中表数转载 2013-07-03 16:35:51 · 1685 阅读 · 0 评论 -
Hadoop FS Shell命令
FS Shell调用文件系统(FS)Shell命令应使用bin/hadoop fs 的形式。 所有的的FSshell命令使用URI路径作为参数。URI格式是scheme://authority/path 。对HDFS文件系统,scheme是hdfs ,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。转载 2013-07-31 10:16:19 · 449 阅读 · 0 评论 -
Hive基本命令整理
创建表:hive> CREATE TABLE pokes (foo INT, barSTRING); Creates a table called pokes with two columns, the first being aninteger and the other a string创建一个新表,结构与其他一样hive> create table new_tab转载 2013-08-20 10:03:32 · 651 阅读 · 0 评论 -
hive修改 表/分区语句
添加分区ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; //示例ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (dt='20130101') LOCATION '/user/hadoop/warehouse/table_nam转载 2013-08-14 09:47:34 · 864 阅读 · 0 评论 -
Hive命令行参数
$HIVE_HOME/bin/hive是一个shell工具,它可以用来运行于交互或批处理方式配置单元查询。语法:Usage: hive [-hiveconf x=y]*[]* [|] [-S]-i: Initialization Sql fromfile (executed automatically and silently before any othercommands)-e转载 2013-06-25 17:17:58 · 2014 阅读 · 0 评论 -
HIVE 中内连接(JOIN ON)与LEFT SEMI JOIN查询结果不一致的分析
由于HIVE中都是等值连接,在JOIN使用的时候,有两种写法在理论上是可以达到相同的效果的,但是由于实际情况的不一样,子表中数据的差异导致结果也不太一样。 写法一:Java代码 select a.bucket_id, a.search_type, a.level1, a.n转载 2013-10-15 11:18:07 · 1059 阅读 · 0 评论 -
hive join 大全
hive(0.9.0):1.支持equality joins, outer joins, and left semi joins2.只支持等值条件3.支持多表join原理hive执行引擎会将HQL“翻译”成为map-reduce任务,如果多张表使用同一列做join则将被翻译成一个reduce,否则将被翻译成多个map-reduce任务。eg:SELECT a.val转载 2013-10-18 15:32:01 · 723 阅读 · 0 评论 -
hive中分组取前N个值的实现
背景假设有一个学生各门课的成绩的表单,应用hive取出每科成绩前100名的学生成绩。这个就是典型在分组取Top N的需求。 解决思路对于取出每科成绩前100名的学生成绩,针对学生成绩表,根据学科,成绩做order by排序,然后对排序后的成绩,执行自定义函数row_number(),必须带一个或者多个列参数,如ROW_NUMBER(col1, ....),它的作用是按指定的列进转载 2013-06-04 14:15:21 · 1478 阅读 · 0 评论 -
hive queryes
SELECT … FROM Clauses[sql] view plaincopyprint?hive> SELECT name, salary FROM employees; 表别名[sql] view plaincopyprint?hive> SELECT name, salary FROM em转载 2013-05-31 15:35:38 · 948 阅读 · 0 评论 -
Hive限制
1.更新,事务,索引,不支持,是全表扫描2.创建表的字段类型和java类型是对应的。不支持日期类型,提供转换为字符串类型的函数。3.查询语句中,不支持having,可写嵌套的select来解决;group by后只能是表的定义列名,不能像mysql那样可以为查询语句为逻辑处理结果声明的别名,但可为逻辑处理过程语句4.内置函数查看命令(show functions;desc func转载 2013-04-01 16:21:24 · 582 阅读 · 0 评论 -
hive 基本语法
DDL Operations 创建表 hive> CREATE TABLE pokes (foo INT, bar STRING); 创建表并创建索引字段ds hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING); 显示所有表 hive> SHOW TABLES; 按正条件转载 2013-04-01 16:16:02 · 1673 阅读 · 0 评论 -
hadoop作业调优参数整理及原理
原文地址:http://www.tbdata.org/archives/14701 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能转载 2013-04-03 10:50:34 · 493 阅读 · 0 评论 -
hive 备忘
关于数字类型支持的位数类型 支持数字位数tinyint 3位数字smallint 5位数字int 10位数字bigint 19位数字join on & left semi join:发现是由于子表中存在重复的数据,当使用JOIN ON的时候,A,B表会关联出两条记录,应为ON上的条件符合;而是用LEFT SEMI JOIN 当A表中的记录,在B表上产生符合条转载 2013-03-27 17:35:32 · 715 阅读 · 0 评论 -
Hive的预定义UDF函数
abs(x) - returns the absolute value of xacos(x) - returns the arc cosine of x if -1ascii(str) - returns the numeric value of the first character of strasin(x) - returns the arc sine of x i转载 2013-04-24 15:38:03 · 530 阅读 · 0 评论 -
HIVE 数据倾斜调优总结
在做Shuffle阶段的优化过程中,遇 到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些 Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段 的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据转载 2013-05-17 10:18:40 · 594 阅读 · 0 评论 -
MapReduce:详解Shuffle(copy,sort,merge)过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里转载 2013-05-17 14:52:39 · 424 阅读 · 0 评论 -
Map-Reduce入门
1、Map-Reduce的逻辑过程假设我们需要处理一批有关天气的数据,其格式如下:按照ASCII码存储,每行一条记录每一行字符从0开始计数,第15个到第18个字符为年第25个到第29个字符为温度,其中第25位是符号+/-0067011990999991950051507+0000+0043011990999991950051512+0022+00430119转载 2013-05-20 15:07:24 · 383 阅读 · 0 评论 -
hive函数参考手册
原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF1.内置运算符1.1关系运算符运算符类型说明A = B所有原始类型如果A与B相等,返回TRUE,否则返回FALSEA == B无失败,因为无效的语法。 SQL使用”=”,不使用”==”。转载 2013-05-22 15:19:56 · 633 阅读 · 0 评论 -
map和reduce 个数的设定 (Hive优化)经典
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过setdfs.block.size;命令查看到,该参数不能自定义修改);2. 举例: a) 假设input目录下有1转载 2013-04-01 16:32:05 · 774 阅读 · 0 评论 -
hive估算reduce
hive估算reduce的逻辑如下:(1) 判断Job是否需要reduce操作,如不需要reduce操作,reduce数设置为0,跳出;如需要reduce操作,执行步骤(2);(2) 判断Job是否在编译时确定reduce数为1,如编译确定为1,reduce数设置为1,跳出;如需要reduce操作,执行步骤(3);(3) 判断Job是否手动设置reduce数,如转载 2013-05-28 10:19:30 · 746 阅读 · 0 评论 -
hive 中 Order by, Sort by ,Dristribute by,Cluster By 的作用和用法
order byorder by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。set hive.mapred.mode=nonstrict; (default value / 默认值)set hive.mapred.mode=strict; order by 和数据库中的转载 2013-11-06 10:52:21 · 624 阅读 · 0 评论