
Hive
架构师思考实践
大数据、实时计算、离线计算
展开
-
Hive--对空值和NULL的处理
问题描述Hive中默认将NULL存为\N,NULL类型的字符串如何检索?创建一个测试表及准备测试数据,SQL如下:create table test_null (id int, age string) ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LINES TERMINATED BY '\n'STORED AS TEXTFILE;测试数据如下:1,232,24c3,32d4,305,NULL6,\N将数..转载 2020-10-04 16:17:49 · 2924 阅读 · 0 评论 -
一次hive reduce oom 处理:Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTas
问题: hive job失败,现象reduce失败,起了新的reduc而后还是失败,最终job失败错误:2017-06-07 16:43:20 INFO Examining task ID: task_*** (and more) from job job_***2017-06-07 16:43:21 INFO FAILED: Execution Error, return code原创 2017-06-11 11:04:22 · 16561 阅读 · 0 评论 -
hive优化总结
1、列裁剪、分区裁剪只查询需要的字段和分区,不使用select*2、join优化小表放左边3、空值处理(1)NULL和数字相加的问题,为避免这种情况先nvl 或者coalesce 先处理(2)NULL 值关联时,可排除掉不参与关联,也可随机分散开避免倾斜4. 排序优化不需要全局排序时,可用distribute by sort by 而不用原创 2017-06-11 11:48:22 · 1028 阅读 · 0 评论 -
LLAP
全称: Live Long and Process (LLAP)在hive2.0中添加了LLAP功能(HIVE-7926),文档jira 是HIVE-9850。配置LLAP可以参考 Configuration Properties. 中的llap部分概览在最近几年,hive的速度有了显著的提升,这要感谢社区贡献的多种特征和提升其中包括Tez和CBO,下边是我们要把h翻译 2016-08-28 09:58:05 · 7422 阅读 · 3 评论 -
hive源码分析--row_number源码分析
前言row_nubmer使用说明: row_number接收到的数据是已经分区排序的数据, row_number() OVER (PARTITION BY c ORDER BY d)description = @Description( name = "row_number", value = "_FUNC_() - The ROW_NUMBER function as原创 2016-08-13 19:46:54 · 4121 阅读 · 0 评论 -
hive源码分析--导入到eclipse
先去hive官网下载源代码,我现在阅读hive2.1.0官网: http://mirrors.cnnic.cn/apache/hive/通过import maven工程后需要修改两个地方:1、修改 .project hive-exec org.eclipse.jdt.core.javabuilder org.ecli原创 2016-08-13 19:30:08 · 1323 阅读 · 1 评论 -
hive2.0 存储过程 hplsql
在hive2.0中集成了hplsql,可用用hplsql命令执行存储过程。hplsql是一个开源项目,地址:http://www.hplsql.org/home,现在集成到hive2.0了。使用方式:hplsql -f script.sql hplsql -e "sql" hplsql -e "PRINT a || ', ' || b" -d a=Hello -d b=worl原创 2016-08-28 10:28:14 · 8705 阅读 · 0 评论 -
hive union all 使用
功能:将两个表中的 相同的字段拼接到一起特点:union all不去重,数据会重复测试:create external table IF NOT EXISTS temp_uniontest_ta(a1 string,a2 string)partitioned by (dt string)row format delimited fields terminated by '...原创 2014-10-13 20:18:02 · 27607 阅读 · 0 评论 -
hive join 优化 --小表join大表
1、小、大表 join在小表和大表进行join时,将小表放在前边,效率会高,hive会将小表进行缓存。2、mapjoin使用mapjoin将小表放入内存,在map端和大表逐一匹配,从而省去reduce。例子:select /*+MAPJOIN(b)*/ a.a1,a.a2,b.b2 from tablea a JOIN tableb b ON a.a1=b.b1在0.7版本原创 2014-10-25 21:49:25 · 25191 阅读 · 0 评论 -
hive 各种 join (left outer join、join、full outer join)
一、概念1、左连接left outer join以左边表为准,逐条去右边表找相同字段,如果有多条会依次列出。2、连接join找出左右相同同的记录。3、全连接full outer join包括两个表的join结果,左边在右边中没找到的结果(NULL),右边在左边没找到的结果。会对结果去重,返回并集。二、实验1、准备数据create externa...原创 2014-08-18 20:17:03 · 69180 阅读 · 0 评论 -
hive 常用命令
1、查看表结构信息 desc formatted table_name; desc table_name;查看关联文件: desc extended f_tblog_online_mds;2、查看分区show partitions table_name;3、根据分区查询,提高速度select table_coulm from table_name whe原创 2014-06-25 21:57:49 · 1026 阅读 · 0 评论 -
【hive实战】使用hive分析 hadoop 日志
实战2——Hadoop的日志分析1). 日志格式分析首先分析 Hadoop 的日志格式, 日志是一行一条, 日志格式可以依次描述为:日期、时间、级别、相关类和提示信息。如下所示: 2013-03-06 15:23:48,132 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /****转载 2014-04-13 21:45:55 · 1516 阅读 · 0 评论 -
Hive shell 常用命令
连接 hive shell直接输入 hive1、显示表hive> show tables;OKtestTime taken: 0.17 seconds, Fetched: 1 row(s)2、创建表hive> create table test(key string);OKTime taken: 0.265 seconds3、创建分区表:原创 2014-04-12 19:07:17 · 2017 阅读 · 0 评论 -
hive导入 nginx 或 apache 日志
1、创建表CREATE TABLE nginxlog ( ipaddress STRING, identity STRING, user STRING, time STRING, request STRING, protocol STRING, status STRING, size STRING, referer STRING, agent STRING) ROW FO原创 2014-04-15 12:28:50 · 1720 阅读 · 0 评论 -
hive异常 show tables 无法使用 : Unable to instantiate rg.apache.hadoop.hive.metastore.HiveMetaStoreClient
异常:hive> show tables;FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate rg.apache.hadoop.hive.metastore.HiveMetaStoreClient FAILED: Execution Error, return code 1 from原创 2014-04-15 12:30:13 · 2249 阅读 · 0 评论