English

大数据分析

方案介绍

包括从互联网采集数据和对采集的数据进行分析。

数据采集

从网站新闻、微博、微信、APP、报刊、论坛、博客等采集数据。采用分布式网络爬虫,有Java版和Python版。



此爬虫架构满足以下功能:

(1) 分布式:能够在多台机器上分布执行。

(2) 可伸缩性:能够通过增加额外的机器和带宽来提高抓取速度。

(3) 性能和有效性:能有效地使用各种系统资源;例如,处理器、存储空间和网络带宽。

(4) 可扩展性:模块化,以能够支持新的数据格式和新的抓取协议。

这里最主要的是爬虫和存储库。其中的爬虫部分:阶段性地抓取互联网上的内容。存储库存储爬虫下载下来的网页,是分布式的和可扩展的存储系统。在往存储库中加载新的内容时仍然可以读取存储库。

工作流程如下:


爬虫管理平台:

爬虫监测管理平台通过网页界面实现爬虫的快速部署和管理,无需修改主程序源代码即可实现新的爬虫规则,真正的可插拔式爬虫。能够随时开启和停止爬虫,随时查看爬虫日志,通过表格形式实时的展示爬虫采集数据,对爬虫状态进行实时监控。并实现了对爬虫所在服务器使用情况实时监测,保证爬虫环境稳定健康。方便快管理爬虫。

数据分析

基于分布式技术构建的大数据平台能够有效降低数据存储成本,提升数据分析处理效率,并具备海量数据、高并发场景的支撑能力,可大幅缩短数据查询响应时间,满足企业各上层应用的数据需求。

大数据的处理类型很多,主要的处理模式可以分为流处理和批处理两种。批处理是先存储后处理,而流处理则是直接处理数据。Spark和Storm都用于流处理的框架。

数据分析和挖掘的方法有关联分析、聚类分析、分类、预测、时序模式、偏差分析等,应用在实时的市场活动,在线产品推荐,网络安全分析,机器日记监控等场景。

  Spark

Spark是分布式计算平台,与Hadoop、Mesos兼容,支持流计算、图形操作、SQL访问、分布式机器学习,适于构建实时分析与BI系统的平台。

Spark在内存中以接近“实时”的时间完成所有的数据分析:“从集群中读取数据,完成所有必须的分析处理,将结果写回集群,Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。

Spark能够运行在现有Hadoop集群之上,但需要依赖于YARN对于资源的调度能力。除了Hadoop YARN之外,Spark还能够以Mesos为基础实现同样的资源调度或者利用自身内置调度程度作为独立集群运行。

Spark拥有大规模可扩展能力,可以运行包含成千上万个节点的生产性集群。Spark可以承载100TB级别数据工作负载, Spark ETL可以负责数PB级别生产工作负载的运营。

Spark提供的API支持Scala、Java以及Python。Spark提供一套交互shell,允许用户利用Scala或者Python API以实时方式快速建立起原型及探索性数据分析机制。这种交互shell表现出偏“功能”的取向,大部分API使用都是由面向原始操作的连续性方法调用来实现的。

  Storm

Storm是一套可扩展能力强、速度快且具备容错能力的分布计算系统,用于事件流处理的分布式计算框架。也被称为实时处理领域的Hadoop。 “Storm大大简化了面向庞大规模数据流的处理机制,从而在实时处理领域扮演着Hadoop之于批量处理领域的重要角色。”

Storm在事件处理与增量计算方面表现突出,能够以实时方式根据不断变化的参数对数据流进行处理。尽管Storm同时提供原语以实现通用性分布RPC并在理论上能够被用于任何分布式计算任务的组成部分,但其最为根本的优势仍然表现在事件流处理方面。

Storm拥有大规模可扩展能力、利用一套“故障快速、自动重启”方案为处理提供容错性支持、从而有力地保证了每个元组都能切实得到处理。Storm项目默认为消息采取“至少一次”的处理覆盖保障,但用户也能够根据需要实现“仅为一次”的处理方式。

Storm项目主要利用Clojure编写而成,且既定设计目标在于支持将“流”(例如输入流)与“栓”(即处理与输出模块)结合在一起并构成一套有向无环图(简称DAG)拓扑结构。Storm的拓扑结构运行在集群之上,而Storm调度程序则根据具体拓扑配置将处理任务分发给集群当中的各个工作节点。

Storm可以通过适配器与HDFS文件系统进行集成,与Hadoop间实现互操作。

Storm生态系统拥有丰富的流类型组合,Twitter流API、Apache Kafka、JMS broker等。

Storm基于Clojure,运行在JVM之上,其流与栓仍然能够通过几乎所有语言进行编写。Storm倾向于通过创建类与实现接口来完成此类任务。

案例分析

互联网信息处理平台