1
puncsky 2015-06-03 04:29:31 +08:00
AMPLab 新出的 Spark 教程 https://www.edx.org/course/introduction-big-data-apache-spark-uc-berkeleyx-cs100-1x 不知道怎么样,但是是官方新出的,昨天才开课,还有certificate可以拿
The Practice of Cloud System Administration, Designing and Operating Large Distributed Systems 大数据日知录 虽然都是翻译货,但是可以作为 roadmap Cloud Design Patterns by MSDN 另外,要勤快地看各种 engineering blog, slides on SlideShare, technical talks, papers(谷歌四大,Amazon Dynamo, 各种主流 NoSQL 的paper, etc)。大概的做法是,看到一个流行的 app,比如 Pinterest, 搜与之相关的资料:Pinterest Architecture, Scale Pinterest 把 InfoQ 设为首页 关键还是要多问自己问题,比如:手机CPU/memory/storage这么小,视频是怎么 stream 的?然后就搜到了 Http Live Streaming。Facebook 的关系这么多是怎么做 cache 为读做优化的?然后就搜到了 TAO。relational DB 数据太大一台machine放不下怎么办?就搜到了 DB Proxy, Sharding vs. Clustering... |
2
puncsky 2015-06-03 04:44:40 +08:00
微观角度往上上来讲,就是关注 Concurrency, communication, data structures for big data, storage indexing and layout, etc.
建议从 Java Concurrency 开始看,因为它的抽象层级恰到好处,资料很多适合搜索自学。 Storage 从小处看起,比如 Storage-based KV store 看 Bitcask, LevelDB,tree-based vs hash-based indexing Communication 比较 TCP, UDP, HTTP, RESTful, RPC(Protobuf/Thrift/Avro),选择他们某一个有哪些 Tradeoff 组织到一起东西就复杂了,什么是CAP,BASE,如何取舍,有哪些一致性协议,找数据路由怎么做。。。 我觉得大数据分布式系统计算问题的本质就是,机器 CPU/Memory/Storage/network bandwidth 有限,而且不靠谱,在数据量太大不得不分开算,还要防止机器和人为的错误的情况下,如何计算的问题。 |
3
modkzs OP @puncsky 之前在网上寻找过关于入门的建议,一般分为2种,一种建议从hadoop,hbase这种已有框架入手开始学习;另一种是从TCP,UDP等基础开始。作为新手,从高层开始还是底层开始比较好呢?
|
4
puncsky 2015-06-03 10:51:12 +08:00
@modkzs 该学的都得学,不分上层或者下层。。。最重要的是,先找 sketch,然后再逐步填充细节,循环深入,每一次重复都有新的体会。所谓 sketch 就是找这一层问题抽象的重点,比如 Hadoop, HBase 新手入门 不是去配机器,而是去了解 Hadoop 的重点在于 master/slave + mapreduce ,HBase 的重点在于 LSM Tree + Column family data model
|
5
puncsky 2015-06-03 10:52:55 +08:00
找 sketch 也是一门学问,要看不同人用不同视角写的材料、video、slides 才能够得到你心目中的 sketch
|