一种应用于电商的常用ETL调度架构的设计

大型的电商网站每天要处理用户的浏览、下单、购买等行为就会产生大量的访问信息,通过网站开发人员的设计埋点就可以获取其中有价值的信息,在实时的进行数据加工处理就可以分析消费者的行为,产生决策。为网站、为商家进行有效的指导。于是如何获取、处理这部分数据就关键。本文主要介绍一种基于Hadoop的ETL调度架构,功能组件基于如下:

  1.  分布式数据平台:hadoop(2.7.6版本)

  2.  数据获取和预处理:flume  (1.8.0版本)

  3. 结构化查询:hive (1.2.2版本)

  4. 数据获取和预处理:sqoop(1.4.7版本)

  5. 任务调度:azkaban(3.0版本)

以上组件的安装步骤省略,下面介绍主要组件的应用使用流程,以下操作案例基于提前搭建好的5台云服务器的集群,测试用例为某网站的脱敏用户访问日志,并针对一般业务场景进行相关操作:

启动Flume将日志文件同步到HDFS,设置相关归档事件和存储格式:

这里设置归档时间为1个小时,存储格式为lzo,并按天进行分类。启动Flume同步到HDFS上。

编写MR程序进行初步的数据清洗

这里使用IntelliJ IDEA Community Edition编写java程序,根据业务的需求,可以进行初步的相关数据的统计计算,去掉坏数据。并将程序打包上传至云服务器:

启动命令加载etl-1.0-SNAPSHOT-jar-with-dependencies.jar并指定目录便于后期的HIVE进行分区

启动HIVE建表加载解析好的日志

根据日志里面的字段创建表

为创建好表后添加分区,便于以后的更新操作

执行SQL语句查看表中的数据

利用HIVE进行业务分析,这里比较的是男性消费者与女性消费者的购买能力。在HIVE里提交SQL语句,会启动MR的进程进行计算

还可以将查询到的结果导入到新表中。

用sqoop将HIVE中的数据同步到mysql中

编辑sqoop命令,省去部分参数

查看导入到mysql中的表,查询结果导入成功。

启动azkaban配置任务依赖,按流程执行上述任务

编写JOB,任务依赖,通过WEB上传(注意打包的格式为ZIP),配置具体的执行时间等参数,执行任务。(这里只展示最终结果)

 

后续对接excel,BI报表系统进行商务分析和具体的数据可视化的展示

由于模拟实验条件的限制,这里将数据拉去到本地的mysql中进行展示。这里使用Tableau连接mysql获取数据源进行数据可视化

 

根据实际表中的数据,控制条件便可以得到上图。至此,整个流程就结束了,只是简单的走了一遍流程,根据实际的应用场景还可以在此基础上进行深层次的开发。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值