大数据:Hive
Hive Blog
HaiwiSong
一切只为让自己变得更优秀!
展开
-
Python执行hive sql
该python脚本是用于执行hive脚本的,需要设置hive的可执行环境变量,其实质转化为shell下命令 hive -e ‘sql语句’ 的方式执行,然后把结果重定向到控制台显示。注:由于该脚本是直接调用shell中的hive命令,所以需要在安装hive的服务器上执行。原创 2016-08-19 15:18:57 · 9772 阅读 · 0 评论 -
impala中的覆盖更新机制
在mysql上套上impala中间件后,能够实现mysql的覆盖更新功能,原理如下:通过jddl往impala中load数据时候,impala根据mysql表的主键,如果已存在,则update;如果不存在,则insert。其中关键点是mysql主键和load语句中需要填上replace参数。 例如如下load语句{"load": "load data local infile 'ji...原创 2016-11-16 20:15:46 · 4123 阅读 · 0 评论 -
年周(年+周)的算法
在很多场景下需要由日期获得该日期对应的年周(例如:2016-11-22对应的年周为201647),在iso标准中,当在跨年计算年周时候, Calendar中calendar.get(Calendar.WEEK_OF_YEAR)的算法:跨年周(即1月1日所处的那周)的归属原则为跨年周的周四处于哪年,则该跨年周属于哪年。例如,2016-01-01的那周的周四(2015-12-31)在2015年,那...原创 2016-11-22 21:11:39 · 3773 阅读 · 0 评论 -
Hive中UDAF函数的Demo
场景:一个DEMO程序,统计分组的count、sum、dtl,并把结果以字符串拼接(count-sum-dtl)的形式输出,主要用到了结构体。 代码: UDAF函数package com.jd.pop.qc.udf;import org.apache.commons.lang.ArrayUtils;import org.apache.hadoop.hive.ql.metadata....原创 2017-04-07 09:27:48 · 1978 阅读 · 0 评论 -
hive中UDF开发:解析json对象和解析json数组对象
查阅hive的UDF函数指南可知,虽然udf中的get_json_object和json_tuple能对json解析,但有时候没法实现复杂业务扩展,同时也没有UDF对JSON数组的解析,因此,很多时候需要自己实现解析JSON的UDF,写UDF中如果使用大量开源库(例如fastjson或gson)则会直接导致生成的jar依赖较大,并不是最理想的,本博文查阅了hive源码,发现hive内部用JSO...原创 2017-04-20 09:57:01 · 9758 阅读 · 0 评论 -
一文弄懂Hive基本架构和原理
文章目录概述Hive架构Hive数据模型Hive SQL的编译Hive执行计划Hive Sql的MapReduce实现原理Join的实现原理Group By的实现原理Distinct的实现原理Hive文件压缩和文件存储**Hive建表指定文件格式**Hive建表指定压缩Hive动态设置压缩Hive中间数据压缩Hive最终数据压缩Hive Map和Reduce数量计算Map数量Reduce数量数据倾...原创 2019-06-07 19:28:39 · 14939 阅读 · 2 评论 -
Hive常见调优技巧
文章目录减少数据量并行化执行开启动态分区开启JVM重用防止数据倾斜MapJoin自动判断手动设置map阶段优化reduce阶段优化方法1方法2合并小文件减少数据量第一原则先降数据量再join并行化执行set hive.exec.parallel=true;set hive.exec.parallel.thread.number=8;hive默认job是顺序进行的,一个HQL拆分成多个j...原创 2019-06-04 20:28:24 · 1616 阅读 · 0 评论