
hive
rolin-刘瑞
技术GEEK
展开
-
hive mapjoin使用
今天遇到一个hive的问题,如下hive sql:select f.a,f.b from A t join B f on ( f.a=t.a and f.ftime=20110802)该语句中B表有30亿行记录,A表只有100行记录,而且B表中数据倾斜特别严重,有一个key上有15亿行记录,在运行过程中特别的慢,而且在reduece的过程中遇有内存不够而报错。为转载 2014-04-06 21:11:59 · 6585 阅读 · 0 评论 -
hive中order by,sort by, distribute by, cluster by作用以及用法
1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。 这里跟传统的sql转载 2015-06-03 18:15:51 · 6537 阅读 · 0 评论 -
hive grouping sets 和 cube 用法
grouping sets 和cube基本知识。基础知识可参考 http://blog.youkuaiyun.com/mashroomxl/article/details/22578471grouping sets 适用于多维度统计,可以代替之前lateral view explode 方式cube 相当于grouping sets 所有条件组合。平时跑临时需求看数据,也可以用cube。比如看某款游戏andro原创 2015-06-29 18:09:26 · 12883 阅读 · 0 评论 -
Hive JSON数据处理的一点探索
背景 JSON是一种轻量级的数据格式,结构灵活,支持嵌套,非常易于人的阅读和编写,而且主流的编程语言都提供相应的框架或类库支持与JSON数据的交互,因此大量的系统使用JSON作为日志存储格式。 使用Hive分析数据(均指文本)之前,首先需要为待分析的数据建立一张数据表,然后才可以使用Hive SQL分析这张数据表的数据。这就涉及到我们如何把一行文本数据映射为数据表的列,常规的方式有转载 2016-03-16 19:03:14 · 7933 阅读 · 0 评论 -
hive 分组+组内排序 , 求topN
================================新的实例 更好理解数据:四列的表,第一列id,第二列渠道,第三列系统,第四类访问日期0: jdbc:hive2://hadoop009.dx.momo.com:2181,ha> select * from dc_dev.tmp_row_num;tmp_row_num.muid tmp_row_num.channeltm...原创 2015-10-22 18:40:42 · 31645 阅读 · 6 评论 -
基于haproxy 实现spark hiveserver2 ha
1.hiveserver安装如果是hiveserver是基于hive的 需要拷贝hive-site.xml文件到spark/conf目录下 hs启动命令: /home/dc/datacenter/soft/spark/spark-1.6.1-bin-2.6.0/sbin/start-thriftserver.sh --deploy-mode client --hiveconf...原创 2016-08-12 23:14:58 · 9798 阅读 · 0 评论 -
elasticsearch 与 hive集成
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。hive是一个基于hdfs的数据仓库,方便使用者可以通过一种类sql(HiveQL)的语言对hdfs上面的打数据进行访问,通过elasticsearch与hive的结合来实现对hdfs上面的数据实时访问的效果。转载 2016-08-25 11:54:06 · 7821 阅读 · 0 评论 -
hive行专列,列转行
1. 假设我们在hive中有两张表,其中一张表是存用户基本信息,另一张表是存用户的地址信息等,表数据假设如下:user_basic_info:idname1a2b3c4duser_address;nameaddressaadd1aa转载 2016-11-10 11:55:56 · 8254 阅读 · 0 评论 -
hive复杂格式array,map,struct使用
目前 hive 支持的复合数据类型有以下几种:map(key1, value1, key2, value2, ...) Creates a map with the given key/value pairsstruct (val1, val2, val3, ...) Creates a struct with the given field values. Struct fie转载 2017-06-06 18:02:14 · 82255 阅读 · 0 评论 -
hive on tez详细配置和运行测试
hive on tez详细配置和运行测试标签(空格分隔): tez Hadoop Hive hdfs yarn环境: hadoop-2.5.2 hive-0.14 tez-0.5.3 hive on tez 的方式有两种安装配置方式:在hadoop中配置在hive中配置比较: 第二种方式:当已经有了稳定的hadoop集群,而不想动这个集群时,可以转载 2017-08-16 22:07:03 · 10075 阅读 · 1 评论 -
hive优化 全局排序 join 笛卡尔积 exist in reduce数量 合并mapreduce
使用Hive可以高效而又快速地编写复杂的MapReduce查询逻辑。但是某些情况下,因为不熟悉数据特性,或没有遵循hive的优化约定,Hive计算任务会变得非常低效,甚至无法得到结果。一个”好”的Hive程序仍然需要对Hive运行机制有深入的了解。有一些大家比较熟悉的优化约定包括:Join中需要将大表写在靠右的位置;尽量使用UDF而不是transfrom……诸如此类。下面讨论5个性能和逻辑相关转载 2017-08-19 17:00:00 · 12635 阅读 · 0 评论 -
hive desc table乱码问题
环境 cdh5.8.3 + Hive 1.1.0。 hive 元数据库用的是MySQL创建表后,用desc 在hive中查看表信息,注释显示乱码。解决方案如下:1 进入mysql ,执行show create database hive 11查看hive 数据库当前编码,如果是utf8 则执行下面sqlalter database hive default chara转载 2017-08-15 21:09:27 · 7461 阅读 · 0 评论 -
hive修改表和字段注释
修改表:ALTER TABLE table_name SET TBLPROPERTIES('COMMENT' = '这是表注释!');修改字段:ALTER TABLE table_name CHANGE COLUMN muid muid_new STRING COMMENT '这里是列注释!';原创 2017-08-31 17:24:12 · 23991 阅读 · 1 评论 -
tez on hive 安装部属
编译tez: 目前最新的Tez版本是0.8,但还不是稳定版,所以大家还是先下载0.7用吧 下载地址: wget http://archive.apache.org/dist/tez/0.7.0/apache-tez-0.7.0-src.tar.gz 由于编译Tez-UI模块,需要使用nodejs,所以建议还是 提前安装nodejs 和npm工具,安装方式,可转载 2017-12-18 14:36:44 · 9413 阅读 · 0 评论 -
Hive SQL的编译过程
Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有转载 2018-04-17 17:46:43 · 6403 阅读 · 0 评论 -
hive谓词下推的失效与生效
谓词下推的生效:[sql] view plain copyselect * from czw_test2 a join (select * from czw_test1 where pt >='20121101' and pt <='20121102') b on (a.search_id = b.search_id) select count(1) from czw_t...转载 2018-05-22 19:29:34 · 7394 阅读 · 0 评论 -
Hive分析窗口函数系列文章
分析窗口函数应用场景:(1)用于分区排序(2)动态Group By(3)Top N(4)累计计算(5)层次查询Hive分析窗口函数(一) SUM,AVG,MIN,MAXHive中提供了越来越多的分析函数,用于完成负责的统计分析。抽时间将所有的分析窗口函数理一遍,将陆续发布。今天先看几个基础的,SUM、AVG、MIN、MAX。用于实现分组内所有和连续累积的统计。数据准备:[sql] view pla...转载 2018-06-14 10:48:56 · 6283 阅读 · 0 评论 -
HIVE时间操作UDF
日期函数UNIX时间戳转日期函数: from_unixtime语法: from_unixtime(bigint unixtime[, string format])返回值: string说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive> select from_unixtime(13233...转载 2019-01-16 20:55:26 · 6771 阅读 · 0 评论 -
apache hive 0.14 beeline 使用注意事项
不要使用local关键字 load data local inpath 是不行beeline & 方式存在问题,是beeline得bug ,使用nohup sh xxx.sh & 也会出错beeline -f 执行sql文件,如果报“Error: Error while compiling statement: FAILED: ParseException line 1:814 c原创 2015-04-22 15:15:48 · 9329 阅读 · 0 评论 -
hive FAILED: ParseException line 1:814 cannot recognize input near ‘;’ <EOF>’
beeline -f 执行sql文件,如果报“Error: Error while compiling statement: FAILED: ParseException line 1:814 cannot recognize input near ‘;’ ’ in expression specification (state=42000,code=40000)”错误。可能是因为“;”后面有空格原创 2015-04-22 15:13:43 · 83206 阅读 · 3 评论 -
hive 优化的原则
1.提交尽量少的sql2.对数据etl,减少输入数据量3.减少关联操作4.避免单点瓶颈的sql或者数据集原创 2015-04-03 14:10:39 · 6606 阅读 · 0 评论 -
hive中简单介绍分区表
hive中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash分区、混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说在表的数据文件中实际上并不保存分区列的信息与数据。下面的语句创建了一个简单的分区表:create table partition_test(member_id string,name string)partition转载 2014-04-06 18:41:17 · 6628 阅读 · 0 评论 -
hiveserver添加到linux服务里,开机启动
#!/bin/sh#chkconfig: 2345 80 05 #descrīption: service case $1 instart);;stop);;*);;esac*****************首先拷贝一个上面的模板备用,下面解释一下#!/bin/sh 是说明该脚本调用的shell的类原创 2014-05-20 22:36:11 · 7134 阅读 · 0 评论 -
hive的三种安装方式
Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储。远端存储比较适合生产环境。Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore。 一、本地derby这种方式是最简单的存储方式,只需要在hive-site.xml做如下配置便可[html] view plaincopyprint?转载 2014-06-26 16:47:49 · 7219 阅读 · 0 评论 -
hive的日志分类和存储位置
日志记录了程序运行的过程,是一种查找问题的利器。Hive中的日志分为两种1. 系统日志,记录了hive的运行情况,错误状况。2. Job 日志,记录了Hive 中job的执行的历史过程。系统日志存储在什么地方呢 ?在hive/conf/ hive-log4j.properties 文件中记录了Hive日志的存储情况,默认的存储情况:hive.root.log转载 2014-06-26 15:02:46 · 7397 阅读 · 0 评论 -
hive使用mysql做元数据库,以及一些问题处理
Hive集成Mysql作为元数据默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下几步骤:第一步:安装MySQL服务器端和MySQL客户端,并启动My原创 2014-06-26 15:07:23 · 7455 阅读 · 0 评论 -
hive配置远程mysql做metadate数据库
在hive-site.xml中加入: hive.metastore.local true这是本地 false这是远程 controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM原创 2014-06-26 15:19:25 · 6720 阅读 · 0 评论 -
hive使用mysql作为元数据库时的编码问题
hive的Specified key was too long; max key length is 767 bytes问题解决解决一: FAILED: Error in metadata: javax.jdo.JDODataStoreException: Error(s) were found while auto-creatingalidating the datastore for cl原创 2014-07-30 21:44:49 · 11142 阅读 · 0 评论 -
order by,sort by,distribute by,cluster by详解
order byorder by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。set hive.mapred.mode=nonstrict; (default value / 默认值)set hive.mapred.mode=strict; order b转载 2014-08-21 11:27:49 · 7212 阅读 · 0 评论 -
hive中对lzo压缩文件建立索引实现并行处理
1,确保创建索引$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/lib/hadoop-lzo-0.4.10.jar com.hadoop.compression.lzo.DistributedLzoIndexer /user/hive/warehouse/flog2 如果在hive中新建外部表的语句为CREATE EXTERNAL转载 2014-08-15 17:20:18 · 8248 阅读 · 0 评论 -
启动hive metastore命令
进入hive_home目录下输入命令:启动metastore:bin/hive --service metastore后台启动:bin/hive --service metastore 2>&1 >> /var/log.log &后台启动,关闭shell连接依然存在:nohup bin/hive --service metastore 2>&1 >> /原创 2014-11-28 13:56:49 · 35807 阅读 · 2 评论 -
解决hive查询中文乱码问题
在通过终端查询hive时,终端结果显示为乱码。这种情况出现的原因是:1.shhive在将数据写入hdfs时候,会把数据格式转换为utf-8格式的。如果你导入hive表的源数据不是utf-8格式的,hive在进行写hdfs转换格式的时候会出现乱码,所有你查询出来的中文也是乱码。解决办法:把源文件,用editplus等编辑软件打开,将文件转换为urf-8格式,保存。再重新导入到hive表中,问原创 2014-11-05 14:17:10 · 23010 阅读 · 0 评论 -
hive函数大全
1.内置运算符1.1关系运算符运算符类型说明A = B所有原始类型如果A与B相等,返回TRUE,否则返回FALSEA == B无失败,因为无效的语法。 SQL使用”=”,不使用”==”。A 所有原始类型如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。转载 2014-11-05 16:36:40 · 6550 阅读 · 0 评论 -
hive 0.11升级hive 0.13
注意事项: 升级之前要核实当前的hadoop版本是否和升级之后的hive版本兼容。具体的升级步骤如下:1.关闭当前hive正在执行的进程,service hive-server等关闭掉之前开启的hive连接服务,要是没开就不用关;打开的客户端也要关掉。2.备份mysql数据库hive库mysqldump -uhadoop -h 192.168.10.110转载 2014-11-28 11:17:52 · 6529 阅读 · 0 评论 -
hive数据倾斜原因和解决方法
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的转载 2015-01-20 17:26:13 · 31447 阅读 · 3 评论 -
hive get_json_object udf
+-------------------------------------------------------------------+ json +-------------------------------------------------------------------+ {"store": {"fruit"原创 2015-02-10 15:16:46 · 16952 阅读 · 1 评论 -
hive 行专列 列转行
1. 假设我们在hive中有两张表,其中一张表是存用户基本信息,另一张表是存用户的地址信息等,表数据假设如下:user_basic_info:idname1a2b3c4duser_address;nameaddressaadd1原创 2015-03-26 23:49:51 · 7993 阅读 · 0 评论 -
hive 不以科学计数法输出
1.原始的sql:sum(online_time) num输出:小R 2.6014523E7中R 3881104大R 3569632.转换后的sql:cast(sum(online_time) as bigint) num输出:小R 26014523中R 3881104大R 356963原创 2015-03-30 11:15:48 · 22421 阅读 · 0 评论 -
伪分布式系列 - 第二篇 - hive-2.3.5环境搭建on hadoop3.2.0
目录基础以来环境搭建hive搭建hive测试基础以来环境搭建hive搭建hive测试原创 2019-07-25 00:08:14 · 6289 阅读 · 0 评论