Hive进阶
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的问题

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hive查询指定分隔符
业务场景: 做数据分析的时候,经常会用到hive -e "sql" > result.csv,然后将结果导入到excel中,可是使用hive -e导出后默认的分隔符是\t,excel无法识别,所以需要将\t转成, 方案一:使用linux管道符替换 hive -e "select * from table_name limit 100" | sed 's/\t/,/g' > result.csv 或者 hive -e "select * from table_name limit 100" | tr "\t" "," > result.csv 方案二:使用hive的insert语法导出文件 insert overwrite local directory '/home/hadoop/20180303' row format delimited fields terminated by ',' select * from table_name limit 100
- 下一篇
Spark框架概览【大数据技术】
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势: Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求 官方资料介绍Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍,在实际项目中也比较接近这一指标。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址