看了那么多高估值公司,很多人都觉得非常疯狂,这是不是很大泡沫了,泡沫是不是要破了,是很多人的疑问。我认为在硅谷这个充满梦想的地方,投资人鼓励创业者 大胆去做同样也助长了泡沫,很多项目在几个月的时间就会估值翻2,3倍,如Uber,Snapchat上我也惊讶于他们的巨额融资规模。那么这张图就是讲 “新兴技术炒作”周期,把各类技术按照技术成熟度和期望值分类,这是硅谷创业孵化器YCombinator 课程How to start a startup(How to Start a Startup) 提到。创新萌芽Innovation Trigger”、“期望最顶点Peak ofInflated Expectation”、“下调预期至低点Trough of Disillusion”、“回归理想Slope ofEnlightenment”、“生产率平台Plateau of Productivity”,越往左,技术约新潮,越处于概念阶段;越往右,技术约成熟,约进入商业化应用,发挥出提高生产率的效果。纵轴代表预期值,人 们对于新技术通常会随着认识的深入,预期不断升温,伴之以媒体炒作而到达顶峰;随之因技术瓶颈或其他原因,预期逐渐冷却至低点,但技术技术成熟后,期望又 重新上升,重新积累用户,然后就到了可持续增长的健康轨道上来。今年和去年的图对比显示,物联网、自动驾驶汽车、消费级3D打印、自然语言问答等概念正在 处于炒作的顶峰。而大数据已从顶峰滑落,NFC和云计算接近谷底。未来,高科技创业的趋势是什么?
我 先提一个最近看的一部电影《Imitation Game》,讲计算机逻辑的奠基者艾伦图灵(计算机届最高奖以他命名)艰难的一生,他当年为破译德军密码制作了图灵机为二战胜利作出卓越贡献,挽回几千万 人的生命,可在那个时代因为同性恋被判化学阉割,自杀结束了短暂的42岁生命。他的一个伟大贡献就是在人工智能的开拓工作,他提出图灵测试(Turing Test),测试某机器是否能表现出与人等价或无法区分的智能。我们现在回到今天,人工智能已经有了很大进步,从专家系统到基于统计的学习,从支持向量机 到神经网络深度学习,每一步都带领机器智能走向下一个阶梯。在Google资深科学家吴军博士(数学之美,浪潮之巅作者),他提出当前技术发展三个趋势, 第一,云计算和和移动互联网,这是正在进行时;第二,机器智能,现在开始发生,但对社会的影响很多人还没有意识到;第三,大数据和机器智能结合,这是未来 时,一定会发生,有公司在做,但还没有太形成规模。他认为未来机器会控制98%的人,而现在我们就要做个选择,怎么成为剩下的2%?【独家】吴军:未来机 器将会控制98%的人 李开复在2015年新年展望也提出未来五年物联网带来庞大创业机会。
为什么大数据和机器智能结合的未来一定会到来?
其 实在工业革命之前(1820年),世界人均GDP在1800年前的两三千年里基本没有变化,而从1820年到2001年的180年里,世界人均GDP从原 来的667美元增长到6049美元。由此足见,工业革命带来的收入增长的确是翻天覆地的。这里面发生了什么,大家可以去思考一下。但人类的进步并没有停止 或者说稳步增长,在发明了电力,电脑,互联网,移动互联网,全球年GDP增长 从万分之5到2%,信息也是在急剧增长,根据计算,最近两年的信息量是之前30年的总和,最近10年是远超人类所有之前累计信息量之和。在计算机时代,有 个著名的摩尔定律,就是说同样成本每隔18个月晶体管数量会翻倍,反过来同样数量晶体管成本会减半,这个规律已经很好的match了最近30年的发展,并 且可以衍生到很多类似的领域:存储,功耗,带宽,像素。而下面这个是冯诺伊曼,20世纪最重要的数学家之一,在现代计算机、博弈论和核武器等诸多领域内有 杰出建树的最伟大的科学全才之一。他提出(技术)将会逼近人类历史上的某种本质的奇点,在那之后 全部人类行为都不可能以我们熟悉的面貌继续存在。这就是著名的奇点理论。目前会越来越快指数性增长,美国未来学家Ray Kurzweil称人类能够在2045年实现数字化永生,他自己也创办奇点大学,相信随着信息技术、无线网、生物、物理等领域的指数级增长,将在2029 年实现人工智能,人的寿命也将会在未来15年得到大幅延长。
国外值得关注的大数据公司都有哪些?国内又有哪些?
这 是2014年总结的Big Data公司列表,我们大致可以分成基础架构和应用,而底层都是会用到一些通用技术,如Hadoop,Mahout,HBase,Cassandra,我 在下面也会涵盖。我可以举几个例子,在分析这一块,cloudera,hortonworks,mapr作为Hadoop的三剑客,一些运维领 域,mangodb,couchbase都是nosql的代表,作为服务领域AWS和Google BigQuery剑拔弩张,在传统数据库,Oracle收购了MySQL,DB2老牌银行专用,Teradata做了多年数据仓库。上面的Apps更多, 比如社交消费领域Google, Amazon, Netflix, Twitter, 商业智能:SAP,GoodData,一些在广告媒体领域:TURN,Rocketfuel,做智能运维sumologic等等。去年的新星 Databricks 伴随着Spark的浪潮震撼Hadoop的生态系统。
对 于迅速成长的中国市场,大公司也意味着大数据,BAT三家都是对大数据的投入也是不惜余力,我5年前在Baidu的的时候,就提出框计算的东东,最近两年 成立了硅谷研究院,挖来Andrew Ng作为首席科学家,研究项目就是百度大脑,在语音,图片识别大幅提高精确度和召回率,最近还做了个无人自行车非常有趣。腾讯作为最大的社交应用对大数据 也是情有独钟,自己研发了C++平台的海量存储系统。淘宝去年双十一主战场,2分钟突破10亿,交易额突破571亿,背后是有很多故事,当年在百度做 Pyramid(按Google三辆马车打造的金字塔三层分布式系统)有志之士,继续在OceanBase创造神话。而阿里云当年备受争议,马云也怀疑是 不是被王坚忽悠,最后经历了双十一的洗礼证明了OceanBase和阿里云的靠谱。小米的雷军对大数据也是寄托厚望,一方面这么多数据几何级数增长,另一 方面存储带宽都是巨大成本,没价值就真破产。
与大数据技术关系最紧密的就是云计算,您曾在Amazon 云计算部门工作过,能否简单介绍一下亚马逊的Redshift框架吗?
本 人在Amazon 云计算部门工作过,所以还是比较了解AWS,总体上成熟度很高,有大量startup都是基于上面开发,比如有名的 Netflix,Pinterest,Coursera。Amazon还是不断创新,每年召开reInvent大会推广新的云产品和分享成功案例,在这里 面我随便说几个,像S3是简单面向对象的存储,DynamoDB是对关系型数据库的补充,Glacier对冷数据做归档处理,Elastic MapReduce直接对MapReduce做打包提供计算服务,EC2就是基础的虚拟主机,Data Pipeline 会提供图形化界面直接串联工作任务。
Redshift, 它是一种(massively parallel computer)架构,是非常方便的数据仓库解决方案,就是SQL接口,跟各个云服务无缝连接,最大特点就是快,在TB到PB级别非常好的性能,我在工 作中也是直接使用,它还支持不同的硬件平台,如果想速度更快,可以使用SSD的,当然支持容量就小些。
Hadoop是现今最流行的大数据技术,在它出现的当时,是什么造成了Hadoop的流行?当时Hadoop具有哪些设计上的优势?
看 Hadoop从哪里开始的,不得不提Google的先进性,在10多年前,Google出了3篇paper论述分布式系统的做法,分别是GFS, MapReduce, BigTable,非常NB的系统,但没人见过,在工业界很多人痒痒的就想按其思想去仿作,当时Apache Nutch Lucene的作者Doug Cutting也是其中之一,后来他们被Yahoo收购,专门成立Team去投入做,就是Hadoop的开始和大规模发展的地方,之后随着Yahoo的衰 落,牛人去了Facebook, Google, 也有成立了Cloudera, Hortonworks等大数据公司,把Hadoop的实践带到各个硅谷公司。而Google还没有停止,又出了新的三辆马车,Pregel, Caffeine, Dremel, 后来又有很多步入后尘,开始新一轮开源大战。
为 啥Hadoop就比较适合做大数据呢?首先扩展很好,直接通过加节点就可以把系统能力提高,它有个重要思想是移动计算而不是移动数据,因为数据的移动是很 大的成本需要网络带宽。其次它提出的目标就是利用廉价的普通计算机(硬盘),这样虽然可能不稳定(磁盘坏的几率),但通过系统级别上的容错和冗余达到高可 靠性。并且非常灵活,可以使用各种data,二进制,文档型,记录型。使用各种形式(结构化,半结构化,非结构化所谓的schemaless),在按需计 算上也是个技巧。
围绕在Hadoop周围的有哪些公司和产品?
提 到Hadoop一般不会说某一个东西,而是指生态系统,在这里面太多交互的组件了,涉及到IO,处理,应用,配置,工作流。在真正的工作中,当几个组件互 相影响,你头疼的维护才刚刚开始。我也简单说几个:Hadoop Core就三个HDFS,MapReduce,Common,在外围有NoSQL: Cassandra, HBase, 有Facebook开发的数据仓库Hive,有Yahoo主力研发的Pig工作流语言,有机器学习算法库Mahout,工作流管理软件Oozie,在很多 分布式系统选择Master中扮演重要角色的Zookeeper。
能否用普通人都能理解的方式解释一下Hadoop的工作原理?
我 们先说HDFS,所谓Hadoop的分布式文件系统,它是能真正做到高强度容错。并且根据locality原理,对连续存储做了优化。简单说就是分配大的 数据块,每次连续读整数个。如果让你自己来设计分布式文件系统,在某机器挂掉还能正常访问该怎么做?首先需要有个master作为目录查找(就是 Namenode),那么数据节点是作为分割好一块块的,同一块数据为了做备份不能放到同一个机器上,否则这台机器挂了,你备份也同样没办法找到。 HDFS用一种机架位感知的办法,先把一份拷贝放入同机架上的机器,然后在拷贝一份到其他服务器,也许是不同数据中心的,这样如果某个数据点坏了,就从另 一个机架上调用,而同一个机架它们内网连接是非常快的,如果那个机器也坏了,只能从远程去获取。这是一种办法,现在还有基于erasure code本来是用在通信容错领域的办法,可以节约空间又达到容错的目的,大家感兴趣可以去查询。
接 着说MapReduce,首先是个编程范式,它的思想是对批量处理的任务,分成两个阶段,所谓的Map阶段就是把数据生成key, value pair, 再排序,中间有一步叫shuffle,把同样的key运输到同一个reducer上面去,而在reducer上,因为同样key已经确保在同一个上,就直 接可以做聚合,算出一些sum, 最后把结果输出到HDFS上。对应开发者来说,你需要做的就是编写Map和reduce函数,像中间的排序和shuffle网络传输,容错处理,框架已经 帮你做好了。
MapReduce模型有什么问题?
第一:需要写很多底层的代码不够高效,第二:所有的事情必须要转化成两个操作Map/Reduce,这本身就很奇怪,也不能解决所有的情况。
Spark从何而来?Spark相比于Hadoop MapReduce设计上有什么样的优势?
其 实Spark出现就是为了解决上面的问题。先说一些Spark的起源。发自 2010年Berkeley AMPLab,发表在hotcloud 是一个从学术界到工业界的成功典范,也吸引了顶级VC:Andreessen Horowitz的 注资. 在2013年,这些大牛(Berkeley系主任,MIT最年轻的助理教授)从Berkeley AMPLab出去成立了Databricks,引无数Hadoop大佬尽折腰,它是用函数式语言Scala编写,Spark简单说就是内存计算(包含迭代 式计算,DAG计算,流式计算 )框架,之前MapReduce因效率低下大家经常嘲笑,而Spark的出现让大家很清新。 Reynod 作为Spark核心开发者, 介绍Spark性能超Hadoop百倍,算法实现仅有其1/10或1/100。在去年的Sort benchmark上,Spark用了23min跑完了100TB的排序,刷新了之前Hadoop保持的世界纪录。
Linkedin都采用了哪些大数据开源技术?
在 Linkedin,有很多数据产品,比如People you may like, job you may be interested, 你的用户访问来源,甚至你的career path都可以挖掘出来。那么在Linkedin也是大量用到开源技术,我这里就说一个最成功的Kafka,它是一个分布式的消息队列,可以用在 tracking,机器内部metrics,数据传输。数据在前端后端会经过不同的存储或者平台,每个平台都有自己的格式,如果没有一个unified log,会出现灾难型的O(m*n)的数据对接复杂度,如果你设定的格式一旦发生变化,也是要修改所有相关的。所以这里提出的中间桥梁就是Kafka,大 家约定用一个格式作为传输标准,然后在接受端可以任意定制你想要的数据源(topics),最后实现的线性的O(m+n)的复杂度。对应的设计细节,还是 要参考设计文档 Apache Kafka 这里面主要作者Jay Kreps,Rao Jun 出来成立了Kafka作为独立发展的公司。
在 Linkedin,Hadoop作为批处理的主力,大量应用在各个产品线上,比如广告组。我们一方面需要去做一些灵活的查询分析广告主的匹配,广告预测和 实际效果,另外在报表生成方面也是Hadoop作为支持。如果你想去面试Linkedin 后端组,我建议大家去把Hive, Pig, Azkaban(数据流的管理软件),Avro 数据定义格式,Kafka,Voldemort 都去看一些设计理念,linkedin有专门的开源社区,也是build自己的技术品牌。Blog | LinkedIn Data Team
如果想从事大数据方面的工作,是否可以推荐一些有效的学习方法?有哪些推荐的书籍?
我 也有一些建议,首先还是打好基础,Hadoop虽然是火热,但它的基础原理都是书本上很多年的积累,像算法导论,Unix设计哲学,数据库原理,深入理解 计算机原理,Java设计模式,一些重量级的书可以参考。Hadoop 最经典的the definitive guide, 我在知乎上也有分享有什么关于 Spark 的书推荐? - 董飞的回答
其次是选择目标,如果你像做数据科学家,我可以推荐coursera的data science课程,通俗易懂Coursera - Specializations
学 习Hive,Pig这些基本工具,如果做应用层,主要是把Hadoop的一些工作流要熟悉,包括一些基本调优,如果是想做架构,除了能搭建集群,对各个基 础软件服务很了解,还要理解计算机的瓶颈和负载管理,Linux的一些性能工具。最后还是要多加练习,大数据本身就是靠实践的,你可以先按API写书上的 例子,能够先调试成功,在下面就是多积累,当遇到相似的问题能找到对应的经典模式,再进一步就是实际问题,也许周边谁也没遇到,你需要些灵感和网上问问题 的技巧,然后根据实际情况作出最佳选择。
谈一谈Coursera在大数据架构方面和其他硅谷创业公司相比有什么特点?是什么原因和技术取向造成了这些特点?
首 先介绍一下Coursera, 作为MOOC(大型开放式网络课程)中领头羊,2012年由Stanford大学的Andrew和Daphne两名教授创立,目前160+员工,原 Yale校长担任CEO。它的使命universal access to world's best education。很多人问我为什么加入,我还是非常认可公司的使命。我相信教育可以改变人生,同样我们也可以改变教育。能不能把技术跟教育结合起来, 这是一个很有趣的话题。里面有很多可以结合,比如提供高可靠平台支持大规模用户在线并发访问,利用数据挖掘分析学生行为做个性化课程学习,并提高课程满意 度,通过机器学习识别作业,互相评判,用技术让人们平等便捷的获取教育服务。
Coursera 作为创业公司,非常想保持敏捷和高效。从技术上来说,所有的都是在基于AWS开发,可以想像随意启动云端服务,做一些实验。我们大致分成产品组,架构组, 和数据分析组。我把所有用到的开发技术都列在上面。因为公司比较新,所以没有什么历史遗留迁移的问题。大家大胆的使用Scala作为主要编程语言,采用 Python作为脚本控制,比如产品组就是提供的课程产品,里面大量使用Play Framework,Javascript的backbone作为控制中枢。而架构组主要是维护底层存储,通用服务,性能和稳定性。我在的数据组由10多 人构成,一部分是对商业产品,核心增长指标做监控,挖掘和改进。一部分是搭建数据仓库完善跟各个部门的无缝数据流动,也用到很多技术例如使用 Scalding编写Hadoop MapReduce程序,也有人做AB testing框架, 推荐系统,尽可能用最少人力做影响力的事情。其实除了开源世界,我们也积极使用第三方的产品,比如sumologic做日志错误分析,Redshift作 为大数据分析平台,Slack做内部通讯。而所有的这些就是想解放生产力,把重心放到用户体验,产品开发和迭代上去。
Coursera 是一个使命驱动的公司,大家不是为了追求技术的极致,而是为了服务好老师,同学,解决他们的痛点,分享他们的成功。这点是跟其他技术公司最大的区别。从一 方面来说,现在还是早期积累阶段,大规模计算还没有来临,我们只有积极学习,适应变化才能保持创业公司的高速成长。