deep learning course @ stanford: https://www.youtube.com/watch?v=PySo_6S4ZAg ml course by Andrew Ng: https://www.youtube.com/watch?v=PySo_6S4ZAg Both are for free, just enjoy it and take your time…
做YARN做了N年了,也想着存算分离吧?关于HDFS的存储有联邦存储和异构存储策略等内容,存算分离又算一个。存算分离,活生生的例子是KAFKA与PULSA的变化。KAFKA历史悠久,体量大的公司要替换很难,另辟蹊径的是,使用不同服务使其兼容kafka的rpc协议。协议一直是这个问题的根源,要实现存算分离,就要实现相应服务的协议,S3由于体量巨大,一直都是协议标准之一,所以首当其冲。 数据湖,一般结合现有的object store服务,提供基础的存储服务。同理,对于CK等服务,在OSS上实现相应的协议GATEWAY即可替换CK的本地存储,如MINIO。 存算分离有没有性能问题?一方面比较考验的是网络IO,所以局域网需要有理想的网络环境,例如50GB以上带宽。另一方面性能很受本地服务的缓存机制的影响,是否每次请求都重新从OSS拉取一遍数据。对于数据服务类的情况。例如一次查询10GB级的大表,网络不好的话,带宽占用、网络抖动等问题就会出现,所以本地磁盘优先原则依然是适用。 存储操作本质上可以分为两大类:一个operation就是一个对象全量的操作,类似对象存储的put。另一个是append log,不断追加:可以像kafka一样append本地log,也可以用bookeeper做分布式log。 后续一起看看存储相关的底层原理:TODO
午间休息,看了google面试官对一个Facebook工程师的面试,处理一个字符串是否包含特定子串的问题。 视频见 https://www.youtube.com/watch?v=PIeiiceWe_w 过程 面试者来自facebook,小年轻。面试官是精神抖擞的大嘴哥。面试者实时在google doc上表达对题目的理解,伪代码,编码。给出解决方案,给出一个是最简单的方案,另一个是aho算法,做出了对比。所以表达清楚一个方案,要多给1个方案,没有对比,哪有更深的印象? 面试者用手写图例的方式,表达了aho算法,连初次认识这个算法的我都能略知一二,所以表达的方式很重要,要借助工具。 之后再完全手写代码,不借助ide,老外都这么牛的吗? 最后再对整个过程做时间复杂度和空间复杂度的分析。 整个过程面试者的精神状态由理解,慢慢到他自己说的comfortable。所以往往随着问题的深入,你的体验不是更害怕,而是更释然、轻松。 后续 Follow到这个工程师的github账号 https://github.com/SecondThread 与 twiter,以及个人网站。 外国人的个人站点很酷,是自己做的一些网页游戏,和国人不同,国人写文章托管要考虑平台seo,自建站考虑自己做seo,出发点不同。Not just for fun. 浏览他的twitter,发现平时有在做codeforces竞赛。这个平台比国内的leetcode,会更纯粹一些。 几个体会 编程要成为兴趣,兴趣才能成为动力,才会做更有意思的事情,你根本不用担心35岁。 顶级公司的面试更注重实操,考察算法与硬编码等基本功,过程中也体现了知识储备和逻辑思维。 个人站点对国内而言,大多是博客。但国外很有趣,是拿来做交流,不限于博客,for fun。
Attic 在wikipedia中译为“阁楼”。 近两年进入attic的apache项目有不少:sqoop,ambri… 什么时候项目会进入attic? PMC决定不在维护了,或者ASF建议PMC将项目移进attic。 新技术不断涌现,替代者的出现是这些项目逐渐成为历史的直接原因。例如sqoop被datax、flink或spark(seatunnel)数据集成平台、kafka connect所替代。 结语 花无百日红,软件项目的生命周期也一样。优胜劣汰,自然社会进化的亘古不变的规律。