- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 Hive工作流程
Hive工作流程1.通过客户端提交一条Hql语句2.通过complier(编译组件)对Hql进行词法分析、语法分析。在这一步,编译2器要知道此Hql语句到底要操作哪张表3.去元数据库找表信息4.得到信息5.complier编译器提交Hql语句分析方案。6-1.executor执行器收到方案后,执行方案(DDL过程)。在这里注意,执行器在执行方案时,会判断:如果当前方案不...
2019-01-23 09:06:18
1078
原创 Hive体系结构
Hive体系结构用户接口主要有三个:CLI,JDBC和WUI1.CLI,最常用的模式。实际上在>hive 命令行下操作时,就是利用CLI用户接口。2.JDBC,通过java代码操作,无需启动hiveserver,然后连接操作。MetastoreHive将元数据存储在数据库中,如mysql,derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否...
2019-01-23 09:05:51
238
原创 Hive JDBC
Hive的jdbc编程hive实现了jdbc接口,所以可以通过java代码操作。但是实际应用中用的不多,一般都是在HDFS储存的文件基础上建立外部表来进行查询处理。实现步骤1.在服务器端开启HiveServer服务./hive --service hiveserver2 & (以后台线程启动)2.创建本地工程,导入jar包导入hive\lib目录下的hive-jdbc...
2019-01-23 08:56:50
639
原创 Hive的分桶表
如何使用分通表1.创建带桶的table:create table teacher(name string) clustered by (name) into 3 buckets row format delimited fields terminated by ' ';2.开启分桶机制:set hive.enforce.bucketing = true;3.往表中插入数据:...
2019-01-22 11:16:51
645
原创 Hive优化
1.map side joinmapJoin的主要意思就是,当连接的两个表是一个比较下的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表进行map操作。join就发生在map操作的时候,每当扫描一个大的table中的数据,就要去查看小表的数据,哪条与之相符,继而进行连接。这里的join并不会涉及reduce操作。map端join的优势就是在于没有shuff...
2019-01-22 11:14:56
175
原创 Hive解决数据倾斜问题
概述什么是数据倾斜以及数据倾斜式怎么产生的?简单来说数据倾斜就是数据的key的分化严重不均,造成一部数据很多,一部分数据很少的局面。举个 word count 的入门例子,它的map 阶段就是形成 (“aaa”,1)的形式,然后在reduce 阶段进行 value 相加,得出 “aaa” 出现的次数。若进行 word count 的文本有100G,其中 80G 全部是 “aaa” 剩下 ...
2019-01-22 11:12:50
438
原创 Hive的MySql安装配置
实现步骤:1.删除hdfs中的/user/hive执行:hadoop fs -rmr /user/hive2.将mysql驱动包上传到hive安装目录的lib目录下3.编辑新的配置文件,名字为:hive-site.xml4.配置相关信息:<configuration><property> <name>javax.jdo.option.Connec...
2019-01-22 11:11:54
522
原创 Hive的UDF
UDF如果hive的内置函数不够用,我们也可以自定义函数来使用,这样的函数称为hive的用户自定义函数,简称UDF。实现步骤1.新建java工程,导入hive相关包,导入hive相关的lib。2.创建类继承UDF3.自己编写一个evaluate方法,返回值和参数任意。4.为了能让mapreduce处理,String要用Text处理5.将写好的类打成jar包,上传到l...
2019-01-22 11:04:13
152
原创 Hive explode
explode 命令可以将行数据,按指定规则切分出多行案例一:利用split执行切分规则有如下数据:100,200,300200,300,500要将上面两行数据根据逗号拆分成多行(每个数字占一行) 实现步骤1.准备元数据2.上传HDFS,并创建对应的外部表 。执行:create external table ex1(num string) location ‘/ex’...
2019-01-22 11:03:24
539
原创 Hive常用字符串操作函数
返回类型 函数名 描述 int length(string A) 返回字符串A的长度; select length(xxxxxx) select length(某字段)from 某表 此函数在实际工作,可以用于校验手机号,身份证号等信息的合法性 string reverse(string A) 返回字符串A...
2019-01-22 11:02:08
668
原创 Hive数据类型
常用的基本数据类型基本数据类型 所占字节 int boolean float double string 复杂数据类型复杂数据类型 说明 array array类型是由一系列相同数据类型的元素组成。并且可以通过下表来进行访问。注意:下表从0开始计 map map包含key-v...
2019-01-22 11:00:34
133
原创 Hive分区表
概念:Hive的表有两种:内部表和外部表;并且都可以是分区表。作用:可以避免查询整表,在生产环境下,基本都是建立带有分区字段的表,在查询时,带上分区条件。分区表在HDFS,一个分区,就对应一个目录。分区表的实际应用:一般是以天为单位来建立分区,这样方便管理表数据,尤其是按日期查询很方便。比如:普通表和分区表区别:有大量数据增加的需要建分区表。语法:create table ...
2019-01-22 10:58:42
610
原创 Hive的内部表和外部表
在查看元数据信息是,有一张TBLS表,其中有一个字段属性:TBL_TYPE---MANAGED_TABLE 表示内部表。 内部表概念先在hive里建一张表,然后向这个表插入数据(用insert可以插入数据,也可以通过加载外部文件方式来插入数据),这样的表称为hive的内部表。什么是内部表:现有hive表,再有数据。特点:当内部表被删除时,对应的HDFS的数据也会被删除。...
2019-01-22 10:57:41
247
原创 HIve基础指令
命令 作用 额外说明 show databases; 查看所有数据库 create database XXX; 创建XXX数据库 创建的数据库,实际是在Hadoop的HDFS文件系统里创建一个目录节点,统一存在:/user/hive/warehouse目录下 use XXX; 进入XXX数据库 show tables; ...
2019-01-22 10:50:48
268
原创 Hive介绍
Hive概述HIve是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。可以通过类SQL 语句快速实现MapReduce统计。本质是将SQL转换为MapReduce程序。Hive是建立在Hadoop上的数据仓库基础架构。并且提供了一系列的工具,可以用来进行数据提取、转化、加载(ETL E...
2019-01-22 10:50:37
480
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人