Hive相关随笔
1).Hive中Select Top N的实现
Hive中使用 Order by + Limit 可以很容易地实现Select Top N。
但是在Hive中Order by只能使用1个Reduce,如果表的数据量很大,那么Order by就会力不从心。相对的,Sort by可以启动多个Reduce,每个Reduce做局部排序。
从执行计划explain中可以看出Sort by Limit N启动了两个MR Job。第一个Job是在每个Reduce中做局部排序,然后分别取Top N。假设启动了M个reduce,第二个Job再对M个Reduce分别局部排好序的总计M * N条数据做全局排序,再取最终的Top N,从而得到想要的结果。这样就可以大大提高Select Top N的效率。
set mapred.reduce.tasks=3;
select * from tea sort by age limit 3;
2).hive中的分号字符
分号是SQL语句结束标记,在HiveQL中也是,但是在HiveQL中,对分号的识别没有那么智慧,例如:
hive> select concat(';','a');
--会报异常NoViableAltException(-1@[]),解决方案: hive> select concat('\073','a');
--分号的ASCII值是59,八进制为073.只能使用八进制,对于十六进制无效
--concat(str1,str2)作用为拼接字符串
3).Hive客户端默认配置
以下操作均可在$HIVE_HOME/bin/.hiverc文件中保存,设置为默认参数
set hive.mapred.mode=strict;
//开启strict模式,以下情况报错:(1)没有limit限制的order by语句.(2)动态分区插入 set hive.cli.print.current.db=true;
//显示当前工作的数据库 set hive.cli.print.header=true;
//显示列名 set mapred.reduce.tasks=3;
//设置reduce的个数 set hive.exec.reducers.bytes.per.reducer;
//多少字节开一个reducer,默认256000000 set hive.exec.dynamic.partition.mode=strict;
//该模式下必须指定一个静态分区
Hive相关随笔的更多相关文章
- Hive相关集锦
Hive介绍 http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.htmlHive的数据类型和数据模型 http://www.c ...
- 3. Hive相关知识点
以下是阅读<Hive编程指南>后整理的一些零散知识点: 1. 有时候用户需要频繁执行一些命令,例如设置系统属性,或增加对于Hadoop的分布式内存,加入自定的Hive扩展的Jave包(JA ...
- Hive相关知识点
---恢复内容开始--- 转载:Hive 性能优化 介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业运行效率相 ...
- hive相关
HIVE JOIN:http://blog.csdn.net/yfkiss/article/details/8073608 HIVE资料: 一条记录map阶段输出KV,shuffle sort,输出K ...
- Spark、Hadoop、Hive相关文章
1.Spark On Yarn(HDFS HA)详细配置过程 2.Hive安装与配置详解
- hive中行转换成列以及hive相关知识
Hive语句: Join应该把大表放到最后 左连接时,左表中出现的JOIN字段都保留,右表没有连接上的都为空.对于带WHERE条件的JOIN语句,例如: 1 SELECT a.val, b.val F ...
- hive 相关异常
内存不够: set mapreduce.map.memory.mb=4096;set mapreduce.map.java.opts=-Xmx3280m; set mapreduce.reduce.m ...
- hive 属性随笔记录
set hive.mapred.mode=strict; //设置hive执行模式,默认为nonstrict(非严格模式),这里设置为严格模式 set hiveconf:hive.cli.print. ...
- SSM框架之AOP、动态代理、事务处理相关随笔
AOP: 原理:底层利用动态代理(两种动态代理技术都使用了) 两种实现方案: 第一种:JDK动态代理技术 实现的InvocationHandler接口,要想实现某个类的动态代理对象,必须有接口有实现类 ...
随机推荐
- hdu1568&&hdu3117 求斐波那契数前四位和后四位
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1568 题意:如标题所示,求斐波那契数前四位,不足四位直接输出答案 斐波那契数列通式: 当n<=2 ...
- devops model
1,自动部署() 2,在线监控 (可视化,智能化) 3,故障诊断 (故障识别,故障隔离) 4,快速定位 (识别环境与程序,数据等问题) 评测工具开发---- 统计条目增加大项目: BI中权限―拨测数据 ...
- bash characters
linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里 ...
- Storm-源码分析-Topology Submit-Worker
1 mk-worker 和其他的daemon一样, 都是通过defserverfn macro来创建worker (defserverfn mk-worker [conf shared-mq-cont ...
- python基础-第四篇-4.1内置函数
lambda表达式 lambda表达式是对简单函数的精简化表达 语法结构:函数名 = lambda:运算表达式 def f1(a): a = a + 1 return a ret = f1(1) pr ...
- 【opencv】ubuntu opencv imshow()报错
错误提示: ubuntu opencv imshow() 报错 windows.cpp报错 the function is not implemented If you are on Ubuntu o ...
- 兼容获取scrollTop和scrollLeft(被滚动条卷走的部分)
function scroll() { //ie9+ 标准浏览器 if (window.pageYOffset != null) { return { left: window.pageXOffset ...
- django views.py视图 获取用户请求相关信息以及请求头
请求的其他信息 用户发来请求时候,不仅发来数据,也把请求头也发过来 在views.py 怎么找请求数据? request是一个对象,这个对象封装很多信息,可以先查这个对象的类 print(type(r ...
- Python:解析properties文件
在项目中遇到解析properties的情况,而Python中正好没有解析properties文件的现成模块,于是从网上找到了这个脚本,有一些小地方修改了一下 原博客: Python读写properti ...
- 18.解决合并androidmanfest错误
这个是minsdk和tartgetsdk的版本不一致的问题