您的位置:首页 > 大数据

《BIG DATA大数据日知录 架构和算法》读书笔记

2016-06-18 21:34 351 查看
摘要: 深入浅出不敢苟同,面面俱到倒是真的,了解主流算法和行业趋势还是可以翻翻的,个人体会,看完后只记住一些概念,无它

1.数据分片和路由

Hash

Hash

H(Key) = hash(key) mod K

虚拟桶(Virtual Buckets)

先hash到桶,在Hash,多加一层Hash便于扩展

一致性Hash

分布式Hash表(DHT),P2P对等网络,构成环,节点加入和离开自动调整

范围

如HBase中的LSM树

2.数据复制和一致性

基本原则

CAP(强一致性、可用性和分区容忍性),CP、AP,涉及到网络分区的(P),CAP不可兼得

ACID(原子、一致、隔离、持久)

BASE(基本可用B允许偶尔失败、软状态Soft State、最终一致性Eventual Consistency)

BASE原则是牺牲一致性达到高可用

幂等性(f(f(x)) = f(x)),反复调用,状态正确

一致性模型

强一致性

最终一致性,一个时间窗口内数据允许不一致

因果一致性

副本更新策略
*

一致性协议

两阶段提交协议(2PC)

向量时钟(Vector Clock)

RWN协议(成功读取R + 成功写入W > 数据备份数N)

Paxos协议

安全、可用

副本状态机、Log

Proposer、Acceptor、Learner

Raft协议

可理解、确定

3.常用算法和数据结构

Bloom Filter布隆过滤器

用位表示元素是否存在,1到多个独立的hash,空间效率极高

改进,加入计数,用于删除成员

Skip List跳跃表

可替代平衡二叉树,O(Log(n))

LSM树

大量随机写,转化为批量顺序写

Merkle哈希树

层级的hash树

快速定位数据变化部分

比特币

Snappy和LZSS压缩算法

Cuckoo哈希

采用交换解决hash冲突

4.集群资源管理和调度

要解决的基本问题

资源异质性、工作负载异质性,即组成元素差异较大

数据局部性

抢占式调度和非抢占式调度

资源分配粒度,Job还是Task

Starvation和Dead Lock

资源隔离

资源管理和调度泛型

集中式调度器、Borg

两级调度器,mesos、YARN

状态共享调度器、Omega

Mesos

YARN

RM,资源管理器,Resource Manager

AM,作业的应用服务器,Application Manager

NM,每个机器的节点服务器,Node Manager

5.分布式协调系统

Chubby,Google

基于Paxos一致性协议

ZooKeeper

可扩展、高吞吐、分布式协调系统

应用场景:领导选举、配置管理、组成员管理、任务分配、锁管理

HBase、Storm、Solr、Kafka...

6.分布式通信

序列化、反序列化

Protocol Buffer

Thrift

Avro,json定义schema

消息队列

Kafka

多播通信(Application-Level Multi-broadcast)

Gossip协议,Epidemic Protocol感染协议,如Cassandra维护机器节点状态

7.数据通道

Log采集

Chukwa,基于Hadoop

Scribe,Facebook

数据总线,数据变化通知通道,一般基于数据库日志挖掘

Databus、LinkedIn

Wormhole、Facebook

数据导入导出

Sqoop,hadoop和其他关系或者nosql之前的导入导出

8.分布式文件系统

GFS,Google

Colossus,下一次GFS

HDFS,Hadoop

HayStack,对象存储系统,Facebook

Erasure Code 纠删码

减少数据备份,提供可靠性

Reed-Solomon编码

LRC编码

HDFS-RAID架构

9.内存kv数据库

RAMCloud

Redis

MemBase,CouchBase

10.列数据库

BigTable

PNUTS

MegaStore

Spanner

BigTable在跨行、跨表的强一致性需求场景表现不佳,MegaStore一定程度上缓解,但是写性能不佳,Spanner进一步升级,支持类SQL和事务

11.大规模批处理系统

MapReduce

求和,Summarization Pattern

过滤,Filtering Pattern,top10等

组织数据,Data Organization Pattern,分片、排序

Join模式,Join Pattern,Reduce-Side、Map-Side Join

DAG计算模型

Dryad,微软

FlumeJava,Google

Tez,Apache

12.流式计算

架构

主从,Store

P2P,S4

Samza

13.交互式数据分析

Hive系,Facebook

SQL-on-Hadoop

耦合Hadoop导致效率低下

StingerIntiative,改进Hive

Shark系

基于Spark

Dremel系,需要关注

Dremel、PowerDrill、Impala、Presto

混合

Hadoop DB

14.图数据库:架构和算法

图挖掘问题

PageRank计算

单源最短路径

二部图最大匹配

在线

TAO, Facebook

离线

Pregel,Google

Giraph,基于Hadoop的开源版本

GraphChi

PowerGraph

15.机器学习:泛型和架构

概念

监督学习,分类、回归

非监督学习,聚类

分布式学习泛型

同步泛型

异步泛型

部分同步泛型

计算模型

mapreduce迭代计算模型

BSP,整体同步并行计算

SSP,部分同步

架构

Hadoop

利用平台,Oryx Cloudera, Mahout Apache

改造平台,Twister, Haloop

Spark及MLBase
*

Parameter Server

DistBelief

Petuum

16.机器学习:分布式算法

计算广告

逻辑回归

并行随机梯度下降

批学习并行逻辑回归

推荐系统

矩阵分解

ALS-WR算法

并行ALS-WR算法

搜索引擎

机器学习排序

LambdaMART

分布式LambdaMART

自然语言处理

文档相似性计算

社交挖掘

谱聚类

并行谱聚类

深度学习

DistBelief

17.增量计算

Percolator

Kineograph

DryadInc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: