大数据业务模型和技术架构简图

大数据业务模型和技术架构简图

1.背景

  1. 大数据技术随着互联网的发展而兴起于21世纪初,最早遇到海量数据技术问题的是搜索引擎公司,如谷歌
  2. 数据量级别的暴增是由于2010年之后的互联网兴起,网络用户数量暴涨带来的海量用户数据暴增。对大数据处理的存储成本、量级、处理实时性都提出了更高要求
  3. 未来随着5G技术发展,物联网势必兴起,万物互联之下,产生的数据会进一步提升,预计是2–3个数量级以上。大数据处理技术会遇到更大挑战。

2.业务模型和技术架构简图

  1. 常规大数据业务模型,最简化如下
  • C/S,客户端服务器模型,
  • 客户端和服务器端2者会产生大量业务数据,如电商,社交应用
  • 同时为了对业务数据和用户行为做监控分析,会有大量客户端和服务端日志数据产生
  • 部分特殊业务场景下,数据可能是购买,交换得来的。
  1. 大数据处理流程简化如下
  • 数据的导入和导出,从mysql等数据库导入到分布式文件系统,一般使用sqoop、datax、spark sql等工具软件导出。
  • 数据导入过程中,或者导入之后,进行数据预处理。例如一些业务数据中的脏数据例如由于生产环境测试而来的假数据,例如日志文件中字段缺失严重的数据等等。
  • 数据存储到分布式文件系统中,如HDFS
  • 数据分析,针对大量数据,进行分析和处理。例如Hadoop的mapreduce、Spark、Flink、Storm。由于这些数据类型不一,采用的技术也会有差异,常规的业务处理在上述框架下编写业务代码即可。特殊的例如图数据处理(spark graphx、hama等等)、机器学习(spark mlib等)则需要单独考量和做技术选型。
  • 数据分析之后,会得到数据结果,例如负荷特征和要求的数据,类似报表化之后的数据。
  • 分析结果数据进行存储,因为这些数据需要提供给运营或者决策者进行进一步分析和作决策支撑。少量数据可以存入到mysql,大量的可以存储到HBase
  • 分析结果最后可视化操作,这个一般需要和Java后台和Web前端进行合作,如果页面相对简单也可以使用现成的简单JavaWeb项目模板进行数据展示。

3.简图

大数据业务模型和技术架构简图_第1张图片

4.大数据技术选型考虑点

  1. 技术最终服务于业务
  2. 技术是为了解决业务实际问题而产生
  3. 解决一个技术问题会有多种选择,一般选择适合自己公司的,而不是技术最新或者技术指标最牛的。适合的才是最好的
  4. 技术选型和框架选择,一般遵循逐步递进,大跃进式地选型,往往会导致水土不服。这需要很谨慎的做考量,例如是否可以解决公司当前问题以及未来1–3年的问题,例如公司内部熟悉该技术和框架的人才储备是否足够,例如该技术的学习和使用门槛是否合适,例如公司现有人员数量是否能够支撑该技术体系。

PS:

  1. 微服务架构带来业务模块解耦以及数据高度弹性化的同时,也带来了架构复杂,维护模块和人员增加50%甚至更高的问题。同时微服务带来的另外一个问题就是容易因为代码实现问题,一个模块出问题,整个架构瘫痪的雪崩。

你可能感兴趣的:(大数据,架构,技术选型,hadoop,spark,flink,大数据)