大数据/Hive
文章平均质量分 68
莫言静好、
这个作者很懒,什么都没留下…
展开
-
Hive之管理表 外部表 分区表
一Hive 创建表的三种方式1.1普通创建1.2查询语句创建CREATETABLE IF NOT EXISTS ext_1 AS SELECT deptno,dname,loc FROMdept;1.3like创建CREATETABLE IF NOT EXISTS ext_like like emp;二 内部表与外部表的比较Hive表概念和关原创 2016-10-29 18:36:21 · 2459 阅读 · 0 评论 -
Hive文件数创建过多的问题
一 Hive的创建文件数的限制Hive对文件创建的总数是有限制的,这个限制取决于参数:hive.exec.max.created.files,默认值是10000。如果现在你的表有60个分区,然后你总共有2000个map,在运行的时候,每一个mapper都会创建60个文件,对应着每一个分区,所以60*2000> 120000,就会报错:exceeds 100000.Killing the j原创 2017-11-20 08:50:06 · 4173 阅读 · 0 评论 -
hive架构及使用场景
一 什么是Hive,它能解决什么问题?Hive是一个基于Hadoop的数据仓库平台。它通过HDFS进行存储,通过MapReduce执行查询计划,使用类SQL的查询语言HQL作为查询接口。作用:可以很方便我们进行数据的ETL工作,避免了使用MapReduce来做如此复杂事情。 二 Hive的架构三 Hive的原理客户端发起查询请求,比如你在HiveShell发送一原创 2017-11-20 08:52:33 · 1235 阅读 · 0 评论 -
严格模式&explain&FetchTask
一 严格模式参数hive.mapred.mode=strict是hive的严格模式,严格模式下,是为了禁止用户做出某些查询,这些查询可能会带来不好的影响。严格模式下,一般来说,这儿有三种常见类型的查询:1.1在一个分区表上,如果没有在WHERE条件中指明具体的分区,那么这是不允许的,换句话说,不允许在分区表上全表扫描。这种限制的原因是分区表通常会持非常大的数据集并且可能数据增长迅速,对这样原创 2017-11-20 08:55:24 · 587 阅读 · 0 评论 -
hive之分区表详解
一 新建分区表语法:PARTITIONEDBY (col type,col type......)示例:CREATETABLE order ( oid STRING, otime STRING, ofrom STRING, age INT)COMMENT'order partition table'PARTITIO原创 2017-11-20 09:00:05 · 1871 阅读 · 0 评论 -
hive常见的DDL操作
一 Create/Drop/Truncate table1.1创建表1管理表和外部表(略)2存储格式(略)3ROW FORMATS & SerdeSerDe:是Serialize/Deserialize的缩写. 就是Hive中用户序列化和反序列话。主要作用就是将某种格式的文件转化为Hive可以使用的记录我们知道序列化:一般是为了方便将对象保存到文件;另外一个是方便对象的原创 2017-11-20 09:01:25 · 2393 阅读 · 0 评论 -
hive常见的DML操作
一 Load数据LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]filepath: 如果是Local则是本地文件,否则就是HDFS文件OVERWRITE:如果该表有数据是否覆盖PARTITION: 一原创 2017-11-20 09:02:16 · 466 阅读 · 0 评论 -
hive 优化
一 Load数据LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]filepath: 如果是Local则是本地文件,否则就是HDFS文件OVERWRITE:如果该表有数据是否覆盖PARTITION: 一原创 2017-11-20 09:04:24 · 266 阅读 · 0 评论 -
Hive的连接(join)方案
一 Common JOIN/Reduce Side JOIN/Shuffle JOIN这三种其实都是一种连接方案:即在Reduce端做JOIN操作。一般情况下,如果不手动指定MapJoin或者不满足MapJoin的条件,一般Hive解析器会将Join操作转换成ReduceJoin. 他会经历完整的Map->Shuffle->Reduce三个阶段Map阶段: 读取表中数据,输出的时候以J原创 2017-11-21 09:31:24 · 1363 阅读 · 0 评论 -
Hive连接的类型
一 INNER JOIN 内连接所谓内连接其实就是指基于两张表共有的join 字段的值,进行连接,不相等的值不会出现在查询结果比如用户表和订单表:SELECT* FROM order o INNER JOIN user u ON o.cid = u.id;内连接的结果就是:内连接分为显示和隐式两种:隐式内连接SELECT* FROM em原创 2017-11-21 09:37:08 · 1187 阅读 · 0 评论 -
Hive常见的存储格式文件比较
一 列式存储和行式存储首先我们看一下一张表的存储格式1.1 行式存储1.2 列式存储1.3列式存储和行式存储的比较行式存储优点:#相关的数据是保存在一起,比较符合面向对象的思维,因为一行数据就是一条记录#这种存储格式比较方便进行INSERT/UPDATE操作缺点:#如果查询只涉及某几个列,它会把整行数据都读取出来,不能跳过不必原创 2017-11-20 08:39:54 · 18650 阅读 · 1 评论 -
Hive创建索引
Hive索引的目标就是为了提高表中确定的列的查询速度.没有索引,查询,类似于带有谓词WHEREcol=val这样的查询会加载整张表或者分区然后扫面所有行,如果在col这个列上我们建了索引,那么我们仅仅只需要家在一份文件,然后进行处理。 与传统关系型数据库一样,增加索引在提升查询性能的时候,会消耗额外的资源去创建索引和需要更多磁盘空间存储索引数据 一 创建、更改和删除索引1.1创原创 2017-11-20 08:37:45 · 3001 阅读 · 0 评论 -
Hive分桶(bucket)
一 什么是桶的概念,和分区有啥区别?对于每一个表或者分区,可以进一步细分成桶,桶是对数据进行更细粒度的划分。默认时对某一列进行hash,使用hashcode对 桶的个数求模取余,确定哪一条记录进入哪一个桶。Hive在查询数据的时候,一般会扫描整个表的数据,会消耗很多不必要的时间。有些时候,我们只需要关心一部分数据,比如WHERE子句所接的查询条件,那这时候这种全表扫描的方式是很影响性能的。原创 2017-11-20 08:35:27 · 16631 阅读 · 1 评论 -
Hive 之 排序和reduce设置
一 关于Reduce的设置1.1设置每个reduce处理的数据量hive.exec.reducers.bytes.per.reducer= 1.2设置最大运行的reduce的个数hive.exec.reducers.max= 1.3实际的reduce的个数mapreduce.job.reduces= 二 Hive中几种类型的排序order by全局排序,原创 2016-11-10 17:21:54 · 770 阅读 · 0 评论 -
Hive 之 常用函数
一 时间函数unix_timestamp(): 当前UNIX 系统时间,返回一个bigint类型的数字unix_timestamp(stringdate):将一个字符串时间转化为bigint类型数字to_date(stringtimestamp) 根据时间戳返回当前日期字符串啊;2.1之后返回一个Date对象year(stringdate) year("1970-01-01") =原创 2016-11-10 17:23:29 · 2079 阅读 · 0 评论 -
Hive 之 分析窗口函数
一 分析函数介绍1.1分析函数定义分析函数又被称为窗口函数。在联机分析(OLAP)的时候,传统是SQL可能需要进行多个自连接,从而导致查询新能很差。又或者有时候需要多维分析需要在不同层级进行聚合,并且聚合后数据行和密钥聚合的数据行都必须返回。传统是SQL都有一定的局限性。分析函数很好的可以解决这些问题,可以不使用自联结就能在一行中取出聚合和非聚合的行1.2分析函数组成functio原创 2016-11-10 17:27:00 · 1243 阅读 · 0 评论 -
Hive 之 导入导出数据
一 Hive 导入数据1.1 从本地文件系统导入LOADDATA LOCAL INPATH '本地文件系统文件' [OVERWRITE]INTOTABLE table_name;特点:从本地文件系统将文件拷贝到表所在的路径下例子:LOADDATA LOCAL INPATH '/opt/data/employee.txt ' INTOTABLEemployee;1.原创 2016-11-10 17:29:15 · 532 阅读 · 0 评论 -
Hive 之 用户自定义函数 UDF UDAF UDTF
一 什么是UDFUDF是UserDefined Function 用户自定义函数的缩写。Hive中除了原生提供的一些函数之外,如果还不能满足我们当前需求,我们可以自定义函数。除了UDF 之外,我们还可以定义聚合函数UDAF 和 Table-Generating函数 二 如何创建UDF函数2.1编写JAVA类,需要继承UDF类或者GenericUDF一般需要返回简单数据原创 2016-11-10 17:31:56 · 1807 阅读 · 0 评论 -
Hive之架构 & 功能
一 Hive的定义Hive是一个使用SQL对分布式存储上的大数据进行读写和管理的一个数据仓库软件或者框架。本质上讲,就是将SQL转化成MapReduce程序。它具有以下几个特征:1使用HQL作为查询接口2使用HDFS 进行存储3使用MapReduce进行计算4适合处理离线数据处理 二 Hive能做什么?与MapReduce的比较2.1 Hive 能做什么提供原创 2016-10-29 11:42:47 · 741 阅读 · 0 评论 -
Hive之安装 & 部署
一 解压apache-hive-0.13.1-bin.tar.gz并重命名tar-zxf apache-hive-0.13.1-bin.tar.gz -C /opt/modules/mvapache-hive-0.13.1-bin/ hive-0.13.1 二 创建目录HDFS目录/user/hive/warehouse& /tmp/opt/modules/hadoop原创 2016-10-29 15:55:29 · 484 阅读 · 0 评论 -
hiveserver2详解
一 HiveServer2概览HiveServer2是一个能使客户端针对hive执行查询的一种服务,与HiverServer1比较,它能够支持多个客户端的并发请求和授权的;HiveCLI 和 hive –e的方式比较单一,HS2允许远程客户端使用多种语言诸如Java,Python等向Hive提交请求,然后取回结果 HS2对于TCP 模式使用TThreadPoolServer,对于H原创 2017-11-19 10:15:30 · 11608 阅读 · 0 评论 -
hive中order by,sort by, distribute by, cluster by作用以及用法
一 ORDERBYORDERBY 跟传统数据库ORDERBY 一样,会对所有的数据进行排序,可能有很多个Map任务,但是只会由一个Reducer来进行排序,如果数据海量的话,会很影响性能,因为需要花费大量的时间 二 SORTBY如果在hive指定了SORT BY语句,那么在每一个Reducer都会进行排序,言外之意,只保证每一个Reducer的时候进行排序,那么这样的排序是局部的,原创 2017-11-19 10:17:29 · 1855 阅读 · 0 评论 -
hive 优化(二)
在讨论hive优化之前,我们需要知道的是HQL它的执行过程。简单的说,HQL会最终转化为job,然后通过MR来执行job 问题一 既然HQL会转化为JOB,那么如果job数量太多,会不会对hive执行带来性能的影响?我们知道客户端提交JOB到YARN集群,然后MRAppMaster则会创建JOB,并对JOB进行初始化,初始化JOB是需要好费时间的,因为在这里会根据文件创建分片,然后原创 2017-11-21 09:39:15 · 803 阅读 · 0 评论