开发者社区> yuanrengu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

hadoop和Hive的数据处理流程

简介: 需求 场景:统计每日用户登陆总数 每分钟的原始日志内容如下: http://www.blue.com/uid=xxxxxx&ip=xxxxxx 假设只有两个字段,uid和ip,其中uid是用户的uid,是用户的唯一标识,ip是用户的登陆ip,每日的记录行数是10亿,要统计出一天用户登陆的总数。
+关注继续查看

需求

场景:统计每日用户登陆总数

每分钟的原始日志内容如下:

http://www.blue.com/uid=xxxxxx&ip=xxxxxx

假设只有两个字段,uid和ip,其中uid是用户的uid,是用户的唯一标识,ip是用户的登陆ip,每日的记录行数是10亿,要统计出一天用户登陆的总数。

处理流程

建表

那么我们首先要在hive里建表,建表语句如下:

复制代码
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这个目录。

格式化原始日志

将每天的每分钟的原始日志,转换成以下文件格式

123,17.6.2.6
112,11.3.6.2
………..

 

根据文件大小,合并文件,例如合并为24个文件。

入库

格式完毕,就可以把数据入库到hive了,假设今天是执行命令

LOAD DATA  INPATH '/data/login/20120713/*' OVERWRITE INTO TABLE login PARTITION (dt='20120713');

执行成功会,转换过的文件会上传到hdfs的/user/hive/warehouse/login/dt=20120713这个目录里。

分析

在hive执行以下语句

select count(distinct uid) from login where dt=’ 20120713’;

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

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

 

来源:http://www.cnblogs.com/ggjucheng/archive/2012/07/25/2608757.html#2601110   

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
大数据— Hadoop
大数据— Hadoop
49 0
大数据_Hadoop初体验
hadoop指的是Apache一款java开源软件,是一个大数据分析处理平台。
80 0
大数据||hadoop分布式集群安装
集群前先计划虚拟机,看文章大数据||Hadoop分布式部署虚拟机 基于伪分布式环境安装进行展开 规划机器与服务() HDFS 文件系统 YARN “云操作系统” JobHistoryServer 历史服务监控 修改配置文件,设置服务运行...
1116 0
0基础搭建Hadoop大数据处理-集群安装
  经过一系列的前期环境准备,现在可以开始Hadoop的安装了,在这里去apache官网下载2.7.3的版本 http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz   不需要下载最新的3.0版本, 与后续Hive最新版本有冲突,不知道是不是自己的打开方式不对。
1103 0
hive (基于hadoop的数据仓库)
1.简介 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能。 与传统关系数据库相比的优势是:能够处理海量数据。 劣势是:它只提供查询功能,不能增、删、改。涉及到分布式计算的任务分发,查询时间在分钟级,不能当实时工具用。 运行机理:将sql语句转换为MapReduce任务,让Hadoop处理。 2.查询语句 h
1509 0
+关注
529
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载