100亿小数据实时计算平台

Posted nnhy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100亿小数据实时计算平台相关的知识,希望对你有一定的参考价值。

2017年6月,开始数据分析的职业生涯,作为架构师,建立起一套基于.Net/.Net Core的小数据实时处理计算平台,这里记录学习过程中的点点滴滴!

数据分析的核心,可以理解为:Select xxx From table Where yyy Group By zzz

小数据计算平台的定位:

  1. 数据量在1000万行到100亿行之间,传统关系型数据库算起来吃力,且类似项目不是特别多,Hadoop搭起来难以收回成本
  2. 资源投入有限,基于传统项目之上的轻量级数据分析,一般只能有1~2台服务器,Hadoop最好能有8台以上服务器
  3. 门槛低,普通软件工程师容易上手做数据分析,并参与开发配套的业务系统,大数据开发工程师需要会很多(Hadoop、MapReduce、HDFS、Hive、HBase、Spark、Zookeeper、Sqoop)
  4. 实时内存计算,C#/Java/Go+Redis/MongoDB,轻松做到0.5~5分钟实时处理,大多数大数据开发工程师只熟悉 Hadoop+Hive,擅长T+1离线计算,对实时计算Spark+HBASE熟悉的不多

题外:其实大家平时借助消息队列(Kafaka/RocketMQ)异步处理的统计,本身就属于实时计算数据分析的一种!

该平台的目标并非替代Hadoop,而是对中小型数据分析提供一种轻量级选择。

实际上我们大部门就有完整的Hadoop大数据平台,我们的许多模块,都跟Hive、HBase、Kafka等有大量的数据交互

未来的日子里,会根据后面的小数据平台配套,把相关技术慢慢写下来。

 

文章目录:

借助Redis做秒杀和限流的思考

大数据分析中Redis怎么做到220万ops

每天4亿行SQLite订单大数据测试(源码)

 

小数据计算平台配套:

  1. 关系型数据库,数据来源以及计算结果存储,推荐mysql,批量插入5000~50000tps
  2. Redis,原始数据源预热,中间计算数据临时存储,结果数据缓冲队列,选Linux/Windows多实例部署,单实例性能8w~10wops
  3. 计算节点,核心数据分析应用,从数据库或Redis或微服务读取原始数据和基础数据,根据业务规则进行计算,统计结果直接落库或借助Redis异步落库
  4. 调度系统,时间片调度算法,对数据进行切片处理,多实例多线程并行计算,错误或超时重试机制。计算节点上跑的分析应用依赖于调度系统
  5. 服务节点,频繁且反复读取的小数据(1000万~100亿)预热进入Redis,大量部署微服务,封装各种数据访问,10万以下数据直接缓存到进程内存
  6. 微服务注册中心,每个服务至少部署2个节点(可用性、负载均衡),大量服务需要管理起来,伸缩扩容
  7. 配置中心,数据分析应用和微服务的大量伸缩部署,需要有配置中心把数据库配置等各种配置管理起来
  8. 监控中心,监控重要计算节点和服务节点,通过微信/短信/钉钉等工具报告紧急情况,或每天提供数据简报

实际使用根据需要进行调整,如果数据分析项目不多,后面的辅助性配套可以不要。

 

关于博客,10多年来断断续续也写了不少博文,我写的博客有个特点,都是经过深思熟虑并且在网络上很少能找到相关内容的知识点。

关于工作,公司财报提到2018年第二季度包裹量21.16亿件,公司名和具体工作内容不方便讨论,还请大家见谅和监督!

 

本文答疑:QQ群1600800,2018-08-12 20:00:00

 

End.

以上是关于100亿小数据实时计算平台的主要内容,如果未能解决你的问题,请参考以下文章

Storm大数据实时计算

一文读懂大数据实时计算

伍翀 :大数据实时计算Flink SQL解密

基于Storm与Cassandra的实时计算与大数据实践

赵强老师免费公开课第三季:大数据实时计算

Flink从入门到精通100篇(二十一)-Flink 状态(State)管理在推荐场景中的应用