[大数据]使用hive做数据分析
来源:互联网 发布:淘宝有哪些好的外贸店 编辑:程序博客网 时间:2024/05/17 05:12
前面使用flume把第一手的日志上传到了hadoop
接下来就是要对数据进行分析了,
这里可以使用hadoop的mapreduce,但是缺点是开发过程比较慢
很多人都习惯使用sql来进行查询,hive很好的满足了这个要求
而且根据大公司的精力,之前大家都是使用自己封装的mapreduce库
后来都转成hive了
把hadoop的日志转成hive表就是第一步了
这里我尝试的方案是
外表+json的方式
!---
hive的json处理需要引入第三方serde
http://congiu.net/hive-json-serde/1.3.7/cdh5/ 这里可以直接下载,省去github自己打包的麻烦
下载下来的jar包直接丢到hive的lib文件夹下
(这里还是需要下源码重新打包下,把hive和hadoop的版本做个配置支持,
网站上面只有cdh4,chd5等1,2个版本的支持,版本对不上容易出现莫名其妙的错误
)
上面这个serde稳定性不行,解析经常容易失败,最后换了
https://github.com/cloudera/cdh-twitter-example 这个开源的
'com.cloudera.hive.serde.JSONSerDe'
下载代码后把hive和hadoop的版本做修改再编译
然后就是建立外表的过程
项目的日志格式是/flume/yyyy-mm-dd/h/files
这里使用了日期和时间2个分区参数
建表的语句如下:
建表语句
CREATE EXTERNAL TABLE gatetest(
url string,
ip string,
param struct<request_id: string, method:string, data: map<string, string> >,
agent string,
logtime string,
time string,
type string
)
PARTITIONED BY (mydate string, myhour string)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '/flume';
增加分区
alter table gatetest add partition (date='20160427', hour='0') location '/flume/20160427/0';
查看分区数:
show partitions gateLog;
基于分区查询:
select count(*) from gateLog where date='20160427';
这里有个问题是无法直接使用分区参数和数据值一起做为查询条件
这个问题自己还要尝试解决
{解决:
JsonSerDe里面有个配置选项跳过哪些无法解析的json串,测试了一下java的解析跟python解析还有有些不全
我用python导出的3w条记录有几百条无法用这个SerDe解析出来。
ALTER TABLE gatetest SET SERDEPROPERTIES ("ignore.malformed.json"="true");
增加这句,这个是在代码库里面的说明找的。
}
- [大数据]使用hive做数据分析
- 使用HiVE分析数据
- Kylin系列-Saiku结合Hive做大数据多维数据分析
- 大数据Hive-日志分析系统流程
- 5 大数据实战-hive实战分析
- 大数据时代如何做商业分析?
- 基于大数据做文本分析
- 大数据(九) - Hive
- 大数据- Hive
- 使用hive来分析json格式数据
- “大数据”时代,什么是数据分析做不了的?
- 数据分析系统Hive
- hive数据分析
- 数据分析系统Hive
- 开源BI工具Pentaho 连接hive进行大数据分析
- 数据分析利器之hive优化十大原则
- 大数据分析的技术栈(三)-Hive
- 数据分析利器之hive优化十大原则
- iOS开发技巧 -- 复用代码片段
- uwp开发————文件选取
- Linux启动过程学习
- MySQL在线DDL工具pt-online-schema-change
- FineReport报表和J2EE应用的集成
- [大数据]使用hive做数据分析
- 在VirtualBox中安装Ubuntu 的增强工具包并实现与win7共享文件
- vim 一些命令
- 怎么使链接点击过后不变颜色
- 基于spark的新词发现模型
- android 控件 下拉刷新 ActionBar-PullToRefresh
- Android webView加载html代码详解
- Android Studio项目构建时遇到的常见问题及解决办法
- C++实践参考:点-圆-圆柱类族的设计