4.Hive总结

2019-01-15  本文已影响0人  南宫萧言

1.hive是数据仓库,主要是对历史数据做分析;

2.hive的产生是为了帮助非Java程序员做MR分析;

3.hive是以hdfs为基础的,所有的数据存储在hdfs上,hive的所有操作都是hdfs和MR操作;

4.hive搭建:(1)本地模式,使用位于本地内存的derby数据库,几乎不用(2)单用户:将mysql与hive分割在不同的服务器上,通过远程访问(3)多用户:使用三台服务器,一台搭建hive,一台mysql服务器,另一台metastore server

5.hive的搭建主要是mysql服务的配置信息,hdfs存储数据的路径

6.hive SQL

    a)创建表 create table tablename(col datatype) row format delimited (fields,collections,map,line)

    b)加载数据(1)insert into(会执行mr)(2)load data (速度快,但是将所有的数据文件导入到同一目录)(3)from table1 insert into table2 select col1,col2....(4)复制表结构 create table1 like table2;

7.hive分区

a)为了提高查询效率,将不同的数据文件存放在不同的目录,查询时了可以查询部分目录,分区设计要跟业务相结合;

b)Alter table tablename add pattition (col=val1) 添加分区的字段再定义表时给出

c)Alter table tablename drop partition (col=val) 删除分区将所有相同的分区全部删掉

8.Serde,beeline ,jdbc

   a)Serde :序列化和反序列化,正则表达式。

   b)Beeline:提供另一种访问hive的客户端方式,跟hiveserver2一起使用 。使用beeline所有的操作命令都要加!,Hive本身不进行用户名和密码的检验;

作业:

create table call_monitor(

record_time string,

imei string,

cell string,

ph_num string,

call_num string,

drop_num int,

duration int,

drop_rate double,

erl string

)

row format delimited

FIELDS TERMINATED BY ',';

create table call_result(

imei string,

drop_num int,

duration int,

drop_rate double

)

row format delimited

FIELDS TERMINATED BY ',';

from call_monitor cm

insert into call_result

select cm.imei,sum(cm.drop_num) sdrop,sum(cm.duration) sdura,sum(cm.drop_num)/sum(cm.duration) s_rate group by cm.imei order by s_rate;

4.1Hive参数

hive 参数、变量

hive参数 hive参数设置方式 参数设置方式

4.2动态分区

动态分区设置 动态分区代码案例

4.3hive分桶

hive分桶概念 分桶操作 抽样语句 计算分桶抽样数量 案例 案例
上一篇下一篇

猜你喜欢

热点阅读