原文地址:http://www.ibeifeng.com/tech-69513.html

时至今日,大数据这个概念已充斥了整个IT界,各种“搭载”了大数据技术的产品,各种用于处理大数据工具更如雨后的春笋触目皆是。同时,如果某个产品还没抱上大数据的大腿,如果某个机构还没捣鼓过基于Hadoop、Spark、Impala、Storm等高大上的工具,更会予以过时黄花的评价。然而,你的数据量真的需要使用Hadoop这样工具吗?你业务处理的数据类型真的需要大数据技术来支撑吗?

文章出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过高频交易平台,当过创业公司的CTO,更习惯称自己为统计学者。下面我们一起看他的观点:

Hadoop只是运行某个通用计算的工具,正因为如此,在使用过程中你会受限于多种规则,比如所有计算都必须按照一个map、一个group by、一个aggregate或者这种计算序列来写。这种束缚就像穿上一层紧身衣,但是正因为Hadoop和大数据是热词,世界有一半的人都想穿上紧身衣,即使他们根本不需要。因此,你的数据量真的需要使用Hadoop这类工具吗?

1. 好几百M的数据,Excel装不下!这种级别完全和“大”无关,类似Pandas这样的工具就可以处理的很好,它可以把几百M的数据加载到内存,一眨眼功夫Numpy就能完成亿次浮点计算。

2. 数据体积高达10G!这种级别的数据仍然称不上大数据,当下的笔记本的内存都可以添加到16G了,而且许多工具并不是一次性将数据完全加载到内存的。

3. 数据有100GB/500GB/1TB!1个2TB的硬盘才几百块,买一块换上,然后果断装PostgreSQL等。

对比Python这样的脚本,Hadoop在编程方面不存在任何优势;同时因为跨节点的数据流开销,Hadoop通常情况下要慢于其他技术,然而如果你的数据超过5TB,那么你真的需要捣腾Hadoop了。

Chris从数据体积上分析了你的数据是否称得上大数据,是否真的需要使用大数据技术,然而衡量大数据的因素还有Velocity、Variety以及Value,下面我们就一起看MongoDB分享的“大数据除大以外的东西”,下为译文:

MongoHQ:不要因为大数据背后的利益而贬低其他途径

“大数据”,套用《银河系漫游指南》里的经典语录就是“is Big. You won’t believe how vastly, hugely, mind-bogglingly big it is. I mean you may think there’s a lot of data in Wikipedia but that’s just peanuts to Big Data”。这也是许多人在碰到大数据时走入的误区——他们首先假设自己必须使用大数据技术处理,然而我们离大数据还差很远,那么大数据是如何得来的?

回溯20世纪90年代,人们认识到数字化的存储数据比用纸要廉价的多,当一个东西便宜到一定的地步时,它就成为一个必然的选项。人类就会出于本能的去储存所有数据,因为“未来我们可能需要它们”,而且储存已经这么便宜了,为什么不做呢?

而从1990年美国科学家一篇名为 “Saving All The Bits”的文章中发现,那个时候科学家已经不得不面对保存所有数据的挑战,Peter Denning解释了NASA保存所有哈勃太空望远镜产生数据面临的挑战:该设备每天产生的数据需要2500张光盘来存放,这个速度不仅淹没了网络和存储设备的性能,同样还超出了“人类的理解能力”。但是请不要忽视一点,随着储存技术和经济状况的发展,这2500张光盘只等价于当下100美元左右的硬盘,而且我们似乎也并不需要储存一个太空望远镜产生的如此大量数据。

大数据的有限价值

今天我们几乎可以存储任何具有业务目的明显的数据,比如信用卡销售及问卷调查。同时,我们还可以存储所有业务目的不明显的数据,比如:

一个网页上的行为、电缆接线盒中用户观看的TV频道、借助物理网开关灯或者门的行为。但是从价值上看,后一类行为的价值无疑很低。

一笔信用卡交易包含了很多数据,比如:人的信息、地理位置、价值等。在销售周期中,你会很自然的捕捉这些数据。然而用户在一个网站上产生的行为显然不会那么有价值,你可能收集到用户访问的URL、阅读某个页面花费的时间,但是这些记录的价值显然不如信用卡交易那么丰富。当然如果你要给你的用户分类时,这些记录还是拥有一定价值的。

然而当下存储的成本已经越来越少了,你的数据越多,你就可以从数据分析趋势中获得更多的价值。每条TV频道转换的信息确实无关紧要,但是如果你把这些数据与调度机广告数据放到一起将其视为一个聚合数据集,你将可以清楚的知晓用户的行为,这些数据将给广告者和程序设计人员提供有价值的见解。

同样,智能家庭系统中收集到的信息价值就更低了,你可能只会得到一些事件和状态信息,同时系统可能产生大量的数据,价值必须通过大量的筛选、过滤等处理才能体现。大数据最大的挑战就是从大量的碎片项中获取信息,也可能是使用许多具有丰富价值的数据做依托,然后从中剥丝抽茧,寻找真知。需要注意的是,这并不是大海捞针,而是从一堆针中给一些针定性。

Hot Data vs. Big Data

造成需要大数据的原因是,你不仅拥有大量的数据,同样拥有大量访问这些数据的请求,而Big Data看起来能满足这个需求。

BigData的数据更倾向于冷数据,也就是你不会经常访问的数据,除了分析之外可能不会再次被使用。它可能很快被新鲜的冷数据代替,而新的冷数据又会产生新的分析,但是Big Data的范围需要与热数据分开,因为将两个需求混合得到的结果必然低于预期,这样一来冷数据与热数据的分析必然都差强人意。无论如何区分冷热数据都是个好的思想,不管是存储还是应用程序都应该区别对待。但是总有一些人不分场景为用户提供Big Data这个“仙丹”。

因此,请重视你的数据,分清楚数据的类型,以业务为需求,不必要将所有的数据混合到一起去打造1个大数据。

对于MongoDB的官博,Hakka Labs的创始人Pete Soderling在博文给以了回应。首先,他肯定了随着时间延续储存成本递减这条。其次,他还补充了两点,更多开放API造成用户数据太多以及公司们幕后操作的“数据共享”。随后,Pete则给出了自己的看法,下为译文:

Pete:无论大、小、热、冷,你的数据需要1条强健的数据处理管道

不可否认,你们说的有一定的道理,但是重要的是,在过去几年中,那些具有前瞻性的公司都做了一件非常重要的事——设计一个健壮的数据处理管道去收集、聚合级处理它们不断增长的数据。之所以这么做,最主要的原因就是用一种固定的方式分析数据之间的关系,就像MongoHQ说的在一堆针中给一些针定性,如果不这么做的话,这些关系必将消失。

但是这同样提出了一个问题,什么样的处理管道才是健壮的?简单的把数据扔入Hadoop显然不是,这里分享来自Stripe、Tapad、Etsy及Square的例子,一探现实世界中的数据管道:

1. Stripe的处理方式

Stripe的Avi Bryant为我们分享了如何建立一个健壮的数据管道:

  • Stripe从多个数据源将数据灌入HDFS,它们中许多都是无结构或者半结构化的服务器日志,比如:JSON或者BSON文档。在任何情况下,第一步都是转换成结构数据,我们习惯使用Thrift来定义逻辑结构,使用Parquet作为磁盘持久化格式。
  • 之所以选择Parquet,因为它是一个有效的列存储格式,原生支持Cloudera的Impala查询引擎,可以快速的关系访问数据获取ad-hoc Reporting。同时,Parquet和Thrift的组合使用还有另一个好处——方便Twitter Scalding框架的有效使用,它可以用作复杂的批处理。
  • 下一个步骤则是“denormalization”:为了保持分析作业和查询的快速执行,我们经常会提前做join,在Scalding中,将新的数据集写入Thrift格式。同时,我们会做大量的数据优化和注解,比如:地理编码IP地址、分析用户代理、清理缺省值等。
  • 在许多情况下,这么做会导致嵌套结构模式,便于Scalding的处理以及Parquet的储存,然而却不便于Impala的查询。为此,我们设计了一个简单的工具,可以将任意的 Parquet嵌套数据转换成单一结构,同时我们会为每个数据源运行这样一个副本,以方便Impala的查询,我们期望未来版本的Impala可以移除这个多余的步骤。

2. Tapad的数据管道

  • Tapad从事的是广告技术业务,数年内已积累了丰富的流量及数据增长应对经验。为了了解他们的数据管道,Pete特意接触了Tapad的CTO Dag Liodden,以下是他口中的经验:
  • 所有传入的数据流都会以pub-sub的形式进入一个信息队列(我们使用Kafka,并每小时给它推送TB级的数据)
  • 所有数据都会被处理成denormalized结构模式,并且支持模式的演变(我们使用Avro和Protocol Buffers)
  • 在信息队列处理过程中,所有的数据储存都会被实时更新(热数据被推送给了Aerospike和Cassandra,实时数据查询一般通过Vertica存储,原始事件则会与Aerospike集群中的数据整合储存在HDFS中)
  • 深度分析及数据科学计算通常存储HDFS中,以denormalized数据为主。
  • 在HDFS上存储的数据离线处理结束后,系统可以保持数据的实时更新。我们一直致力于计算逻辑的研究,从而实现数据可以在批处理和流处理系统间无缝的使用。

Dag表示最后一点让流计算的追溯成为可能,同时还可以自动同步其它存储系统中的数据。Dag还解释了存储方面使用了多个数据技术的原因,还剖析了这些技术的优势:

  • Kafka:高吞吐量的pub-sub,但是在交付和延时上表现一般,限制了数据持久并且缺乏查询能力。
  • Aerospike:非常快的随机读写访问能力,通过键(我们有32亿的键以及4TB的数据),跨数据中心备份,可用性很高但是查询性能受到限制。
  • Cassandra:中等程度的随机读写访问性能,原子计数和数据模型让它非常适合时间序列数据存储。灵活的一致性模式,并且拥有跨数据中心备份能力。
  • HDFS:高吞吐量,廉价的存储。
  • Vertica:快速而强大的ad-hoc查询能力,适用于交互式分析,高可用性,但是不支持嵌套数据结构及multi-valued属性,基于存储的收费让我们不得不控制使用。

3. Etsy处理数据的方式

通过Etsy数据团队技术经理Rafe Colburn,我们了解到了Etsy的数据处理方式:

  • Etsy的数据管道并不是标准的线状,它开始于我们的测试装备——1个运行在浏览器的事件记录器以及1个从后端调用的事件记录器,两个记录器都会ping一些内部的“beacon”服务器。
  • 当Apache访问日志到一定的大小时,我们会使用1个logrotate程序将它持久化到HDFS系统。我们夜间还会给生产环境数据(储存在MySQL中)做了快照,同时会复制到HDFS,因此,我们可以将clickstream数据整合到事务数据中。
  • 我们通常将Hadoop作业结果传送给Vertica数据仓库,这里同样会给生产数据做备份用以深度挖掘,我们会将这些数据传送给自主研发的报表和分析工具。
  • 鉴于etsy.com的特性,我们使用的数据通常来自Hadoop作业,我们有一个定制化工具会取得作业的输出结果,并将它储存在MySQL(已分片)集群,在这里我们可以规模化的访问。本年度我们将考虑整合Kafka,这样我们就可以将数据从仪表中转移到Hadoop(以及流处理工具),同时也可以将数据从分析平台发送到外网上。

4. Square的分析方式

Square数据管道设计的非常复杂,在接触到技术经理Pascal-Louis Perez后,他为我们分享了Square的数据管道架构战略视图:

鉴于系统中支付流的重要性,Square将“reconciliation”这个概念贯穿了整个数据管道系统,验证每个数据转换的正确性。通过Pascal了解到,这种方法最大问题就是规模问题。对于每次付款收讫都会产生“10-15个核算实体,协调系统同样需要”,一次交易产生的操作已经够多了。Square的方法是使用流处理系统,这就允许为不同流映射不同的数据域。

切勿妄谈Hadoop,以及4个数据管道打造实践相关推荐

  1. SQL on Hadoop在快手大数据平台的实践与优化 | 分享实录

    快手大数据架构工程师钟靓 本文是根据快手大数据架构工程师钟靓于 5月18-19日在A2M人工智能与机器学习创新峰会<SQL on Hadoop在快手大数据平台的实践与优化>演讲中的分享内容 ...

  2. 一周新闻纵览:网信办:切勿购买修改朋友圈定位服务;网信办三季度约谈网站747家;过度索取住客信息,华住旗下酒店涉嫌侵犯隐私

    1 网信办: 切勿购买修改朋友圈定位服务 针对央视新闻频道披露的闲鱼.转转等网络二手平台存在出售微信朋友圈定位修改服务的乱象,昨天,国家网信办举报中心提醒广大网民,切勿购买修改朋友圈定位服务,更不要轻 ...

  3. 一个草根程序员如何进入BAT。此文比较扎心,心态不好切勿点击

    引言 认真看完就会有收获 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议>, ...

  4. AI一分钟|倪光南:“中国芯”切勿重硬轻软;阿里达摩院入职95后最年轻科学家,参与无人车研发...

    ▌倪光南:"中国芯"切勿重硬轻软 中国工程院院士.计算机专家倪光南在接受媒体采访时表示,"过去汽车电子领域被外国跨国公司所垄断,它们的芯片有强大的生态支持,使中国芯片难以 ...

  5. 人力资源学python有意义吗-python爬虫抖音 个人资料 仅供学习参考 切勿用于商业...

    本文仅供学习参考 切勿用于商业 本次爬取使用fiddler+模拟器(下载抖音APP)+pycharm 1. 下载最新版本的fiddler(自行百度下载),以及相关配置 1.1.依次点击,菜单栏-Too ...

  6. c++ file* 句柄泄漏_C++核心准则?讨论:持有没有被句柄管理的资源时切勿抛出异常...

    Discussion: Never throw while holding a resource not owned by a handle 讨论:持有没有被句柄管理的资源时切勿抛出异常 Reason ...

  7. 一群参与境内外赌博网站的开发的程序员被抓,网友:切勿面向监狱编程...

    近期,广州警方侦破一宗为赌博团伙提供黑灰产业链支撑帮助信息网络犯罪活动专案,抓获嫌疑人91名.据悉,该案是广州市近年来打击跨境网络赌博生态犯罪中,涉及黑灰产环节最多.地域跨度最广.链条最完整的案件. ...

  8. 为什么做了梦第二天想不起来_转告父母!为什么有人睡觉爱把脚伸到被子外面?其实与身体状况有关…切勿忽视...

    阅读本文前,请您先点击上面的蓝色字体"原味奶茶",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 天气越来越冷,又到 ...

  9. linux权限750什么意思,chmod 777是什么意思?为您解释chmod 777及切勿使用chmod 777的原因...

    如果您不清楚chmod 777是什么意思?那本文将为您解释chmod 777及切勿使用chmod 777的原因,包括应对之策.如果您正在尝试修复Web服务器的权限问题,并在Internet上找到了信息 ...

最新文章

  1. 用Java求一个三位数,该三位数是与其每位数字的阶乘之和
  2. Nagios 安装文档
  3. How web servers work?
  4. Linux系统下 Apache+PHP 环境安装搭建
  5. mybatis resultMap 的日期字段无法获取时分秒的两个问题
  6. [转]要有梦----送给自己,希望自己能尽快走出当前的痛苦期
  7. 阿里云 ECS服务器 开放 8080 端口 -- 图解
  8. 目标服务器已挂起重新启动_CentOS 7 Apache 服务器证书安装
  9. 显卡硬解4k测试软件,对飙4K硬解 看谁才是笑到最后的大佬
  10. 《电磁场与电磁波》课程笔记(一)——矢量与坐标系
  11. 2019主流浏览器市场占有率及其内核
  12. 怎样在科学计算机上计算反正切,科学计算器使用教程_科学计算器怎么解方程...
  13. 6.1.3. Mentor: Design Not Just for Usability, but Learnability
  14. FlinkSQL字段血缘解决方案及源码
  15. 做SEO优化的目的到底是什么
  16. uni-app tababr“+”突起按钮触发弹窗解决方案
  17. 搜狗输入法中英文都默认使用英文标点设置
  18. 【KSQL引擎 介绍】
  19. linux 配置 ftp 服务器以及 ftp 客户端登录
  20. MessageFormatter

热门文章

  1. 计算机保研面试之专业课如何复习?
  2. There appears to be a gap in the edit log. We expected txid 1, but got txid 16
  3. 时空、光年、过去与现在
  4. 如何用python处理文件(图文详解)
  5. C语言循环语句的研究意义,C语言中循环语句的应用研究
  6. 杰理之设置立体声输出,播左右声道歌曲后DAC没有声音或声音变小
  7. 小猫钓鱼java代码,【Java个人笔记】练习-小猫钓鱼
  8. 商详压测jjmeter配置
  9. 微信企业付款转账到微信
  10. 高手速成android开源项目【View篇】(转)