一、hive 安装

下载jar包,安装配置

二、Hive架构图

Hive总结笔记

 

三、Hive常用命令

DDL数据定义

 

1、查看数据库

show databases;

2、创建数据库

create database if not exists hive_db;

3、创建库指定hdfs路径

create database hive_db2 location '/hive_db2'

4、创建表

如果指定了hdfs路径,创建的表在这个路径

5、 查看数据库结构

desc database hive_db;

6、添加额外的描述信息

alter database hive_db set dbproperties('created'='hunter')

注意:查询需要使用desc database extended hive_db;

7 、查看指定的通配符

show database like 'i*';

8、删除空库

drop databse hive_db cascade ;

9)删除非空库

drop database if exists hive_db cascade ;

 

管理表

默认不加external创建的就是管理表,也称为内部表

MANAGED_TABLE 管理表

Table Type :MANAGE_TABLE

查看表类型:

desc formatted itstar;

 

外部表

EXTERNAL_TABLE 外部表

创建方式 :

create external table student(id int, name string)

区别:

如果是管理表删除hdfs中的数据删除,如果是外部表删除hdfs数据不删除

 

Hive命令

1)不登录hive客户端直接输入命令操作

bin/hive -e "select * from itstar"

2)直接把sql写入到文件中 hived.sql 有select * from itstar

bin/hive -f /root/hived.sql

3)查看hdfs 文件

dfs -ls /

4)查看历史操作

cat ~/.hivehistory

四、Hive导入数据到hdfs hdfs导出到本地

从hdfs上导入数据

  load data inpath ‘hafd_file_path’ into table tbname;

  应用场景:使用与大数据的存储

 

加载分布式系统里的数据做如下操作:

create table dep(id int ,name string) row format delimited fields terminated by '\t';

load data local inpath '/home/test/student.txt' into table hive.dep;

select * from dep;

 

五、Hive分区与分桶

 

分区分的是文件夹,分桶分的是文件,分桶其实就是把大表化成了“小表”

 

数据分桶的作用:

好处:

1、方便抽样

2、提高join查询效率

 

所谓分区,这是将满足某些条件的记录打包,做个记号,在查询时提高效率,相当于按文件夹对文件进行分类,文件夹名可类比分区字段

 

分区的目的就是提高查询效率

分桶是相对分区进行更细粒度的划分

 

 

1)创建分桶表

create table emptable_buck(id int , name string ) Cluster by(id) into 4 buckets

row format

delimited fields

terminated by '\t' ;

用户需要统计一个具有代表性的结果时,并不是全部结果!

抽样! 统计学

 

1、创建分区表

create table dept_partitions()

partition by ()

row format

delimited fields

terminated by '\t' ;

 

六、Hive Sql 与 自定义UDF 函数

基础查询:

select * from table; 全表查询

select itstar.id,itstar.name from table; 指定列

 

1)指定列查询

select itstar.name from itstar;

 

2)指定列查询设置别名

select itstar.name as myname from itstar;

 

3)创建员工表

 

4)查询员工姓名和工资(每个员工加薪1000块)

select emptable.ename,emptable.sal+1000 salmoney from hive_db.em ptable;

 

5)查看公司有多少员工

select count(1) empnumber from emptable;

 

6)查询工资最高的工资

select max(sal) from emptable;

 

7)查询工资最小的工资

select min(sal) from emptable;

 

8)求工资总和

select sum(sal) sal_sum from emptable;

 

9)求平均值

select avg(sal) sal_avg from emptable;

 

10) 查询结果只显示前多少条

select * from emptable limit 10

 

11)where语句

作用:过滤

使用:where子句紧接着from

求出工资大于1300的员工

select * from emptable where sal>1300

 

求出工资在1300~3000的员工 select * from emptable where sal>1300 and sal<3000

或是

select * from emptable where sal between 1300 and 3000

 

select from emptable where sal in(2000,3000) in 表示范围

 

12) is null 与 is not null

空与非空的过滤

select * from emptable where comm is not null

 

13)like

模糊查询

使用:通配符

% 后面代表0或多个字符

 

select * from emptable where sal like ‘1%’;

 

查询工资第2位数字为1的员工信息

select * from emptable where sal like ‘_1%’;

_ 代表一个字符

 

查询工资中有5的员工信息

select * from emptable where sal like ‘%5%’;

 

14)And / Not / Or

查询部门号为30并且工资大于1000的员工信息

select * from emptable where no=30 and sal > 1000 ;

 

查询部门号为30或工资大于1000的员工信息

select * from emptable where no=30 or sal > 1000 ;

 

查询工资不在2000-3000的员工信息

select * from emptable where sal not in (2000,3000);

 

15)分组操作

group by

通常和一些聚合函数一起使用

求每个部门的平均工资?

select avg(sal) avg_sal, deptno from emptable group by deptno;

 

where 不可以有聚合函数

having 可以用聚合函数

group by 分组

求部门平均工资大于2000的部门?

select deptno, avg(sal) avg_sal from emptable group by deptno having avg_sal > 2000 ;

 

七、Hive压缩

在Hadoop集群中,有大量的数据复制和移动操作,压缩过后可以减少文件的大小,从而可以减少

磁盘和网络的I/O

 

八、Hive数据类型

 Hive总结笔记

 

九、Hive优化原则

 

1、设计一个好的模型,因为一个好的模型能够做到事半功倍。

 

  2、从数据倾斜问题来考虑,可以采取有效措施解决数据倾斜问题。

 

  3、尽量减少job的个数,能用一个job完成的,就坚决不用两个job。

 

  4、设置合理的map reduce的task个数,可以有效地提升性能。

 

  5、了解数据的分布,自己动手解决数据的倾斜是个不错的选择

 

  6、对于数据量较大的时候,要慎用count(distinct),因为容易产生数据倾斜。

 

  7、对小文件进行合并,是一种比较行之有效提高效率的方法。

 

  8、在优化时,要注意把握整体最优原则。

 

 

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-05
  • 2021-10-05
  • 2021-12-10
  • 2021-05-19
猜你喜欢
  • 2022-12-23
  • 2021-07-13
  • 2021-12-24
相关资源
相似解决方案