加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 02:58:34 所属栏目:大数据 来源:网络整理
导读:Sohu-smc? 数据处理平台基础架构图 ? 如图,左侧是整个大数据处理流程中数据的流向。其中绿色部分是日常工作的重点,黑色部分推荐组做,灰色部分相对固定。 ? 数据流程及说明: 1:源数据: 目前可能的数据来源,主要是一:nginx前端服务器日志(包括业务日

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也大概介绍下。大家都多学习些。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读