Hive记录-Hive调优】的更多相关文章

当HiveQL跑不出来时,基本上是数据倾斜了,比如出现count(distinct),groupby,join等情况,理解 MR 底层原理,同时结合实际的业务,数据的类型,分布,质量状况等来实际的考虑如何进行系统性的优化. Hive on MR 调优主要从三个层面进行,分别是基于MapReduce优化.Hive架构层优化和HiveQL层优化. MapReduce调优 如果能够根据情况对shuffle过程进行调优,对于提供MapReduce性能很有帮助.一个通用的原则是给shuffle过程分配尽可…
1. null值处理,子串,拼接,类型转换 (1) 空字段赋值(null值处理) 当表中的某个字段为null时,比如奖金,当你要统计一个人的总工资时,字段为null的值就无法处理,这个时候就可以使用NVL函数 NVL:给值为NULL的数据赋值,它的格式是NVL( string1, replace_with).它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL. 例: 创建dept表,并导入数…
Hadoop压缩配置 修改Hadoop集群具有Snappy压缩方式: 查看hadoop支持的压缩方式 [kris@hadoop101 datas]$ hadoop checknative 将编译好的支持Snappy压缩的hadoop-.tar.gz包导入到hadoop101的/opt/software中 .解压hadoop-.tar.gz到当前路径 [kris@hadoop101 software]$ .tar.gz .进入到/opt/software/hadoop-/lib/native路径可…
1.limit限制调整 一般情况下,Limit语句还是需要执行整个查询语句,然后再返回部分结果. 有一个配置属性可以开启,避免这种情况---对数据源进行抽样 hive.limit.optimize.enable=true --- 开启对数据源进行采样的功能 hive.limit.row.max.size --- 设置最小的采样容量 hive.limit.optimize.limit.file --- 设置最大的采样样本数 缺点:有可能部分数据永远不会被处理到   2.JOIN优化 1).  将大…
1.Hive是什么? Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,将类 SQL 语句转换为 MapReduce 任务执行. 2.Hive数据结构-HDFS-Table-Partiton-Bucket Table:每个表存储在HDFS上的一个目录下 Partition(可选):每个Partition存储再Table的子目录下 Bucket(可选):某个Partition根据某个列的hash值散列到不同的Bucket中…
1.hive执行引擎 Hive默认使用MapReduce作为执行引擎,即Hive on mr.实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark.由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多. 默认情况下,Hive on Spark 在YARN模式下支持Spark. 2.前提条件:安装JDK-1.8/hadoop-2.7.2等,参考之前的博文 3.下载hi…
1.Join优化 a.map join b.reduce join 小表为驱动表,或直接将小表加载到内存,做map端join,它的关键字为/*+MAP JOIN(t1)*/ 如果想自动开启map端Join,可以通过hive.mapjoin.smalltable.filesize(默认为25000000)来定义小表的大小,一旦在这个范围之内,就会自动进行map端Join 2.Reducer的数量 Hive作业Reducer数量会直接影响作业效率,Hive的Reducer的是通过如下两个参数确定 参…
1.hive支持四种数据模型 • external table ---外部表:Hive中的外部表和表很类似,但是其数据不是放在自己表所属的目录中,而是存放到别处,这样的好处是如果你要删除这个外部表,该外部表所指向的数据是不会被删除的,它只会删除外部表对应的元数据:而如果你要删除表,该表对应的所有数据包括元数据都会被删除. • table ---表,存储在HDFS的一个目录中. • partition ---分区:在Hive中,表的每一个分区对应表下的相应目录,所有分区的数据都是存储在对应的目录中…
在使用Hive的元数据配置权限之前必须现在hive-site.xml中配置两个参数,配置参数如下: <property> <name>hive.security.authorization.enabled</name> <value>true</value> </property> <property> <name>hive.security.authorization.createtable.owner.gr…
Linux 文件时间属性介绍 atime:(access time)显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用.(执行一些可执行文件或脚本) mtime: (modify time)显示的是文件内容被修改的最后时间,比如用vi编辑时就会被改变.(也就是Block的内容) ctime: (change time)显示的是文件的权限.拥有者.所属的组.链接数发 relatime: 从kernel2.6.29开,还默认集成了一个relatime的属性.可能…