第十三天:hive的基本操作

hadoop和hive的数据处理泪流成
hive Cli常用操作


需求
场景:统计每日用户登录总数
每分钟的原始日志内容如下:
http://www.baidu.com/uid=123&ip=192.168.2.2
假如只有两个字段uid和ip,其中uid是用户的uid
是用户的uid,是用户的唯一标识,ip是用户的
登录ip,每日的记录行数是10亿行,要统计出一天用户登录的总数


处理流程
1、建表
那么我们首先要在hive里面建立一张表,建表语句如下:
表名-login
fields  列分分隔符号
create table login(
  uid string,
  ip string
)
partitioned by (dt string)
row format delimited
fields terminated by ','
stored as textfile; 




其实表名是login,字段之间以,隔开,存储是text,其次
还以dt这个字段作为分区
创建成功之后,会看到hdfs上创建了
/user/hive/warehouse/login这个目录


2、入库
格式完毕,就可以把数据入库到hive了。假设几天
执行的命令


load data local inpath '/hadoop/hive0.9/testHive/test*' overwrite into
table login partition (dt='20150207')


执行成功


3、分析
在hive执行一下语句


select count(distinct uid) from login 
where  dt='20150207';


使用dt这个分区条件查询,就可以避免hive去查询其他分区的文件
这样减少IO操作,这个是hive分区很重要的特性,也是已
天为单位,作为login表分区的重要意义。


执行完毕后,就可以在命令里出现结果,一般通过管道执行hive shell命令
,读取管道的内容,把结果入库到mysql里就完成了分析了、


分区不能做的太多。
一般是以天做为分区。


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值