读书笔记:大型分布式网站架构设计与实践(5)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoyi52/article/details/83589212

5 数据分析

随着互联网行业的深入发展,数据的量级呈指数级增长。而数据是非常重要的信息,对数据进行收集和分析是一直在做的事情。当大数据时代来临之后,相应地也产生了一些新的数据收集、分析的工具。

5.1 日志收集

对于在线运行的系统来说,每天都会产生大量日志信息,需要对这些日志进行收集,分析,并做可视化展示。
ELK是elastic公司提供的一套完整的日志收集、展示解决方法,是三个产品的首字母缩写,分别是ElasticSearch、Logstash和Kibana。

ElasticSearch简称ES,是一个实时的分布式搜索和分析引擎,可以用于全文搜索,结构化搜索以及分析。它建立在全文搜索引擎Apache Lucene基础之上。

LogStash是一个具有实时传输能力的数据收集引擎,用来进行数据收集、解析,并将数据发送给ES。

Kibana为ElasticSearch提供了分析和可视化的Web平台。它可以在Elasticsearch的索引中查找,交互数据,并生成各种维度表格和图形。

5.2 离线数据分析和流式数据分析

大数据平台Hadoop主要集中在大数据离线批处理分析领域,而对于数据量不太大以及实时性要求很高的数据分析场景下则效果不太理想。离线数据分析的结果可以通过数据回流,重新存储到关系型数据库中,提供在线的实时查询服务,如好友推荐、商品推荐等。

与离线数据不同的时,流式数据是实时的,数据的价值随着时间的流逝而降低,因此需要实时地处理。

Storm是一个开源的分布式实时计算系统、可以简单可靠地对大量流逝数据进行分析处理。

5.3 数据同步

直接对线上存储系统进行数据分析会影响系统运行的稳定性。因此需要把数据采集到大数据平台中进行加工处理,这个过程也即所谓的ETL(数据抽取,清洗,转换,装载)过程。然后对于处理完毕的数据,有时候也并不能或不适合在大数据平台的相关服务中直接使用,而是要反馈回线上的业务系统中,这个过程称为数据的回写或导出。

数据同步就是指数据在不同系统组件之间的导入导出工作。比如将DB的数据采集到Hive中,将Hive中的数据导出给HBase等等。

离线数据同步工具有Sqoop,DataX等。Sqoop是用得比较多的工具,整体框架以Hadoop为核心。DataX是阿里开源的一款插件式,以通用的异构数据交换为目标的产品。

流式数据同步工具有Heka等。Heka是Mozilla开源的一套数据采集和分析工具,整体结构设计和LogStash差不多。

猜你喜欢

转载自blog.csdn.net/xiaoyi52/article/details/83589212