zoukankan      html  css  js  c++  java
  • Coursera, Big Data 3, Integration and Processing (week 4)

    Week 4

    Big Data Precessing Pipeline

      

      

      

     上图可以generalize 成下图,也就是Big data pipeline

       

    some high level processing operations in big data pipeline

    在一个pipeline里 有哪些data transformation 方法?课程上讲了一个类比data transformation的例子,把原木加工成家具.

    基本的data transformation 操作有 : Map 是第一个,还有Reduce, Cross/Cartesian, Match/Join, Co-Group, Filter

    Aggregation opeartions in big data pipeline

      

       

    比如上图中,每个星星的值是1,求和就是一个aggregation操作,还有对所有星星按颜色分类也是一个aggression操作。 对全部数据求 sum, avg, max, min, std 都是aggression操作

      

     analytical opearations in big data pipeline

      

       

    Classification - DT

    Clustering - K-means

    Path analysis - find shortest path from home to work

    Connectivity analyasis - graph

     Big data processing tool and systems

       

      

    上面是  big data 的3层结构, 系列课程的整个course 2就是讲最底层的 data management and storage 的. 第二层就是这个course 3 主要讲的内容

    Redis, AeroSpike - key value storage

    Lucene

    Gephi - vector and graph data storage

    Vertica, Cassadra, HBase- column store database

    Solr, Asterisk DB - for managing unstrunctured and semi-structured text.

    mongodb - document store

     下面看第二层

      

    YARN - enabler

    Hive, Spark SQL - query interface

    Pig - 脚本化使用 Map-Reduce 框架

    Giraph, Spark GraphX - graph analytics

    Mahout, Spark MLib - machine learning

    接下来是第三层

      

    OOZiE - workflow scheduler, 可以和第二层的很多tool 交互

    ZooKeeper - Resource coordination and monitoring tool

      

    现在回到第二层,主要讲5个data processing engine

      

    Map-Reduce 从HDFS读数据,没有in-memory 支持,意味着Mapper只能写数据到files然后Reduce去读, 这就导致high letency 和 less scalable. 虽然也有python库但是只有Java可以作为高效编程语言.   

     Spark 支持迭代的交互的data processing pipeline. 有in-memory 结构的RDD(Resilient Distributed Datasets)支持, 除了支持 Map, Reduce 还支持Join, Filter 操作. 所有的transformation操作都能放到 RDD里,所有效率很高. 除了能从HDFS读数据,还可以从很多storage platform读数据。可以用micro-batching 技术读取streaming data.

      

     Flink 和Spark 类似,同时提供了连接stream data ingestion engine (比如Kafka, Flume) 的接口. Flink 有自己的 execution engine 叫 Nephele, 它支持在Hadoop上跑,可以在自己的Nephele上跑。 除了支持Map, Reduce, 还支持join, group by. Flink最大的优点是有一个优化器可以自动选择最优模式和实行策略.

      

    Beam, 来自google 

      

    Storm, 提供了输入抽象 spouts 和计算抽象 bolts. Storm 提供了Lambda Architecture, 可以把streaming 处理和 batch 处理分开处理

      

    big data 领域的 Lambda Architecture (Storm 的作者设计的)开始版本的是下面这样的,batch 和 steam 分开处理, stream 处理就用的storm

       

    下面这个通用版本的Lambda Arch 在保留了上面的Hadoop 和Storm 的情况下,增加了Spark, 可以用spark 既处理stream又处理batch. 

      

    Dive into Spark

      

     Hadoop 的MapReduce 又弊端,首先它是针对batch processing的,对streaming 不支持,还有它只支持Map 和Reduce两种操作,很多情况下无法满足一个复杂Pipeline的需求

      

    Spark 的优点如下

      

    Spark组件建立在Spark计算引擎上, 其中Spark Core 包括支持分布式调度,内存管理,全容错。和像YARN和Mesos 这样的资源调度器,以及像HBase等各种NoSQL数据库交互都是通过Spark Core.Core 非常重要的一个部分是用来定义RDD的APIs.

    Spark SQL 可以通过共同的query languange 查询结构化和非结构化数据.

    Spark Streaming 对streaming data 做操作的.

    MLlib 是机器学习库

    GraphX - 图处理分析库

      

    Getting started with Spark

      

       

       

    Spark Cluster Manager 支持3种接口: Standalone Cluster Manger, YARN, Mesos.

    怎么选 cluster manager, 见下面link.

     Summary architecure

    Terms:

      neo4j - graph database, 用来查询的query language 叫 Cypher.

      Kafka - stream data ingestion engine

      Flume - stream data ingestion engine, collects and aggregates log data

    转载请注明出处 http://www.cnblogs.com/mashuai-191/
  • 相关阅读:
    Ruby向Java发起挑战,红色风暴来了吗?
    学习语义网的好书
    Joel给计算机系学生们七条免费的建议
    ruby rails: 一个高开发效率的web开发框架
    推荐:《真正的执行》
    每个java程序员都应该看看Jakarta Commons
    上海IT俱乐部论坛开通了!
    重构的三个层次
    一些蔡志忠先生的漫画书!
    pythonchanllenge: 解决迷题,非常有趣的学习python的方式
  • 原文地址:https://www.cnblogs.com/mashuai-191/p/10231416.html
Copyright © 2011-2022 走看看