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参数设置方式 参数设置方式
网友评论