Hive进阶

简介: hive配置,命令hive查询显示列名set hive.cli.print.header=true; // 打印列名set hive.cli.print.

hive配置,命令

hive查询显示列名

set hive.cli.print.header=true; // 打印列名
set hive.cli.print.row.to.vertical=true; // 开启行转列功能, 前提必须开启打印列名功能
set hive.cli.print.row.to.vertical.num=1; // 设置每行显示的列数

hive默认分隔符 \001

hive命令行中查看当前hive环境变量 !env

hive命令行中查看当前hive及hadoop环境变量 set -v

hive分析结果导出到文件

insert overwrite local directory '/tmp/output' select * from table_name;
insert overwrite local directory '/tmp/output' row format delimited fields terminated by ',' select * from table_name

hive import

import中的这个参数不能和hive的地址一样,这个目录是临时目录,hive会先把数据加载到这个目录,然后再复制到hive表所在的目录
--target-dir /user/hive/warehouse/temp/$hive_table

hive export

sqoop导出sequencefile格式的文件时需要特殊处理(自行百度),默认需要使用textfile

Hive将一行记录拆分成多行

http://blog.csdn.net/u010814849/article/details/77532897

hive子查询

错误信息:Unsupported SubQuery Expression : Correlating expression cannot contain unqualified column references
hive子查询列名要具有确定性,需要给表加个别名
select b from tablename t1 where t1.b in (select b from t2);

Hive SQL

<>  这个符号是不等于的意思,相当于 !=

hive优化

hive优化原则

  • hive优化原则,减小map数,减少job数

hive优化参数

set hive.merge.mapfiles=true;
set hive.merge.mapredfiles=true;
set mapred.max.split.size=268435456;
set hive.merge.size.per.task=268435456;
set hive.merge.smallfiles.avgsize=134217728;

hive异常定位

  • hive创建有分区到外部表时,一定要先增加分区,然后才能查到数据,如果不手动新增分区是查不到数据的
    LTER TABLE adcall ADD IF NOT EXISTS PARTITION(day='$date', hou='$hour');

  • hive查询时需要估算下结果的大小,特别时有子查询时,会把查询结果存放到本地,防止中间结果太多硬盘满了

  • hive查询不动了,假死,首先查看NodeManager的日志,多半是NodeManager挂掉了,或者处于unhealthy state状态

  • job执行报错,可能就是nodemanager的问题,而不是resourcemanager的问题

目录
相关文章
|
SQL 存储 分布式计算
Hive学习---1、Hive入门、Hive 安装(二)
Hive学习---1、Hive入门、Hive 安装(二)
|
7月前
|
SQL JSON 算法
hive学习笔记
hive学习笔记
|
SQL 存储 分布式计算
Hive教程(01)- 初识Hive
Hive教程(01)- 初识Hive
138 0
|
SQL 分布式计算 关系型数据库
Hive教程(02)- Hive安装
Hive教程(02)- Hive安装
177 0
|
SQL 分布式计算 Hadoop
44 Hive简介
44 Hive简介
58 0
|
SQL 分布式计算 关系型数据库
Hive学习---1、Hive入门、Hive 安装(一)
Hive学习---1、Hive入门、Hive 安装(一)
|
SQL 存储 分布式计算
【Hive】(一)Hive 入门
【Hive】(一)Hive 入门
360 0
【Hive】(一)Hive 入门
|
SQL 存储 分布式计算
Hive快速学习指南
Hive数据据仓库了解了解
372 0
Hive快速学习指南
|
SQL 存储 分布式计算
Hive高级应用(一)
Apache Hive是一个构建在hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为MapReduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询–因为它只能够在Haoop上批量的执行Hadoop。
Hive高级应用(一)
|
SQL 并行计算 数据挖掘