Hadoop业务的整体开发流程:
Flume数据采集——MapReduce数据清洗——存入Hbase——Hive统计分析——存入Hive表——Sqoop导出数据——Mysql数据库——Web展示
总结来说分为以下几个步骤:数据采集,数据ETL,数据存储,数据计算/分析,数据展示。
数据来源大体包括:
- 业务数据
- 爬虫爬取的网络公开数据
- 购买数据
- 自行采集手机的日志数据
Flume
Flume是一个分布式,可靠,高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据,同时,Flume提供对数据的简单处理,并写到各种数据接收方的能力。
和Sqoop同属于数据采集系统组件,但是Sqoop用来采集关系型数据库数据,而Flume用来采集流动型数据。
Flume的优势:可横向扩展,延展性,可靠性。
1.x版本之后由Flume OG(最后的版本为0.94)改名为Flume NG(O和N是old和new的意思)
Flume的数据源可以是:console(控制台),RPC(Thrift-RPC),text(文件),tail(UNIX tail),syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等
Flume的数据接受方可以是:console(控制台),RPC(Thrift-RPC),text(文件),dfs(HDFS文件)和syslogTCP(TCP syslog日志系统)等。最常用的是Kafka
Flume体系结构/核心组件
Flume的数据流由事件(Event)贯穿始终,事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并携带有头信息,这些Event由Agent内部的Sou