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

开始版本的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)的更多相关文章
- 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 ...
- 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 ...
- 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, ...
- 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 ...
- Coursera, Big Data 2, Modeling and Management Systems (week 1/2/3)
Introduction to data management 整个coures 2 是讲data management and storage 的,主要内容就是分布式文件系统,HDFS, Redis ...
- Coursera, Big Data 1, Introduction (week 3)
什么是分布式文件系统?为什么需要分布式文件系统? 如果文件系统可以管理用网络连接的很多个存储单元,叫分布式文件系统. 分布式文件系统提供了数据可扩展性,容错性,高并发. 这些是传统文件系统不具有的. ...
- Coursera, Big Data 1, Introduction (week 1/2)
Status: week 2 done. Week 1, 主要讲了大数据的的来源 - 机器产生的数据,人产生的数据(比如社交软件上的update, 一般是unstructed data), 组织产生的 ...
- 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 ...
- In-Stream Big Data Processing
http://highlyscalable.wordpress.com/2013/08/20/in-stream-big-data-processing/ Overview In recent y ...
随机推荐
- hbase参数配置优化
因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 配置优化 zo ...
- 替换空格[by Python]
题目: 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 1.使用python自带的repla ...
- day17-异常处理
今天的内容比较少,只是单独的异常处理 开始今日份整理 1.异常 定义:异常时错误发生的信号,一旦出错,并且程序没有处理这个错误,就会抛出异常,并且程序会运行中止 2.异常的分类 2.1语法错误:pyt ...
- 25 python 初学(socket,socketserver)
参考blog :www.cnblogs.com/yuanchenqi/articles/5692716.html 1. sk = socket.socket() 里面有两个重要的参数,family 和 ...
- Oracle 查询重复索引列
SELECT /*+ rule */ a .table_owner, a.table_name, a.index_owner, a.index_name, column_name_list, colu ...
- Linux内核入门到放弃-内核活动-《深入Linux内核架构》笔记
中断 中断类型 同步中断和异常.这些由CPU自身产生,针对当前执行的程序 异步中断.这是经典的中断类型,由外部设备产生,可能发生在任意时间. 在退出中断中,内核会检查下列事项. 调度器是否应该选择一个 ...
- 洛谷 P1049 装箱问题
\[传送门在这呢!!\] 题目描述 有一个箱子容量为\(V\)(正整数,\(0 \le V \le 20000\)),同时有\(n\)个物品(\(0<n \le 30\),每个物品有一个体积(正 ...
- Sql Server2008如何让外网访问自己的数据库
1.打开 Sql Server配置管理器 2.修改Sql Server网络配置,将Tcp/IP协议修改为“已启用” 3.重启Sql Server服务即可(如果不知道怎么重启Sql Server服务,重 ...
- mybatis 使用注解简化xml映射文件
目录 关于mybatis注解 初次简单使用mybatis注解示例 利用注解实现指定映射 使用注解实现表间关联(1对1) 关于mybatis注解 注解在java中特别常见,mybatis中也支持注解. ...
- Struts2拦截SQL注入
<interceptors> <!--设置超时拦截器 --> <interceptor name="sessionOut" class="c ...