大数据处理平台基础架构-sohu-smc

Sohu-smc  数据处理平台基础架构图

 

如图,左侧是整个大数据处理流程中数据的流向。其中绿色部分是日常工作的重点,黑色部分推荐组做,灰色部分相对固定。

 

数据流程及说明:

1:源数据:

目前可能的数据来源,主要是一:nginx前端服务器日志(包括业务日志,和统计接口日志。 日志可以按接口做简单划分);二:上游应用服务器日志(通过scribe log集中获取分布式日志)。三:数据库日志。(因为用户创建激活的复杂性,目前主要是用作用户新增、激活的计算。)

 

2:数据源集成

         数据源集成主要是指各种数据采集工具,将数据从各个源采集到数据缓存中心(kafka),目前主要是javanio来实现。部分源数据没有集成到数据缓存中心,直接etl入库到hadoop。

 

3:数据分拣

         这个过程是基于发布-订阅的消息缓存(kafka)基础上来做的,最初的数据源(topic)经过很多个分拣节点进行数据格式化、数据分类过滤,最终生成多个可订阅的数据源(topic),topic的粒度可以根据数据分析的需求调整,进行拆分和组合。分拣后的数据源(各topic)有两种去向:一:供实时计算系统消费(主要是一些在线推荐,用户行为分析等);二:生成按时间分片的文件,入库到hadoop进行离线计算。

 

4:数据存储

         数据存储主要是分拣后的数据源生成的按时间分片的文件, 基于性能的考虑,初始的文件片的数据可能会很粗糙,需要通过一些特定etl工具对数据进行加工生成特定格式(hive数据表)的最终文件,最终文件会定时的(crontab分/小时/天)load到hadoop分布式文件系统,并且数据支持hive的分布式计算任务。

 

5:数据分布式计算

         源数据入库到hadoop集群中后(hive表的结构化数据),会有很多离线的计算任务,对源数据进行map-reduce分布式计算(基本都是hive,presto进行的封装)生成可以供前端展示的结果数据,结果数据按时间类型-时间值-数据类型的分区(如: partition (time_type=‘day’, time_value=‘20141021’, query_type=‘user_con’))进行组织存到hive表中。

 

6:数据预加载

         结果数据会被预加载到内存(分布式)中,这样灵活支持不同前端的数据需求。

 

7:数据展示

         目前数据展示主要有2中:数据平台web、报表邮件、第三方应用。

 

 

目前基础架构中的问题:

1:统计接口目前已经有所规范,不过细节上的可扩展性还需要推敲。Sdk化还没有做。

2:数据源分拣不够细,分拣的流程还需要明确,分拣节点部署还需要统一理一理,现在集群20个节点都可以拿来做分拣节点。

3:离线文件数据etl入集群的 脚本也需要规范,需要有个统一写法,另外入集群的脚本需要git管理起来,脚本也需要能过复用。

4:集群数据结构的设计在明确一次,主要是源表、结果表。

5:presto、hive等分布式计算,以及数据预加载的一些系统也需要了解下,展示平台web也大概介绍下。大家都多学习些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值