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 处理分开处理

  

开始版本的Storm 是下面这样的,batch 和 steam 分开处理

  

新版本的storm 可以用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

Coursera, Big Data 3, Integration and Processing (week 4)的更多相关文章

  1. Coursera, Big Data 3, Integration and Processing (week 1/2/3)

    This is the 3rd course in big data specification courses. Data model reivew 1, data model 的特点: Struc ...

  2. Coursera, Big Data 3, Integration and Processing (week 5)

    Week 5, Big Data Analytics using Spark     Programing in Spark   Spark Core: Programming in Spark us ...

  3. Coursera, Big Data 4, Machine Learning With Big Data (week 1/2)

    Week 1 Machine Learning with Big Data KNime - GUI based Spark MLlib - inside Spark CRISP-DM Week 2, ...

  4. Coursera, Big Data 2, Modeling and Management Systems (week 4/5/6)

    week4 streaming data format 下面讲 data lakes schema-on-read: 从数据源读取raw data 直接放到 data lake 里,然后再读到mode ...

  5. Coursera, Big Data 2, Modeling and Management Systems (week 1/2/3)

    Introduction to data management 整个coures 2 是讲data management and storage 的,主要内容就是分布式文件系统,HDFS, Redis ...

  6. Coursera, Big Data 1, Introduction (week 3)

    什么是分布式文件系统?为什么需要分布式文件系统? 如果文件系统可以管理用网络连接的很多个存储单元,叫分布式文件系统. 分布式文件系统提供了数据可扩展性,容错性,高并发. 这些是传统文件系统不具有的. ...

  7. Coursera, Big Data 1, Introduction (week 1/2)

    Status: week 2 done. Week 1, 主要讲了大数据的的来源 - 机器产生的数据,人产生的数据(比如社交软件上的update, 一般是unstructed data), 组织产生的 ...

  8. Coursera, Big Data 4, Machine Learning With Big Data (week 3/4/5)

    week 3 Classification KNN :基本思想是 input value 类似,就可能是同一类的 Decision Tree Naive Bayes Week 4 Evaluating ...

  9. In-Stream Big Data Processing

    http://highlyscalable.wordpress.com/2013/08/20/in-stream-big-data-processing/   Overview In recent y ...

随机推荐

  1. JS深度判断两个对象字段相同

    代码: /** * 判断此对象是否是Object类型 * @param {Object} obj */ function isObject(obj){ return Object.prototype. ...

  2. 在区块链上表白——使用C#将一句话放入比特币的区块链上

    最近在看区块链和比特币的知识,顺便简单研究了一下BitCoin的脚本语言,发现OP_RETURN这个命令可以在后面放入自己想说的内容,很多侧链啊,公证之类就是利用了这个特性,可以把一句话,或者一个哈希 ...

  3. Spring常用配置示例

    Spring 是一款Java平台的开源框架,是为解决企业级应用程序开发的复杂性而创建的,通过良好的分层架构让开发人员能够专注于业务逻辑的开发. Spring框架是一个分层架构,由不同的模块组成,构成s ...

  4. vue应用或者是项目其实就是 实例(完成基本逻辑) + 组件(单文件组件,全局组件,局部组件,内置组件)来完成 ;

    以上! 组件里面包含HTML,css, js,也就是一个完整的功能!

  5. PHP获取项目所有控制器方法名称

    PHP获取项目所有控制器方法名称 //获取模块下所有的控制器和方法写入到权限表 public function initperm() { $modules = array('admin'); //模块 ...

  6. [系统软件]Ubuntu 18.04 LTS 安装 搜狗输入法,谷歌拼音

    1. 讲什么 本文主要讲述在Ubuntu18.04 LTS版本中安装搜狗输入法.谷歌拼音输入法的过程. 2. 为什么讲 1. Ubuntu电脑自带Ibus输入法+拼音/五笔,但是用了一段时间之后发现经 ...

  7. 写论文时,使用word的一些技巧

    目录 怎么设置文章里所有英文的字体.所有中文的字体样式 删除文章中的所有或者部分超链接 设置忽略英文的拼写检查 怎么设置文章里所有英文字体.所有中文字体样式 用鼠标选中需要更改的文章内容,如果是全文, ...

  8. python语法与c++不同点

    代码结构由':'号和缩进 来标示. 函数: def 定义 不定参数: *args:   tarple可逐个传, 整体传, *拆包传 **kwargs dict可逐个传, 整体传, ** 拆包传, 有2 ...

  9. HttpInvoker http请求工具类

    import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import j ...

  10. SVD/SVD++实现推荐算法

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不仅可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域. ...