• UID25
  • 登录2016-05-02
  • 粉丝8
  • 关注2
  • 发帖80
  • 主页
  • 金币1443枚
社区居民
原创写手
billy 发布于2016-04-16 17:15
0/586

你不需要 Hadoop做数据分析的10个理由

楼层直达
为你的业务使用大数据技术是一个非常有吸引力的事情,现在Apache Hadoop使得它更加吸引人了。
Hadoop是一个大规模可伸缩的数据存储平台,被用作许多大数据项目的基础。
Hadoop很强大,但是它有一个很陡峭的学习曲线,需要公司在时间和其他资源上作大量的投资。
如果正确地应用它,对你的公司来说,Hadoop可以成为一个真正的游戏规则改变者,但它存在很多被错误使用的可能。
另一方面,许多企业(不像是谷歌、Facebook或Twitter)都没有真正的“大数据”来需要用一个巨大的hadoop集群分析事物,然而 hadoop 这个流行语却吸引着他们。
如大卫惠勒所说的:“所有计算机科学的问题都可以用另一个间接的中间层来解决”。 Hadoop提供了这样一种间接层;作为一个软件架构师,当你的最高管理层对一些流行语有很不专业的偏颇认识时,也许真的很难采取正确的决定。
在本文中,我想要建议“应在投资到Hadoop之前尝试一些替代品”。

了解你的数据


总体数据的大小
Hadoop被设计用来在大型数据集上能进行有效的工作。简单给点提示:
  • Hadoop有一个专为大尺寸文件(如几G)设计的文件系统(HDFS)。因此,如果你的数据文件尺寸只是几M的话,建议你合并(通过zip或tar)多个文件到一个文件中,使其尺寸在几百M到几G范围内。
  • HDFS把大文件们拆分存储到以64MB或128MB或更大的块单元中。

如果你的数据集相对较小,那它就不会是hadoop的巨型生态系统的最佳使用之地。这需要你去对你的数据比以往理解更多一些,分析需要什么类型的查询,看看你的数据是否真得“大”。
另一方面,只是通过数据库的大小来测量数据可能是骗人的,因为你的计算量可能会更大。 有时你可能会做更多的数学计算或分析小数据集的排列,这些可以远远大于实际的数据。所以关键是要“了解你的数据,并且很清楚它”。
数据增长数度(增长速率)
你的数据仓库或是其它数据源中可能拥有数个TB的数据。然而,在建立 Hadoop 集群前,你必须考虑到数据的增长。
向数据分析师问几个简单的问题:
  • 数据增长的有多快?这个数据增长的步伐很快么?
  • 数月或数年之后,这个数据将会达到什么样的尺寸?

许多公司的数据增长是以数年而非数月或数日计算的。如果你的数据增长数度非常快,我见建议你考虑一下归档及清理技术(将在本文后面的内容中详述),而非立即上马 Hadoop 集群。

如何减少你的数据量


如果你觉得你的数据实在是太大了,你可以考虑使用下面的方法将数据减少到相对可控的规模上。下面的几个选项都已经被业内成功使用多年。
归档
数据归档是将陈旧数据移动到一个独立数据储存器以长期保留(如果需要)的过程。
这需要对数据、对应用使用情况的充分了解。处理大数据的电子商务公司在现场数据库中保存近期3个月的订单细节数据,而早期订单则保存在一个独立的数据存储器中。
这个方法也可以使用到你的数据仓库中。你可以保存近期的数据以便更快的查询和报告,而将访问频率较低的数据保存在一个其它不同的存储设备中。
考虑清除数据
我们忙于收集数据时经常并不真正确定我们应该保留多少。如果你存储大量可能不是很有用的数据,它就会拖慢你近期数据的处理。弄清你的业务需求,看看是否可以删除旧的数据,把从那些数据分析的趋势存储起来以供后用。这不仅会节省你的空间,而且还可以在分析近期数据时帮助你加快速度。
对这种情况的一个常见的最佳实践是在您的数据仓库中有一些标准列,像创建日期,创建者,更新日期,更新者。现在根据这些列创建一个每日/每月的cron作业,用它清除你不想在你的数据仓库中看到的时段的数据。清除数据的逻辑基于你的领域可能不同,因此在实施它之前应作一些考虑。
如果您正在使用一个归档工具,它也可能是通过很轻松地配置就能清除无用的存档数据。
所有的数据都不重要
你可能受不了为你的业务保留所有数据的诱惑。你的数据有各种各样的来源,比如日志文件、现场交易、供应商整合、ETL工作、营销活动数据等等。但你应该知道,不是所有的数据都是关键业务,把它们都保存在一个数据仓库中可能不是很有帮助反而有害。在它们被存储到你的数据仓库之前,应从源头上过滤不需要的数据。如果你真需要在你的数据库的表里每一列存储和分析那些数据,就准备好发疯吧。

想好你想收集哪些作为数据


假设你进入一个在线视频编辑的业务。你想保存你的用户在每个视频上做的全部更改吗?这会产生巨大的体积。当你感觉到你的数据仓库可能无法处理它的情况下,你可能需要考虑只存储元数据。视频编辑是一个很可能的例子,不过它可能适用于许多其他与你存储数据相关的信息。
一般来说,如果你有一些有关系的数据,你就有机会从多个来源得到它们,而且不是所有的都需要存储在你的数据仓库中。

更智能的分析


聘请理解业务的分析师
现在,你可能已经明白“了解数据”对于有效地管理它们来说是非常重要的。相信我,当你觉得我已经试了所有这些东西时,这一步会帮到你。是时候让我们进入一个如Hadoop这样的大数据解决方案中了。
如果你的数据分析师不懂应从中提取什么出来,Hadoop就将几乎无用。应寄希望于那些理解业务的人。鼓励他们做实验和学习新的方法来看待相同的数据。找出哪些可以与现有基础设施取得唾手可得的收益。
为制订决策使用统计抽样
统计抽样是研究人员和数学家为了对大型数据推断合理结论而使用的一种非常古老的技术。
通过执行一个统计的样本,我们的体积可以极大地减少。不用跟踪数百万或数十亿的数据点,我们只需要随机挑选几千或几百个即可。
该技术不能提供准确的结果,但是它可以被用于对一个大型数据集获得高水平的理解。

定标技术


你真地把关系数据库的处理发挥到极致了吗?
在你真去探索其他技术之前,我希望你去看看关系型数据库是否能够处理它。人们使用关系数据库已经很久了,已经托管了一些几T字节大小的数据仓库。在你决定进入hadoop之前,你可以对关系数据库尝试以下方法。
数据分区
数据分区就是逻辑上和/或物理上把数据划分成一些更容易维护或访问的部分的过程。分区支持最流行的开放源代码关系数据库(MySQL 分区 和 Postgres 分区 )。
对关系数据库尝试数据库分片的方法
数据库分片可以作为对关系数据库的处理速度发挥到极限的最后一个手段。这种方法可以应用于你可以逻辑上分离数据到不同的节点,并在你的分析中有更少的交叉节点连接的时候。在web应用程序中,一个常见的分片方法是基于把用户和所有与一个用户相关的信息存储在一个节点上来确保最佳的速度。
分片并不容易,如果你有很多复杂的关系,并且没有简单的方法来分离数据到不同的节点上,这个方案可能不适合你。如果你的应用需要有很多交叉节点连接,分片的打算可能会失败。

结论


我曾在不同的公司被高层管理人员要求把Hadoop作为一个可选项去做某些事。要说服他们总是很难,但是当我把这个信息告诉他们后,他们不得不三思而后行。我很幸运,能为我工作的这些公司节省一些钱。
如果你发现为了扩大你的关系数据库,你已经尝试了所有可能的选项,这才是你应该开始考虑建立一个Hadoop集群的时候。
首先,您可能应该使用cloudera提供的虚拟机镜像。它们对于在你现有的基础设施上使用hadoop做快速的概念证明真的是很方便。

本文来源:http://www.importnew.com/5759.html

0人打赏
您需要登录后才可以回帖
发表回复
极贡献
技术问答
专题荟萃
程序人生
视觉设计
Android开发
iOS开发
编程语言
前端开发
后端开发
服务器架构
软件测试
运维方案
创业路上



最热文章墙

  • 70506/366   【精品推荐】200多种Android动画效果的强悍框架,太全了,不看这个,再有动画的问题,不理你了^@^

  • 40104/190   情人节福利,程序员表白的正确姿势:改几行代码就变成自己的表白了

  • 37795/0   Python爬虫:常用浏览器的useragent

  • 36810/259   【精品推荐】Android版产品级的音乐播放器源码,功能太强大了,最好的产品原型有木有?

  • 35801/145   省时省力的Android组件群来了,非常棒的原型参考

  • 28125/2   超全!整理常用的iOS第三方资源

  • 27431/71   原创表白APP,以程序员的姿势备战新年后的7夕,持续完善中!

  • 27035/142   2016抢红包软件及源码

  • 21789/30   麻省理工的一帮疯子,真的实现了随意操控万物!(绝对黑科技)

  • 21419/25   Android工程师面试题大全

  • 21213/27   2016程序员跳槽全攻略

  • 21131/155   Android版类似UC浏览器:非常赞,产品级的源码

  • 21044/9   GitHub上排名前50的iOS项目:总有一款你用得着

  • 20015/20   码魂:程序员的牛B漫画

  • 18234/10   2016年最全的Android面试考题+答案 精编版

  • 17997/3   吐槽那些程序员的搞笑牛逼注释

  • 17461/42   一个绚丽的loading动效分析与实现!

  • 17264/85   Android小而全的博客源码:非常适合全面掌握开发技巧

  • 17175/73   【持续更新中】Android福利贴(二):资料源码大放送

  • 16939/1   iOS 动画总结

  • 16313/45   惊艳的App引导页:背景图片切换加各个页面动画效果

  • 16044/23   个人收集的Android 各类功能源代码

  • 15791/10   女程序员的梦,众网友的神回复

  • 15664/81   仿京东商城客户端Android最新版,不错的原型和学习资料

  • 15594/5   新一代Android渠道打包工具:1000个渠道包只需要5秒

  • 15496/11   年会上现场review代码是怎么样的体验!

  • 15225/103   Android带弹幕的视频播放器源码,来自大名鼎鼎的Bilibili弹幕网站

  • 15091/53   基于瀑布流的美女图片浏览App,有注释的源代码

  • 15074/20   Android福利第三波【Android电子书】

  • 15027/17   用JavaScript 来开发iOS和Android 原生应用:React Native开源框架中文版来啦

  • 15013/23   珍藏多年的素材,灵感搜寻网站

  • 14581/78   【精品推荐】类似360安全卫士安Android源码:非常赞的产品原型

  • 14388/0   iOS中文版资源库,非常全

  • 14142/18   65条最常用正则表达式,你要的都在这里了

  • 14007/15   基于Android支付宝支付设计和开发方案

  • 13476/17   什么是真正的黑客:收获12200+Stars,人气远超微软开源VS

  • 13189/11   有木有这样一张酷图帮你集齐所有git命令超实用

  • 12849/7   一张图搞定iOS学习路线,非常全面

  • 12704/7   用程序员的姿势抢过年的火车票

  • 12680/46   在线音乐播放器完整版(商用级的源码):非常赞,可听免费高品质专辑

  • 12447/10   成为Java顶尖程序员 ,看这11本书就够了

  • 12344/0   GitHub iOS 库和框架Top100 

  • 12292/10   微信支付终于成功了(安卓,iOS),在此分享

  • 12253/18   一张图搞定Android学习路线,非常全面

  • 11971/61   【技巧一】搭配Android Studio,如何实现App远程真机debug?

  • 11932/3   基于Node.js的强大爬虫,能直接发布抓取的文章哦

  • 11795/29   【持续更新中】Android福利贴(一):资料源码

  • 11176/4   46 个非常有用的 PHP 代码片段

  • 11005/3   即时通信第三方库

  • 10707/8   流媒体视频直播方案

  • 10575/18   八个最优秀的Android Studio插件

  • 10575/9   B站建开源工作组:APP想支持炫酷弹幕的看过来

  • 10398/9   烧了5亿美金,这家神秘的公司即将颠覆人类未来!

  • 10253/2   【精品推荐】高质量PHP代码的50个实用技巧:非常值得收藏

  • 10243/10   中国黑客的隐秘江湖:攻守对立,顶尖高手月入千万美元

  • 9639/6   开箱即用!Android四款系统架构工具

  • 9451/10   十大技巧快速提升Android应用开发性能

  • 9387/3   10款GitHub上最火爆的国产开源项目——可以媲美西半球

  • 9342/3   一张图看清Linux 内核运行原理

  • 9175/1   Android性能优化视频,文档以及工具

  • 返回顶部