⑴ 详解大数据的思想如何形成与其价值维度
详解大数据的思想如何形成与其价值维度
比如经济上,黄仁宇先生对宋朝经济的分析中发现了“数目字管理”(即定量分析)的广泛应用(可惜王安石变法有始无终)。又如军事,“向林彪学习数据挖掘”的桥段不论真假,其背后量化分析的思想无疑有其现实基础,而这一基础甚至可以回推到2000多年前,孙膑正是通过编造“十万灶减到五万灶再减到三万灶”的数据、利用庞涓的量化分析习惯对其进行诱杀。
到上世纪50-60年代,磁带取代穿孔卡片机,启动了数据存储的革命。磁盘驱动器随即发明,它带来的最大想象空间并不是容量,而是随机读写的能力,这一下子解放了数据工作者的思维模式,开始数据的非线性表达和管理。数据库应运而生,从层次型数据库(IBM为阿波罗登月设计的层次型数据库迄今仍在建行使用),到网状数据库,再到现在通用的关系数据库。与数据管理同时发源的是决策支持系统(DSS),80年代演变到商业智能(BI)和数据仓库,开辟了数据分析——也就是为数据赋予意义——的道路。
那个时代运用数据管理和分析最厉害的是商业。第一个数据仓库是为宝洁做的,第一个太字节的数据仓库是在沃尔玛。沃尔玛的典型应用是两个:一是基于retaillink的供应链优化,把数据与供应商共享,指导它们的产品设计、生产、定价、配送、营销等整个流程,同时供应商可以优化库存、及时补货;二是购物篮分析,也就是常说的啤酒加尿布。关于啤酒加尿布,几乎所有的营销书都言之凿凿,我告诉大家,是Teradata的一个经理编的,人类历史上从没有发生过,但是,先教育市场,再收获市场,它是有功的。
仅次于沃尔玛的乐购(Tesco),强在客户关系管理(CRM),细分客户群,分析其行为和意图,做精准营销。
这些都发生在90年代。00年代时,科研产生了大量的数据,如天文观测、粒子碰撞,数据库大拿吉姆·格雷等提出了第四范式,是数据方法论的一次提升。前三个范式是实验(伽利略从斜塔往下扔),理论(牛顿被苹果砸出灵感,形成经典物理学定律),模拟(粒子加速太贵,核试验太脏,于是乎用计算代替)。第四范式是数据探索。这其实也不是新鲜的,开普勒根据前人对行星位置的观测数据拟合出椭圆轨道,就是数据方法。但是到90年代的时候,科研数据实在太多了,数据探索成为显学。在现今的学科里,有一对孪生兄弟,计算XX学和XX信息学,前者是模拟/计算范式,后者是数据范式,如计算生物学和生物信息学。有时候计算XX学包含了数据范式,如计算社会学、计算广告学。
2008年克里斯·安德森(长尾理论的作者)在《连线》杂志写了一篇《理论的终结》,引起轩然大波。他主要的观点是有了数据,就不要模型了,或者很难获得具有可解释性的模型,那么模型所代表的理论也没有意义了。跟大家说一下数据、模型和理论。大家先看个粗糙的图。
首先,我们在观察客观世界中采集了三个点的数据,根据这些数据,可以对客观世界有个理论假设,用一个简化的模型来表示,比如说三角形。可以有更多的模型,如四边形,五边形。随着观察的深入,又采集了两个点,这时发现三角形、四边形的模型都是错的,于是确定模型为五边形,这个模型反映的世界就在那个五边形里,殊不知真正的时间是圆形。
大数据时代的问题是数据是如此的多、杂,已经无法用简单、可解释的模型来表达,这样,数据本身成了模型,严格地说,数据及应用数学(尤其是统计学)取代了理论。安德森用谷歌翻译的例子,统一的统计学模型取代了各种语言的理论/模型(如语法),能从英文翻译到法文,就能从瑞典文翻译到中文,只要有语料数据。谷歌甚至能翻译克莱贡语(StarTrek里编出来的语言)。安德森提出了要相关性不要因果性的问题,以后舍恩伯格(下面称之为老舍)只是拾人牙慧了。
当然,科学界不认同《理论的终结》,认为科学家的直觉、因果性、可解释性仍是人类获得突破的重要因素。有了数据,机器可以发现当前知识疆域里面隐藏的未知部分。而没有模型,知识疆域的上限就是机器线性增长的计算力,它不能扩展到新的空间。在人类历史上,每一次知识疆域的跨越式拓展都是由天才和他们的理论率先吹起的号角。
2010年左右,大数据的浪潮卷起,这些争论迅速被淹没了。看谷歌趋势,”bigdata”这个词就是那个时间一下子蹿升了起来。吹鼓手有几家,一家是IDC,每年给EMC做digitaluniverse的报告,上升到泽字节范畴(给大家个概念,现在硬盘是太字节,1000太=1拍,阿里、Facebook的数据是几百拍字节,1000拍=1艾,网络是个位数艾字节,谷歌是两位数艾字节,1000艾=1泽);一家是麦肯锡,发布《大数据:创新、竞争和生产力的下一个前沿》;一家是《经济学人》,其中的重要写手是跟老舍同着《大数据时代》的肯尼思?库克耶;还有一家是Gartner,杜撰了3V(大、杂、快),其实这3V在2001年就已经被编出来了,只不过在大数据语境里有了全新的诠释。
咱们国内,欢总、国栋总也是在2011年左右开始呼吁对大数据的重视。
2012年子沛的书《大数据》教育政府官员有功。老舍和库克耶的《大数据时代》提出了三大思维,现在已经被奉为圭臬,但千万别当作放之四海而皆准的真理了。
比如要数据全集不要采样。现实地讲,1.没有全集数据,数据都在孤岛里;2.全集太贵,鉴于大数据信息密度低,是贫矿,投入产出比不见得好;3.宏观分析中采样还是有用的,盖洛普用5000个样本胜过几百万调查的做法还是有实践意义;4.采样要有随机性、代表性,采访火车上的民工得出都买到票的结论不是好采样,现在只做固定电话采样调查也不行了(移动电话是大头),在国外基于Twitter采样也发现不完全具有代表性(老年人没被包括);5.采样的缺点是有百分之几的偏差,更会丢失黑天鹅的信号,因此在全集数据存在且可分析的前提下,全量是首选。全量>好的采样>不均匀的大量。
再说混杂性由于精确性。拥抱混杂性(这样一种客观现象)的态度是不错的,但不等于喜欢混杂性。数据清洗比以前更重要,数据失去辨识度、失去有效性,就该扔了。老舍引用谷歌PeterNovig的结论,少数高质量数据+复杂算法被大量低质量数据+简单算法打败,来证明这一思维。Peter的研究是Web文本分析,确实成立。但谷歌的深度学习已经证明这个不完全对,对于信息维度丰富的语音、图片数据,需要大量数据+复杂模型。
最后是要相关性不要因果性。对于大批量的小决策,相关性是有用的,如亚马逊的个性化推荐;而对于小批量的大决策,因果性依然重要。就如中药,只到达了相关性这一步,但它没有可解释性,无法得出是有些树皮和虫壳的因导致治愈的果。西药在发现相关性后,要做随机对照试验,把所有可能导致“治愈的果”的干扰因素排除,获得因果性和可解释性。在商业决策上也是一样,相关性只是开始,它取代了拍脑袋、直觉获得的假设,而后面验证因果性的过程仍然重要。
把大数据的一些分析结果落实在相关性上也是伦理的需要,动机不代表行为。预测性分析也一样,不然警察会预测人犯罪,保险公司会预测人生病,社会很麻烦。大数据算法极大影响了我们的生活,有时候会觉得挺悲哀的,是算法觉得了你贷不贷得到款,谷歌每调整一次算法,很多在线商业就会受到影响,因为被排到后面去了。
下面时间不多了,关于价值维度,我贴一些以前讲过的东西。大数据思想中很重要的一点是决策智能化之外,还有数据本身的价值化。这一点不赘述了,引用马云的话吧,“信息的出发点是我认为我比别人聪明,数据的出发点是认为别人比我聪明;信息是你拿到数据编辑以后给别人,而数据是你搜集数据以后交给比你更聪明的人去处理。”大数据能做什么?价值这个V怎么映射到其他3V和时空象限中?我画了个图:
再贴上解释。“见微”与“知着”在Volume的空间维度。小数据见微,作个人刻画,我曾用《一代宗师》中“见自己”形容之;大数据知着,反映自然和群体的特征和趋势,我以“见天地、见众生”比喻之。“着”推动“微”(如把人群细分为buckets),又拉动“微”(如推荐相似人群的偏好给个人)。“微”与“着”又反映了时间维度,数据刚产生时个人价值最大,随着时间decay最后退化为以集合价值为主。
“当下”和“皆明”在Velocity的时间维度。当下在时间原点,是闪念之间的实时智慧,结合过往(负轴)、预测未来(正轴),可以皆明,即获得perpetual智慧。《西游记》里形容真假孙悟空,一个是“知天时、通变化”,一个是“知前后、万物皆明”,正好对应。为达到皆明,需要全量分析、预测分析和处方式分析(prescriptiveanalytics,为让设定的未来发生,需要采取什么样的行动)。
“辨讹”和“晓意”在Variety的空间维度。基于大体量、多源异质的数据,辨讹过滤噪声、查漏补缺、去伪存真。晓意达到更高境界,从非结构数据中提取语义、使机器能够窥探人的思想境界、达到过去结构化数据分析不能达到之高度。
先看知着,对宏观现象规律的研究早已有之,大数据的知着有两个新特点,一是从采样到全量,比如央视去年“你幸福吗”的调查,是街头的采样,前不久《中国经济生活大调查》关于幸福城市排名的结论,是基于10万份问卷(17个问题)的采样,而清华行为与大数据实验室做的幸福指数(继挺兄、我、还有多位本群群友参与),是基于新浪微博数据的全集(托老王的福),这些数据是人们的自然表达(而不是面对问卷时的被动应对),同时又有上下文语境,因此更真实、也更有解释性。北上广不幸福,是因为空气还是房价或教育,在微博上更容易传播的积极情绪还是消极情绪,数据告诉你答案。《中国经济生活大调查》说“再小的声音我们都听得见”,是过头话,采样和传统的统计分析方法对数据分布采用一些简化的模型,这些模型把异常和长尾忽略了,全量的分析可以看到黑天鹅的身影,听到长尾的声音。
另一个特点是从定性到定量。计算社会学就是把定量分析应用到社会学,已经有一批数学家、物理学家成了经济学家、宽客,现在他们也可以选择成为社会学家。国泰君安3I指数也是一个例子,它通过几十万用户的数据,主要是反映投资活跃程度和投资收益水平的指标,建立一个量化模型来推知整体投资景气度。
再看见微,我认为大数据的真正差异化优势在微观。自然科学是先宏观、具体,进入到微观和抽象,这时大数据就很重要了。我们更关注社会科学,那是先微观、具体,再宏观、抽象,许小年索性认为宏观经济学是伪科学。如果市场是个体行为的总和,我们原来看到是一张抽象派的画,看不懂,通过客户细分慢慢可以形成一张大致看得懂的现实图景,不过是马赛克的,再通过微分、甚至定位个人,形成高清图。我们每一个人现在都生活在零售商的bucket中(前面说的乐购创造了这个概念),最简单的是高收入、低收入这类反映背景的,再有就是反映行为和生活方式的,如“精打细算”、“右键点击一族”(使用右键的比较techsavvy)。反过来我们消费者也希望能够获得个性化的尊崇,Nobody wants to be nobody today。
了解并掌握客户比以往任何时候都更重要。奥巴马赢在大数据上,就是因为他知道西岸40-49岁女性的男神是乔治·克鲁尼,东岸同样年龄段女性的偶像则是莎拉·杰西卡·帕克(《欲望都市》的主角),他还要更细分,摇摆州每一个郡每一个年龄段每一个时间段在看什么电视,摇摆州(俄亥俄)1%选民随时间变化的投票倾向,摇摆选民在Reddit上还是Facebook上,都在其掌握之中。
对于企业来说,要从以产品为中心,转到以客户(买单者)甚至用户(使用者)为中心,从关注用户背景到关注其行为、意图和意向,从关注交易形成转到关注每一个交互点/触点,用户是从什么路径发现我的产品的,决定之前又做了什么,买了以后又有什么反馈,是通过网页、还是QQ、微博或是微信。
再讲第三个,当下。时间是金钱,股票交易就是快鱼吃慢鱼,用免费股票交易软件有几秒的延迟,而占美国交易量60-70%的高频程序化交易则要发现毫秒级、低至1美分的交易机会。时间又是生命,美国国家大气与海洋管理局的超级计算机在日本311地震后9分钟发出海啸预警,已经太晚。时间还是机会。现在所谓的购物篮分析用的其实并不是真正的购物篮,而是结帐完的小票,真正有价值的是当顾客还拎着购物篮,在浏览、试用、选择商品的时候,在每一个触点影响他/她的选择。数据价值具有半衰期,最新鲜的时候个性化价值最大,渐渐退化到只有集合价值。当下的智慧是从刻舟求剑到见时知几,原来10年一次的人口普查就是刻舟求剑,而现在东莞一出事网络迁徙图就反映出来了。当然,当下并不一定是完全准确的,其实如果没有更多、更久的数据,匆忙对网络迁徙图解读是可能陷入误区的。
第四个,皆明。时间有限,就简单说了。就是从放马后炮到料事如神(predictiveanalytics),从料事如神到运筹帷幄(prescriptiveanalytics),只知道有东风是预测分析,确定要借箭的目标、并给出处方利用草船来借,就是处方性分析。我们现在要提高响应度、降低流失率、吸引新客户,需要处方性分析。
辨讹就是利用多源数据过滤噪声、查漏补缺和去伪存真。20多个省市的GDP之和超过全国的GDP就是一个例子,我们的GPS有几十米的误差,但与地图数据结合就能做到精确,GPS在城市的高楼中没有信号,可以与惯性导航结合。
晓意涉及到大数据下的机器智能,是个大问题,也不展开了。贴一段我的文章:有人说在涉及“晓意”的领域人是无法替代的。这在前大数据时代是事实。《点球成金(Moneyball)》讲的是数量化分析和预测对棒球运动的贡献,它在大数据背景下出现了传播的误区:一、它其实不是大数据,而是早已存在的数据思维和方法;二、它刻意或无意忽略了球探的作用。从读者看来,奥克兰竞技队的总经理比利·比恩用数量化分析取代了球探。而事实是,在运用数量化工具的同时,比恩也增加了球探的费用,军功章里有机器的一半,也有人的一半,因为球探对运动员定性指标(如竞争性、抗压力、意志力等)的衡量是少数结构化量化指标无法刻画的。大数据改变了这一切。人的数字足迹的无意识记录,以及机器学习(尤其是深度学习)晓意能力的增强,可能逐渐改变机器的劣势。今年我们看到基于大数据的情感分析、价值观分析和个人刻画,当这些应用于人力资源,已经或多或少体现了球探承担的。
⑵ 大数据计算体系的基本层次是什么
大数据计算体系可归纳三个基本层次:数据应用系统,数据处理系统,数据存袜物储系统.
总之,小数据,大集合就是按照某种数据集中起来并存放二级存储器中的一种方式。这告孙液种数据集合还有着一定的特点,比如尽量不出现重复的情况。
⑶ 大数据需要学习什么样的知识
看从事大数抄据的哪个部分。
大数据分三个部分,数据分析、大数据平台的中台和大数据底层处理。
数据分析:统计专业+一门实际业务+计算机数据分析工具。可以参考研究生BA专业。
数据中台:CS专业+大数据方向的算法 (并行计算、机器学习一类的)。研究生起步。
数据底层处理:一定的软件基础+数据库应用。本科即可。
本科不要学大数据专业,四年学不出来,干啥啥不行。
⑷ 大数据的核心思想是什么
1、利用所有的数据,而不再仅仅依靠部分数据,即不是随机样本,而是全体数据。
2、唯有接受不精确性,才有机会打开一扇新的世界之窗,即不是精确性,而是混杂性。
3、不是所有的事情都必须知道现象背后的原因,而是要让数据自己“发声”,即不是因果关系,而是相关关系。
大数据时代需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。
⑸ 大数据核心技术有哪些
大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、NoSQL数据库、数据仓库、机器学习、并行计算、可视化等各种技术范畴和不同的技术层面。首先给出一个通用化的大数据处理框架,主要分为下面几个方面:数据采集与预处理、数据存储、数据清洗、数据查询分析和数据可视化。
一、数据采集与预处理
对于各种来源的数据,包括移动互联网数据、社交网络的数据等,这些结构化和非结构化的海量数据是零散的,也就是所谓的数据孤岛,此时的这些数据并没有什么意义,数据采集就是将这些数据写入数据仓库中,把零散的数据整合在一起,对这些数据综合起来进行分析。数据采集包括文件日志的采集、数据库日志的采集、关系型数据库的接入和应用程序的接入等。在数据量比较小的时候,可以写个定时的脚本将日志写入存储系统,但随着数据量的增长,这些方法无法提供数据安全保障,并且运维困难,需要更强壮的解决方案。
Flume NG作为实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据,同时,对数据进行简单处理,并写到各种数据接收方(比如文本,HDFS,Hbase等)。Flume NG采用的是三层架构:Agent层,Collector层和Store层,每一层均可水平拓展。其中Agent包含Source,Channel和 Sink,source用来消费(收集)数据源到channel组件中,channel作为中间临时存储,保存所有source的组件信息,sink从channel中读取数据,读取成功之后会删除channel中的信息。
NDC,Netease Data Canal,直译为网易数据运河系统,是网易针对结构化数据库的数据实时迁移、同步和订阅的平台化解决方案。它整合了网易过去在数据传输领域的各种工具和经验,将单机数据库、分布式数据库、OLAP系统以及下游应用通过数据链路串在一起。除了保障高效的数据传输外,NDC的设计遵循了单元化和平台化的设计哲学。
Logstash是开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。一般常用的存储库是Elasticsearch。Logstash 支持各种输入选择,可以在同一时间从众多常用的数据来源捕捉事件,能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。
Sqoop,用来将关系型数据库和Hadoop中的数据进行相互转移的工具,可以将一个关系型数据库(例如Mysql、Oracle)中的数据导入到Hadoop(例如HDFS、Hive、Hbase)中,也可以将Hadoop(例如HDFS、Hive、Hbase)中的数据导入到关系型数据库(例如Mysql、Oracle)中。Sqoop 启用了一个 MapRece 作业(极其容错的分布式并行计算)来执行任务。Sqoop 的另一大优势是其传输大量结构化或半结构化数据的过程是完全自动化的。
流式计算是行业研究的一个热点,流式计算对多个高吞吐量的数据源进行实时的清洗、聚合和分析,可以对存在于社交网站、新闻等的数据信息流进行快速的处理并反馈,目前大数据流分析工具有很多,比如开源的strom,spark streaming等。
Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定或者在运行时动态选举,nimbus与supervisor都是Storm提供的后台守护进程,之间的通信是结合Zookeeper的状态变更通知和监控通知来处理。nimbus进程的主要职责是管理、协调和监控集群上运行的topology(包括topology的发布、任务指派、事件处理时重新指派任务等)。supervisor进程等待nimbus分配任务后生成并监控worker(jvm进程)执行任务。supervisor与worker运行在不同的jvm上,如果由supervisor启动的某个worker因为错误异常退出(或被kill掉),supervisor会尝试重新生成新的worker进程。
当使用上游模块的数据进行计算、统计、分析时,就可以使用消息系统,尤其是分布式消息系统。Kafka使用Scala进行编写,是一种分布式的、基于发布/订阅的消息系统。Kafka的设计理念之一就是同时提供离线处理和实时处理,以及将数据实时备份到另一个数据中心,Kafka可以有许多的生产者和消费者分享多个主题,将消息以topic为单位进行归纳;Kafka发布消息的程序称为procer,也叫生产者,预订topics并消费消息的程序称为consumer,也叫消费者;当Kafka以集群的方式运行时,可以由一个服务或者多个服务组成,每个服务叫做一个broker,运行过程中procer通过网络将消息发送到Kafka集群,集群向消费者提供消息。Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance。Procer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。Kafka可以和Flume一起工作,如果需要将流式数据从Kafka转移到hadoop,可以使用Flume代理agent,将Kafka当做一个来源source,这样可以从Kafka读取数据到Hadoop。
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供数据同步服务。它的作用主要有配置管理、名字服务、分布式锁和集群管理。配置管理指的是在一个地方修改了配置,那么对这个地方的配置感兴趣的所有的都可以获得变更,省去了手动拷贝配置的繁琐,还很好的保证了数据的可靠和一致性,同时它可以通过名字来获取资源或者服务的地址等信息,可以监控集群中机器的变化,实现了类似于心跳机制的功能。
二、数据存储
Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。
HBase,是一个分布式的、面向列的开源数据库,可以认为是hdfs的封装,本质是数据存储、NoSQL数据库。HBase是一种Key/Value系统,部署在hdfs上,克服了hdfs在随机读写这个方面的缺点,与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
Phoenix,相当于一个Java中间件,帮助开发工程师能够像使用JDBC访问关系型数据库一样访问NoSQL数据库HBase。
Yarn是一种Hadoop资源管理器,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。Yarn由下面的几大组件构成:一个全局的资源管理器ResourceManager、ResourceManager的每个节点代理NodeManager、表示每个应用的Application以及每一个ApplicationMaster拥有多个Container在NodeManager上运行。
Mesos是一款开源的集群管理软件,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等应用架构。
Redis是一种速度非常快的非关系数据库,可以存储键与5种不同类型的值之间的映射,可以将存储在内存的键值对数据持久化到硬盘中,使用复制特性来扩展性能,还可以使用客户端分片来扩展写性能。
Atlas是一个位于应用程序与MySQL之间的中间件。在后端DB看来,Atlas相当于连接它的客户端,在前端应用看来,Atlas相当于一个DB。Atlas作为服务端与应用程序通讯,它实现了MySQL的客户端和服务端协议,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。Atlas启动后会创建多个线程,其中一个为主线程,其余为工作线程。主线程负责监听所有的客户端连接请求,工作线程只监听主线程的命令请求。
Ku是围绕Hadoop生态圈建立的存储引擎,Ku拥有和Hadoop生态圈共同的设计理念,它运行在普通的服务器上、可分布式规模化部署、并且满足工业界的高可用要求。其设计理念为fast analytics on fast data。作为一个开源的存储引擎,可以同时提供低延迟的随机读写和高效的数据分析能力。Ku不但提供了行级的插入、更新、删除API,同时也提供了接近Parquet性能的批量扫描操作。使用同一份存储,既可以进行随机读写,也可以满足数据分析的要求。Ku的应用场景很广泛,比如可以进行实时的数据分析,用于数据可能会存在变化的时序数据应用等。
在数据存储过程中,涉及到的数据表都是成千上百列,包含各种复杂的Query,推荐使用列式存储方法,比如parquent,ORC等对数据进行压缩。Parquet 可以支持灵活的压缩选项,显著减少磁盘上的存储。
三、数据清洗
MapRece作为Hadoop的查询引擎,用于大规模数据集的并行计算,”Map(映射)”和”Rece(归约)”,是它的主要思想。它极大的方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统中。
随着业务数据量的增多,需要进行训练和清洗的数据会变得越来越复杂,这个时候就需要任务调度系统,比如oozie或者azkaban,对关键任务进行调度和监控。
Oozie是用于Hadoop平台的一种工作流调度引擎,提供了RESTful API接口来接受用户的提交请求(提交工作流作业),当提交了workflow后,由工作流引擎负责workflow的执行以及状态的转换。用户在HDFS上部署好作业(MR作业),然后向Oozie提交Workflow,Oozie以异步方式将作业(MR作业)提交给Hadoop。这也是为什么当调用Oozie 的RESTful接口提交作业之后能立即返回一个JobId的原因,用户程序不必等待作业执行完成(因为有些大作业可能会执行很久(几个小时甚至几天))。Oozie在后台以异步方式,再将workflow对应的Action提交给hadoop执行。
Azkaban也是一种工作流的控制引擎,可以用来解决有多个hadoop或者spark等离线计算任务之间的依赖关系问题。azkaban主要是由三部分构成:Relational Database,Azkaban Web Server和Azkaban Executor Server。azkaban将大多数的状态信息都保存在MySQL中,Azkaban Web Server提供了Web UI,是azkaban主要的管理者,包括project的管理、认证、调度以及对工作流执行过程中的监控等;Azkaban Executor Server用来调度工作流和任务,记录工作流或者任务的日志。
流计算任务的处理平台Sloth,是网易首个自研流计算平台,旨在解决公司内各产品日益增长的流计算需求。作为一个计算服务平台,其特点是易用、实时、可靠,为用户节省技术方面(开发、运维)的投入,帮助用户专注于解决产品本身的流计算需求。
四、数据查询分析
Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能。Hive本身不存储和计算数据,它完全依赖于HDFS和MapRece。可以将Hive理解为一个客户端工具,将SQL操作转换为相应的MapRece jobs,然后在hadoop上面运行。Hive支持标准的SQL语法,免去了用户编写MapRece程序的过程,它的出现可以让那些精通SQL技能、但是不熟悉MapRece 、编程能力较弱与不擅长Java语言的用户能够在HDFS大规模数据集上很方便地利用SQL 语言查询、汇总、分析数据。
Hive是为大数据批量处理而生的,Hive的出现解决了传统的关系型数据库(MySql、Oracle)在大数据处理上的瓶颈 。Hive 将执行计划分成map->shuffle->rece->map->shuffle->rece…的模型。如果一个Query会被编译成多轮MapRece,则会有更多的写中间结果。由于MapRece执行框架本身的特点,过多的中间过程会增加整个Query的执行时间。在Hive的运行过程中,用户只需要创建表,导入数据,编写SQL分析语句即可。剩下的过程由Hive框架自动的完成。
Impala是对Hive的一个补充,可以实现高效的SQL查询。使用Impala来实现SQL on Hadoop,用来进行大数据实时查询分析。通过熟悉的传统关系型数据库的SQL风格来操作大数据,同时数据也是可以存储到HDFS和HBase中的。Impala没有再使用缓慢的Hive+MapRece批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。Impala将整个查询分成一执行计划树,而不是一连串的MapRece任务,相比Hive没了MapRece启动时间。
Hive 适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询,Impala给数据人员提供了快速实验,验证想法的大数据分析工具,可以先使用Hive进行数据转换处理,之后使用Impala在Hive处理好后的数据集上进行快速的数据分析。总的来说:Impala把执行计划表现为一棵完整的执行计划树,可以更自然地分发执行计划到各个Impalad执行查询,而不用像Hive那样把它组合成管道型的map->rece模式,以此保证Impala有更好的并发性和避免不必要的中间sort与shuffle。但是Impala不支持UDF,能处理的问题有一定的限制。
Spark拥有Hadoop MapRece所具有的特点,它将Job中间输出结果保存在内存中,从而不需要读取HDFS。Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。
Solr用Java编写、运行在Servlet容器(如Apache Tomcat或Jetty)的一个独立的企业级搜索应用的全文搜索服务器。它对外提供类似于Web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Elasticsearch是一个开源的全文搜索引擎,基于Lucene的搜索服务器,可以快速的储存、搜索和分析海量的数据。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
还涉及到一些机器学习语言,比如,Mahout主要目标是创建一些可伸缩的机器学习算法,供开发人员在Apache的许可下免费使用;深度学习框架Caffe以及使用数据流图进行数值计算的开源软件库TensorFlow等,常用的机器学习算法比如,贝叶斯、逻辑回归、决策树、神经网络、协同过滤等。
五、数据可视化
对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。主流的BI平台比如,国外的敏捷BI Tableau、Qlikview、PowrerBI等,国内的SmallBI和新兴的网易有数(可点击这里免费试用)等。
在上面的每一个阶段,保障数据的安全是不可忽视的问题。
基于网络身份认证的协议Kerberos,用来在非安全网络中,对个人通信以安全的手段进行身份认证,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。
控制权限的ranger是一个Hadoop集群权限框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于yarn的Hadoop生态圈的所有数据权限。可以对Hadoop生态的组件如Hive,Hbase进行细粒度的数据访问控制。通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问HDFS文件夹、HDFS文件、数据库、表、字段权限。这些策略可以为不同的用户和组来设置,同时权限可与hadoop无缝对接。
⑹ 如何用大数据计算思想设计网格化pm2.5公众发布系统
大数据技术具有定位、搜索、挖掘和深度分析功能,可以为预警分析提供科学方法,而网氏梁态格化管理技术则把活动区域划分为一个个网格,依托统一的城市网格化管理平台对网格实时巡查,主动发现问题,实现应渣笑急处置。因歼源此,运用大数据和网格化技术保障城市公共安全,可以不干扰城市正常运转和市民正常生活,是比较经济、科学和可行的选择。金鹏信息网格化软件
⑺ 设计一个大数据实时分析平台要怎么做呢
PetaBase-V作为Vertica基于亿信分析产品的定制版,提供面向大数据的实时分析服务,采用无共享大规模并行架构(MPP),可线性扩展集群的计算能力和数据处理容量,基于列式数据库技术,使 PetaBase-V 拥有高性能、高扩展性、高压缩率、高健壮性等特点,可完美解决报表计算慢和明细数据查询等性能问题。
大数据实时分析平台(以下简称PB-S),旨在提供数据端到端实时处理能力(毫秒级/秒级/分钟级延迟),可以对接多数据源进行实时数据抽取,可以为多数据应用场景提供实时数据消费。作为现代数仓的一部分,PB-S可以支持实时化、虚拟化、平民化、协作化等能力,让实时数据应用开发门槛更低、迭代更快、质量更好、运行更稳、运维更简、能力更强。
整体设计思想
我们针对用户需求的四个层面进行了统一化抽象:
统一数据采集平台
统一流式处理平台
统一计算服务平台
统一数据可视化平台
同时,也对存储层保持了开放的原则,意味着用户可以选择不同的存储层以满足具体项目的需要,而又不破坏整体架构设计,用户甚至可以在Pipeline中同时选择多个异构存储提供支持。下面分别对四个抽象层进行解读。
1)统一数据采集平台
统一数据采集平台,既可以支持不同数据源的全量抽取,也可以支持增强抽取。其中对于业务数据库的增量抽取会选择读取数据库日志,以减少对业务库的读取压力。平台还可以对抽取的数据进行统一处理,然后以统一格式发布到数据总线上。这里我们选择一种自定义的标准化统一消息格式UMS(Unified Message Schema)做为 统一数据采集平台和统一流式处理平台之间的数据层面协议。
UMS自带Namespace信息和Schema信息,这是一种自定位自解释消息协议格式,这样做的好处是:
整个架构无需依赖外部元数据管理平台;
消息和物理媒介解耦(这里物理媒介指如Kafka的Topic, Spark Streaming的Stream等),因此可以通过物理媒介支持多消息流并行,和消息流的自由漂移。
平台也支持多租户体系,和配置化简单处理清洗能力。
2)统一流式处理平台
统一流式处理平台,会消费来自数据总线上的消息,可以支持UMS协议消息,也可以支持普通JSON格式消息。同时,平台还支持以下能力:
支持可视化/配置化/SQL化方式降低流式逻辑开发/部署/管理门槛
支持配置化方式幂等落入多个异构目标库以确保数据的最终一致性
支持多租户体系,做到项目级的计算资源/表资源/用户资源等隔离
3)统一计算服务平台
统一计算服务平台,是一种数据虚拟化/数据联邦的实现。平台对内支持多异构数据源的下推计算和拉取混算,也支持对外的统一服务接口(JDBC/REST)和统一查询语言(SQL)。由于平台可以统一收口服务,因此可以基于平台打造统一元数据管理/数据质量管理/数据安全审计/数据安全策略等模块。平台也支持多租户体系。
4)统一数据可视化平台
统一数据可视化平台,加上多租户和完善的用户体系/权限体系,可以支持跨部门数据从业人员的分工协作能力,让用户在可视化环境下,通过紧密合作的方式,更能发挥各自所长来完成数据平台最后十公里的应用。
以上是基于整体模块架构之上,进行了统一抽象设计,并开放存储选项以提高灵活性和需求适配性。这样的RTDP平台设计,体现了现代数仓的实时化/虚拟化/平民化/协作化等能力,并且覆盖了端到端的OLPP数据流转链路。
具体问题和解决思路
下面我们会基于PB-S的整体架构设计,分别从不同维度讨论这个设计需要面对的问题考量和解决思路。
功能考量主要讨论这样一个问题:实时Pipeline能否处理所有ETL复杂逻辑?
我们知道,对于Storm/Flink这样的流式计算引擎,是按每条处理的;对于Spark Streaming流式计算引擎,按每个mini-batch处理;而对于离线跑批任务来说,是按每天数据进行处理的。因此处理范围是数据的一个维度(范围维度)。
另外,流式处理面向的是增量数据,如果数据源来自关系型数据库,那么增量数据往往指的是增量变更数据(增删改,revision);相对的批量处理面向的则是快照数据(snapshot)。因此展现形式是数据的另一个维度(变更维度)。
单条数据的变更维度,是可以投射收敛成单条快照的,因此变更维度可以收敛成范围维度。所以流式处理和批量处理的本质区别在于,面对的数据范围维度的不同,流式处理单位为“有限范围”,批量处理单位为“全表范围”。“全表范围”数据是可以支持各种SQL算子的,而“有限范围”数据只能支持部分SQL算子。
复杂的ETL并不是单一算子,经常会是由多个算子组合而成,由上可以看出单纯的流式处理并不能很好的支持所有ETL复杂逻辑。那么如何在实时Pipeline中支持更多复杂的ETL算子,并且保持时效性?这就需要“有限范围”和“全表范围”处理的相互转换能力。
设想一下:流式处理平台可以支持流上适合的处理,然后实时落不同的异构库,计算服务平台可以定时批量混算多源异构库(时间设定可以是每隔几分钟或更短),并将每批计算结果发送到数据总线上继续流转,这样流式处理平台和计算服务平台就形成了计算闭环,各自做擅长的算子处理,数据在不同频率触发流转过程中进行各种算子转换,这样的架构模式理论上即可支持所有ETL复杂逻辑。
2)质量考量
上面的介绍也引出了两个主流实时数据处理架构:Lambda架构和Kappa架构,具体两个架构的介绍网上有很多资料,这里不再赘述。Lambda架构和Kappa架构各有其优劣势,但都支持数据的最终一致性,从某种程度上确保了数据质量,如何在Lambda架构和Kappa架构中取长补短,形成某种融合架构,这个话题会在其他文章中详细探讨。
当然数据质量也是个非常大的话题,只支持重跑和回灌并不能完全解决所有数据质量问题,只是从技术架构层面给出了补数据的工程方案。关于大数据数据质量问题,我们也会起一个新的话题讨论。
3)稳定考量
这个话题涉及但不限于以下几点,这里简单给出应对的思路:
高可用HA
整个实时Pipeline链路都应该选取高可用组件,确保理论上整体高可用;在数据关键链路上支持数据备份和重演机制;在业务关键链路上支持双跑融合机制
SLA保障
在确保集群和实时Pipeline高可用的前提下,支持动态扩容和数据处理流程自动漂移
弹性反脆弱
? 基于规则和算法的资源弹性伸缩
? 支持事件触发动作引擎的失效处理
监控预警
集群设施层面,物理管道层面,数据逻辑层面的多方面监控预警能力
自动运维
能够捕捉并存档缺失数据和处理异常,并具备定期自动重试机制修复问题数据
上游元数据变更抗性
?上游业务库要求兼容性元数据变更
? 实时Pipeline处理显式字段
4)成本考量
这个话题涉及但不限于以下几点,这里简单给出应对的思路:
人力成本
通过支持数据应用平民化降低人才人力成本
资源成本
通过支持动态资源利用降低静态资源占用造成的资源浪费
运维成本
通过支持自动运维/高可用/弹性反脆弱等机制降低运维成本
试错成本
通过支持敏捷开发/快速迭代降低试错成本
5)敏捷考量
敏捷大数据是一整套理论体系和方法学,在前文已有所描述,从数据使用角度来看,敏捷考量意味着:配置化,SQL化,平民化。
6)管理考量
数据管理也是一个非常大的话题,这里我们会重点关注两个方面:元数据管理和数据安全管理。如果在现代数仓多数据存储选型的环境下统一管理元数据和数据安全,是一个非常有挑战的话题,我们会在实时Pipeline上各个环节平台分别考虑这两个方面问题并给出内置支持,同时也可以支持对接外部统一的元数据管理平台和统一数据安全策略。
以上是我们探讨的大数据实时分析平台PB-S的设计方案。
⑻ 大数据算法学什么
大数据算法课程讲授大数据上的基本算法设计思想等内容,课程共设计十讲,包含有大数据算法概述、亚线性算法、亚线性算法例析等。
授课目标
1、让听课的学习者接触到和传统算法课程不一样的算法设计与分析思路,并且以较新的研究成果为导向祥谨慧谨答,让参与该课程学习的同学了解大数据算法的前沿知识。
2、通过大数据算法课程课程的学习,使学生掌握大数据算法设计的基本思想,并通过课程的作业,掌握大数据算法设计与分析的技术。