数据蒋堂 | Hadoop - 一把杀鸡用的牛刀

作者:蒋步星

来源:数据蒋堂

本文共1800字建议阅读6分钟。
通过本文为大家解读为什么Hadoop不适合小集群实现。

                    


Hadoop是个庞大的重型解决方案,它的设计目标本来就是大规模甚至超大规模的集群,面对的是上百甚至上千个节点,这样就会带来两个问题:


  • 自动化管理管任务分配机制:这样规模的集群,显然不大可能针对每个节点提供个性化的管理控制,否则工作量会大到累死人,必须采用自动化的管理和任务分配手段,而这并不是件简单的事情。

  •  强容错能力:大规模集群在某个任务执行周期内,也就是几小时之内,都有可能发生设备故障。如果没有强容错能力可能任何任务都无法执行出来。而容错同样并不容易实现,同样非常消耗计算和存储资源。


而且,Hadoop的产品线丰富,这本来是好事情,但要把这些模块都放在一个平台上运行,还要梳理好各个模块之间的相互依赖性,就需要一个包罗万象的复杂框架,这也使得Hadoop体系显得很沉重。



但是,很多情况下,用户的数据并不总会有那么多。除了一些互联网巨头企业和国家级通信运营商及银行外,大多数用户的数据量并没有大到需要几百上千个节点才能处理的地步。而且,很多用户也只是为了常规的结构化数据运算(主要也就是SQL),用不着那么完整的产品线。


结果,我们经常看到的现象是:用户上了Hadoop,只有四个或八个节点,多的也就十来个,而且也只是安装个Hive(或别的类似解决方案)来跑跑SQL。

这就是“杀鸡用牛刀了”!


为什么会这样?


道理很简单。现在大数据平台是个业界趋势,而经过几年的宣传,用户都觉得传统关系数据库不再是未来的方向,即使现在还能用,但总觉得继续投资在关系数据库上就有被时代甩下的风险,于是都想去尝试新技术。但找来找去,也只有Hadoop勉强可用了,选择Hadoop变成一个政治正确的事情了。



那么,选用Hadoop有什么不好呢?牛刀就牛刀,牛刀也可以用来杀鸡,反正它开源不要钱,


不是这样的。虽然Hadoop软件本身是开源免费的(其实很多用户上的是商业公司的产品,本来也并不便宜),但因为它的复杂性,想配置用好它并不容易,维护支持的成本一点也不低。Hadoop事实上是个高端产品,并不很适合数据量规模没有大到需要上百节点的中小用户。


大集群和小集群的实现技术是完全不一样的,Hadoop为了解决大集群问题而付出的努力并不是没有成本的。



统一的自动化管理机制固然让管理工作变简单了,但也限制了程序员的灵活性。开发人员只能去适应,难以写出适合业务和数据特征的代码,这样无法发挥机器的最大效能。比如想控制HDFS的文件冗余方案,让不同文件的冗余数不同,而特定的冗余方案能有效地减少网络传输量从而提高性能。这也许能够通过修改Hadoop源码来实现,但并不轻松,而且随意修改底层源码又会影响升级。


对于小规模的集群,则没有必要采用统一管理方式,可以针对每个节点进行个性化配置,程序员也可以自由决定每个节点的计算任务和数据分布,这样可以更有效地利用硬件资源,获得最高的性能,虽然会需要更细致的工作,但对于小规模集群,这增加的工作量仍然是可以接受的。



Hadoop投入了相当多资源来实现超强的容错,这对于大集群当然也非常必要的。比如MapReduce为了容错把任务拆得太碎,而且每次执行结果都会写盘,以保证任务过程中有节点故障时仍然可以执行下去,这会严重影响性能。而且,这种体系也难以直接控制执行次序,在编写有序有关联运算时就很困难,需要费劲去绕(这个问题以后还会再谈到)。


而对于几个到十几个节点的小集群,就不需要这么强的容错能力了。在几小时的任务周期内,整个集群所有节点都能正常工作是个大概率事件。对于小集群,我们只要保证有少数节点故障时整个集群还能继续工作以接受新任务,而让当前正在执行的任务失败也是可以容忍的,毕竟这并不会经常发生。



复杂的框架本身也会消耗很多资源。小集群本来就没有几个节点,还要把有限的资源花费在这些不实际计算的事情上,显然是不划算的。在目标任务类型较为单一时,应当选择更适合的框架,没必要去追求大而全的东西。


“牛刀”应当去做它适合做的事,也就数据量大但运算简单的任务,用俗话说就是“傻大笨粗”。真到了几百个节点的集群,那还只有Hadoop能做了,而精细的活儿真不合适它来干。


对于小集群,我们需要更轻量级的大数据解决方案。


大数据的技术本质是高性能,而提高性能的需求无处不在,并不是只有那种规模的大数据。比如即时查询设计的数据量就不会也不可能太大(否则不可能即时),这种场景会要求有很好的集成性,但Hadoop基本上不可能被嵌到应用程序里面,它只能在边上作为一个数据源工作;有些临时性数据处理时需要随时使用,也不可能再为之专门建设大数据平台,比如为了处理一批日志而搭建一个Hadoop,等环境搭好时任务已经过期了。

专栏作者简介

润乾软件创始人、首席科学家


清华大学计算机硕士,著有《非线性报表模型原理》等,1989年,中国首个国际奥林匹克数学竞赛团体冠军成员,个人金牌;2000年,创立润乾公司;2004年,首次在润乾报表中提出非线性报表模型,完美解决了中国式复杂报表制表难题,目前该模型已经成为报表行业的标准;2014年,经过7年开发,润乾软件发布不依赖关系代数模型的计算引擎——集算器,有效地提高了复杂结构化大数据计算的开发和运算效率;2015年,润乾软件被福布斯中文网站评为“2015福布斯中国非上市潜力企业100强”;2016年,荣获中国电子信息产业发展研究院评选的“2016年中国软件和信息服务业十大领军人物”;2017年, 自主创新研发新一代的数据仓库、云数据库等产品即将面世。


数据蒋堂

《数据蒋堂》的作者蒋步星,从事信息系统建设和数据处理长达20多年的时间。他丰富的工程经验与深厚的理论功底相互融合、创新思想与传统观念的相互碰撞,虚拟与现实的相互交织,产生出了一篇篇的沥血之作。此连载的内容涉及从数据呈现、采集到加工计算再到存储以及挖掘等各个方面。大可观数据世界之远景、小可看技术疑难之细节。针对数据领域一些技术难点,站在研发人员的角度从浅入深,进行全方位、360度无死角深度剖析;对于一些业内观点,站在技术人员角度阐述自己的思考和理解。蒋步星还会对大数据的发展,站在业内专家角度给予预测和推断。静下心来认真研读你会发现,《数据蒋堂》的文章,有的会让用户避免重复前人走过的弯路,有的会让攻城狮面对扎心的难题茅塞顿开,有的会为初入行业的读者提供一把开启数据世界的钥匙,有的甚至会让业内专家大跌眼镜,产生思想交锋。


往期回顾:

数据蒋堂 | JOIN延伸 - 维度概念

数据蒋堂 | JOIN提速 - 有序归并

数据蒋堂 | JOIN提速 - 外键指针的衍生

数据蒋堂 | JOIN提速 - 外键指针化

数据蒋堂 | JOIN简化 - 意义总结

数据蒋堂 | JOIN简化-消除关联

数据蒋堂 | JOIN简化 - 维度对齐

数据蒋堂 | JOIN运算剖析

数据蒋堂 | 迭代聚合语法

数据蒋堂 | 非常规聚合

数据蒋堂 | 再谈有序分组

数据蒋堂 | 有序分组

数据蒋堂 | 非等值分组

数据蒋堂 | 还原分组运算的本意

数据蒋堂 | 有序遍历语法

数据蒋堂 | 常规遍历语法

数据蒋堂 | 从SQL语法看离散性

数据蒋堂 | 从SQL语法看集合化

数据蒋堂 | SQL用作大数据计算语法好吗?

数据蒋堂 | SQL的困难源于关系代数

数据蒋堂 | SQL像英语是个善意的错误

数据蒋堂 | 开放的计算能力为数据库瘦身

数据蒋堂 | 计算封闭性导致臃肿的数据库

数据蒋堂 | 怎样看待存储过程的移植困难

数据蒋堂 | 存储过程的利之弊

数据蒋堂 | 不要对自助BI期望过高

数据蒋堂 | 报表的数据计算层

数据蒋堂 | 报表应用的三层结构

数据蒋堂 | 列式存储的另一面

数据蒋堂 | 硬盘的性能特征

数据蒋堂 | 我们需要怎样的OLAP?

数据蒋堂 | 1T数据到底有多大?

数据蒋堂 | 索引的本质是排序

数据蒋堂 | 功夫都在报表外--漫谈报表性能优化

数据蒋堂 | 非结构化数据分析是忽悠?

数据蒋堂 | 多维分析的后台性能优化手段

数据蒋堂 | JOIN延伸 - 维度查询语法

数据蒋堂 | 文件的性能分析

数据蒋堂 | RDB与NoSQL的访问性能

数据蒋堂 | 报表开发的现状

数据蒋堂 | 谈谈临时性计算

数据蒋堂 | 大数据计算语法的SQL化

数据蒋堂 | 大数据集群该不该透明化?

校对: 洪舒越


为保证发文质量、树立口碑,数据派现设立“错别字基金”,鼓励读者积极纠错

若您在阅读文章过程中发现任何错误,请在文末留言,或到后台反馈,经小编确认后,数据派将向检举读者发8.8元红包

同一位读者指出同一篇文章多处错误,奖金不变。不同读者指出同一处错误,奖励第一位读者。

感谢一直以来您的关注和支持,希望您能够监督数据派产出更加高质的内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断面世,而目前市场占有率最高的就是微信小程序,本次开发一套基于微信小程序的生签到系统,有管理员,教师,学生三个角色。管理员功能有个人中心,学生管理,教师管理,签到管理,学生签到管理,班课信息管理,加入班课管理,请假信息管理,审批信息管理,销假信息管理,系统管理。教师和学生都可以在微信端注册和登录,教师可以管理签到信息,管理班课信息,审批请假信息,查看学生签到,查看加入班级,查看审批信息和销假信息。学生可以查看教师发布的学生签到信息,可以自己选择加入班课信息,添加请假信息,查看审批信息,进行销假操作。基于微信小程序的生签到系统服务端用Java开发的网站后台,接收并且处理微信小程序端传入的json数据数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值