大数据杂谈

最近忙于搬家,买车,保险等杂事,讲座听得少,只是听了两个中文的:喜马拉雅的创始人于建军在InnoSpring分享喜马拉雅的心得,以及coursera的董飞(知乎:董老师)在Stanford分享大数据相关的主题。

是的,这些活动都是中文的。而且,只要你加入当地的一些技术群(比如JaywSalon),再关注一些公众号(比如StanfordACSSSS - 斯坦福中国人联合会,ACE_Berkeley - ACE伯克利华人创业协会),基本上,中文的技术分享一周能有个好几次。难怪最近池大参加硅谷这边一个高逼格的会议,抵达后的在朋友圈惊呼:「。。。到处都是华人和汉字。。。看来世界被华人占领是迟早的」。

言归正传。大数据这词热了好几年,其核心无非就是几点:在互联网用户基数越来越大的情况下,海量数据(实时数据,历史数据)如何有效存储?存储之后如何利用(实时分析,非实时分析)?如何通过历史数据推测未来(个性化推荐,定制化服务)?

海量数据的存储,托google的GFS paper的福,诞生了HDFS。算法的力量解放了廉价机器和普通硬盘的能力,使得互联网公司可以不走银行证券业(它们应该是Big Data的鼻祖)的老路,使用昂贵的SAN,而是通过算法将数据放置于普通的PC服务器上,分布式存储。

分布式的海量数据的运算和分析,托google的map reduce paper的福,诞生了Hadoop(以及构建其上的pig - data analyzing, hive - sql-like warehouse等应用)。一个大任务被切分成多个小任务,分布在不同的节点计算,然后汇总。

由于大数据的存储和运算都是分布式完成的,而任何一个分布式系统,最头疼的事情就是synchronization,而synchronization的核心是atomic operation,我们知道,单机的atomic operation一般基于CPU本身提供的CAS(Compare and Swap)指令,而分布式的atomic operation只能依赖于messaging。一个message要准确无误地传递给系统的每个节点是件很困难(难点在高效)的事情。如果这个问题解决不好,那么大数据领域的很多应用都会存在潜在问题,于是Zookeeper应运而生。Zookeeper提供分布式的atomic operation,可以用于存储统一的配置 [1],选举master等等。我们知道,分布式系统总归需要局部(比如skype的supernode)或者全局的master(如OSPF的master),来做一些统筹的事情(包括但不限于reduce),而master往往是个单点,为了避免单点故障,实现high availability,n+m cluster和lead election必不可少。所以,Zookeeper是大数据生态圈的关键一环。

对于计算资源而言,以硬件服务器为单位的粒度显然太大,n个物理node如果隔离和调度合理,可能可以同时处理远大于n的任务。但往往任务和任务的运行时不尽相同(甚至冲突),用VM做隔离,磁盘和CPU的额外损耗不小,且受限于硬件能力,scale还做不大;同时VM的硬伤是elasticity,资源的切分一旦确定,修改的代价不小。为了适应计算上elasticity,最近两年在整个生态圈上又出现了新的资源管理和调度系统,如mesos,yarn。mesos使用Zookeeper做lead election,所有计算资源上运行slave,向master汇报资源状态,然后master将这些资源schedule到各个注册在master上的framework,framework再进行细粒度的task scheduling,最终,task在若干个slave上的executor里执行。Mesos里默认使用container来切分资源,粒度完全由task的大小决定,非常灵活。当然,executor也可以是docker。

解决了存储,运算,configuration/synchronization/HA,scheduling的问题后,"OS"级别的事情就差不多了,剩下的就是application。前面提到的pig,hive,以及后来居上意欲(局部)取代hadoop的spark,等等,构成了一个巨大的大数据生态系统(从类比操作系统的角度看):

如果说今天的大多数应用软件开发者主要还工作在linux stack上,跟从CPU/memory起一直到framework级别的软件打交道;未来,整个stack则完全不同,也许应用开发者要逐渐切换技能栈了。系统软件工程师则可以略微高枕无忧,毕竟driver还要写,kernel bug还要fix,networking总得有人做。大数据生态圈的砖瓦还是linux,TCP/IP这些基础组件。

不过,就internet的现状来说,应用软件工程师更容易成为那个站在风口的猪。对于搭好梯子,累好砖瓦,供猪站在风口上的系统软件工程师来说,只能哀叹一句:「遍身罗绮者,不是养蚕人」。

以上是董老师的讲座主题浓缩及我个人的一些总结,草草而作。董老师将其整个讲座的slides + 解说放在了他的知乎专栏「董老师在硅谷」,点击「阅读原文」可以查看详细内容。如果你想联系他,可以在知乎上查找「董飞」,linkedIn搜’Fei Dong',都是那个标注着cousera工程师,头像比我略帅的家伙。


1. 简单的配置,而非大量的数据

原文发布于微信公众号 - 程序人生(programmer_life)

原文发表时间:2015-01-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

程序员如何快速适应新工作

一、要谦虚爱学习 对自己不熟悉的工具和方法要抱有谦虚的态度。新的工作就意味着学习新的东西。“知之为知之,不知为不知”,对自己不知道的东西要谦虚和诚实。并且要记住...

3577
来自专栏腾讯大讲堂的专栏

谈谈微信红包海量运营--发10亿个红包难在哪里?

编者按:2015年微信红包书写了一个全新奇迹——除夕摇一摇总次数110亿次,峰值1400万次/秒,8.1亿次每分钟,微信红包收发达10.1亿次!惊人数字的背后,...

2077
来自专栏大数据文摘

表情当密码,这事靠谱么?

26310
来自专栏BIT泽清

收起装13的苹果审核指南,就告诉你到底怎么能过!

本文为作者在遍览诸多苹果商店审核指南文后愤然写下,以最容易被拒的地方房卡麻将闲游(无版权号)移动端手游APP为例。

2555
来自专栏开源项目

9款开源教学管理系统 | 码云周刊第 73 期

5634
来自专栏云加头条

云端架构师养成之三:微信也在用的消息队列服务

昨天(6月8日),腾讯云技术社区推出的《云端架构师养成系列分享》迎来了第三期,主角是腾讯云的消息服务。本期邀请到的嘉宾是腾讯云资深产品经理张浩和后台开发工程师张...

3818
来自专栏维恩的派VNPIE

2018年vn.py项目计划(下)

2017年完成了大部分计划中的上层应用模块开发,剩余部分将在今年上半年加速推进,争取早日发布v2.0稳定版,为量化交易员提供一套完整成熟的交易系统解决方案。 D...

4598
来自专栏Java社区

这也许是史上最有趣的破解软件合集

2432
来自专栏飞总聊IT

从GitLab事件谈我的经历

先上个图,给各位程序猿们拜个年 ? 悲剧年年有,今年到GitLab家。著名的GitLab这几天在Tech界登上了头条,登上的原因是因为运维人员使用了rm -rf...

39110
来自专栏机器人网

Roombot:变形家具与物联网机器人设备的未来

瑞士洛桑理工学院(EPFL)的研究人员和瑞士国家竞争力研究中心(NCCR)共同开发了一款称为Roombot的模块机器人,由多个此种机器人组成的自配置模块化机器人...

3234

扫码关注云+社区