Hive
ITBOY_ITBOX
技术人生,管理天涯
展开
-
系统内置函数
1)查看系统自带的函数hive> show functions;2)显示自带的函数的用法hive> desc function upper;upper(str) - Returns str with all characters changed to uppercase3)详细显示自带的函数的用法hive> desc function extended upper;upper(str) - Returns str with all characters ch原创 2021-09-05 20:49:23 · 141 阅读 · 0 评论 -
解决数据倾斜的方法
(1)group by注:group by 优于distinct group解决方式:采用sum() group by的方式来替换count(distinct)完成计算。(2)mapjoin(3)开启数据倾斜时负载均衡set hive.groupby.skewindata=true;思想:就是先随机分发并处理,再按照key group by来分发处理。操作:当选项设定为true,生成的查询计划会有两个MRJob。第一个MRJob中,Map的输出结果集合会随机分布到Reduce原创 2021-06-04 10:06:18 · 361 阅读 · 0 评论 -
Hive 查询之基本查询(Select…From)
全表和特定列查询创建部门表create table if not exists dept(deptno int,dname string,loc int)row format delimited fields terminated by '\t';创建员工表create table if not exists emp(empno int,ename...原创 2019-05-04 20:15:55 · 1977 阅读 · 0 评论 -
Hive查询之Where语句
Where语句1.使用WHERE子句,将不满足条件的行过滤掉2.WHERE子句紧随FROM子句3.案例实操 查询出薪水大于1000的所有员工 hive (default)> select * from emp where sal >1000;注意:where子句中不能使用字段别名。比较运算符(Between/...原创 2019-05-04 20:23:44 · 8547 阅读 · 0 评论 -
Hive 查询之分组
Group By语句GROUP BY语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。案例实操: (1)计算emp表每个部门的平均工资 hive (default)> select t.deptno, avg(t.sal) avg_sal from emp t group by t.dep...原创 2019-05-04 20:31:13 · 6469 阅读 · 0 评论 -
Hive查询之Join语句
等值JoinHive支持通常的SQL JOIN语句,但是只支持等值连接,不支持非等值连接。案例实操(1)根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称; hive (default)> select e.empno, e.ename, d.deptno, d.dname from emp e join dept d on e.d...原创 2019-05-05 07:38:13 · 767 阅读 · 0 评论 -
Hive 查询之排序
全局排序(Order By)Order By:全局排序,只有一个Reducer1.使用 ORDER BY 子句排序 ASC(ascend): 升序(默认) DESC(descend): 降序2.ORDER BY 子句在SELECT语句的结尾3.案例实操 (1)查询员工信息按工资升序排列 ...原创 2019-05-05 07:38:00 · 530 阅读 · 0 评论 -
Hive 查询之分桶及抽样查询
分桶表数据存储分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区。对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分。分桶是将数据集分解成更容易管理的若干部分的另一个技术。分区针对的是数据的存储路径;分桶针对的是数据文件。1.先创建分桶表,通过直接导入数据文件的方式(1)数据准备 student.txt1001 ...原创 2019-05-05 07:37:47 · 1382 阅读 · 0 评论 -
Hive 函数
系统内置函数1.查看系统自带的函数 hive> show functions;2.显示自带的函数的用法 hive> desc function upper;3.详细显示自带的函数的用法 hive> desc function extended upper;自定义函数1)Hive 自带了一些函数,比如:max...原创 2019-05-05 07:37:17 · 119 阅读 · 0 评论 -
Hive 查询之常用查询函数
空字段赋值函数说明 NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。 它的功能是如果value为NULL,则NVL函数返回default_value的值, 否则返回value的值,如果两个参数都为NUL...原创 2019-05-05 07:37:33 · 993 阅读 · 0 评论 -
Hive 常见错误及解决方案
1.连接不上mysql数据库 (1)导错驱动包,应该把mysql-connector-java-5.1.27-bin.jar导入/opt/module/hive/lib的不是这个包。错把mysql-connector-java-5.1.27.tar.gz导入hive/lib包下。 (2)修改user表中的主机名称没有都修改为%,而是修改为localhost...原创 2019-05-05 13:57:03 · 1354 阅读 · 0 评论 -
Snappy压缩源码编译
编译前资源准备1.CentOS联网 配置CentOS能连接外网。Linux虚拟机ping www.baidu.com 是畅通的 注意:采用root角色编译,减少文件夹权限出现问题2.jar包准备(hadoop源码、JDK8 、maven、protobuf)(1)hadoop-2.7.2-src.tar.gz(2)jdk-8u144-linux-x...原创 2019-05-05 15:16:10 · 1361 阅读 · 0 评论 -
Hive 压缩和存储
Hadoop压缩配置MR支持的压缩编码 压缩格式 工具 算法 文件扩展名 是否可切分 DEFLATE 无 DEFLATE .deflate 否 Gzip ...原创 2019-05-07 18:53:57 · 19055 阅读 · 0 评论 -
Hive DML数据操作之数据导出
方式一:Insert导出1.将查询的结果导出到本地(无格式) hive (default)> insert overwrite local directory '/opt/module/datas/export/student' select * from student;2.将查询的结果格式化导出到本地(带格式) hive(default)&g...原创 2019-05-04 18:48:59 · 143 阅读 · 0 评论 -
Hive DML数据操作之数据导入
方式一:向表中装载数据(Load)1.语法 hive> load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into table student [partition (partcol1=val1,…)];(1)load data:表示加载数据(2)local:表示从本地...原创 2019-05-04 18:41:33 · 203 阅读 · 0 评论 -
Hive的优缺点
优点操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。 避免了去写MapReduce,减少开发人员的学习成本。 Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。 Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。 Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。缺点1.Hive的HQL...原创 2019-05-02 22:09:50 · 1239 阅读 · 0 评论 -
Hive架构原理
1.用户接口:ClientCLI(command-line interface)、JDBC/ODBC(jdbc访问hive)、WEBUI(浏览器访问hive)2.元数据:Metastore元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;默认存储在自带的derby数据库中,推荐使用MySQL存储Me...原创 2019-05-02 22:14:20 · 126 阅读 · 0 评论 -
Hive基本概念
Hive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的实现是MapReduce3)执行程序运行在Yarn上...原创 2019-05-02 22:15:13 · 87 阅读 · 0 评论 -
Hive和数据库比较
由于Hive采用了类似SQL的查询语言HQL(Hive Query Language),因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述Hive和数据库的差异。数据库可以用在Online的应用中,但是Hive是为数据仓库而设计的,清楚这一点,有助于从应用角度理解Hive的特性。查询语言...原创 2019-05-03 09:02:03 · 192 阅读 · 0 评论 -
Hive安装
1.1 Hive安装地址 1.Hive官网地址 http://hive.apache.org/ 2.文档查看地址 https://cwiki.apache.org/confluence/display/Hive/GettingStarted 3.下载地址 ...原创 2019-05-03 21:42:33 · 149 阅读 · 0 评论 -
Hive数据类型
基本数据类型 Hive数据类型Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2...原创 2019-05-03 22:01:36 · 99 阅读 · 0 评论 -
Hive DDL数据定义之创建数据库
创建数据库CREATE DATABASE [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_name=property_value, ...)];1)创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive...原创 2019-05-04 13:59:11 · 477 阅读 · 0 评论 -
Hive DDL数据定义之查询数据库
查询数据库显示数据库 1.显示数据库hive> show databases; 2.过滤显示查询的数据库hive> show databases like 'db_hive*';OKdb_hivedb_hive_1查看数据库详情 1.显示数据库信息 hive> desc datab...原创 2019-05-04 14:10:14 · 415 阅读 · 0 评论 -
Hive DDL数据定义之修改数据库
修改数据库用户可以使用ALTER DATABASE命令为某个数据库的DBPROPERTIES设置键-值对属性值,来描述这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置。 hive (default)> alter database db_hive set dbproperties('createtime'='2017083...原创 2019-05-04 14:19:04 · 1310 阅读 · 0 评论 -
Hive DDL数据定义之删除数据库
1.删除空数据库hive>drop database db_hive2;2.如果删除的数据库不存在,最好采用 if exists判断数据库是否存在hive> drop database db_hive;FAILED: SemanticException [Error 10072]: Database does not exist: db_hivehive>...原创 2019-05-04 14:20:50 · 181 阅读 · 0 评论 -
Hive DDL数据定义之表操作
创建表1.建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name[(col_name data_type [COMMENT col_comment], ...)][COMMENT table_comment][PARTITIONED BY (col_name data_type [COMMENT col_comment],...原创 2019-05-04 14:47:33 · 265 阅读 · 0 评论