首页 > 编程知识 正文

hadoop的部署方案(hadoop)

时间:2023-05-05 15:35:18 阅读:104311 作者:4905

Hadoop是一种流行的大数据并行计算系统,廉价的横向扩展是其主要特点。但是Hadoop的廉价指的是硬件和软件许可的成本,而不是整体成本。Hadoop在学习成本、开发成本、管理成本上并不总是占优势,有时甚至硬件成本也不占优势。

学习成本高。Hadoop有一个庞大的生态系统,包括几十个相关的产品。常见的有MapReduce、HDFS、Hive、hbase、纱、Zookeeper、Avro、JAQL、PIG、solr、mesos、shark、stream和storm。熟悉这些产品的部署步骤、功能特性和开发方法需要很高的学习成本。

选择与产品相匹配的Hadoop版本并不容易。Hadoop版本比较混乱,分为一代和两代,每一代有十几个版本,每个版本都有不同的新特性,相对稳定的有:0.20.x、0.21.x、0.22.x、1.0.x、0.23.x、2.x等。

由于Hadoop还不够成熟和商业化,用户进入开发阶段后必须不断学习,以便及时更换有bug或性能缺陷的产品和版本。虽然一些商业上成熟的版本,比如Cloudera或者HorontWorks,仍然不够稳定。另外,在设计开发之前不要忘记学习Hadoop的开发框架。它的结构非常复杂,往往要深入阅读源代码才能实现。

开发成本高。Hadoop基于MapReduce编程。MapReduce缺乏底层功能,其计算功能不专业,尤其是对于结构化数据的计算功能。几乎没有提供。程序员需要自己实现这些算法:过滤、统计、唯一值、交集、排序、排序、上期对比、同期对比、相对位置计算、区间计算等。任何一个人都要写几十甚至几百行代码,很难通用,每次有新任务都要重写。

为了弥补结构化计算功能的弱点,Hive等工具诞生了,为Hadoop增加了类似SQL的特性。但是这种类似SQL的函数是有限的,与窗口函数和存储过程相比还有很大的差距。用户还是要用MapReduce来解决HiveQL无法实现的功能。为了实现业务计算中常见的业务逻辑,Hadoop用户需要雇佣更多的高级程序员,组建豪华的开发团队,这需要耗费大量的时间和人力。即便如此,还有很多复杂的业务逻辑是Hadoop无法实现的。

小型集群硬件成本高。如果集群规模很小,比如不到十个,Hadoop的硬件成本有时会高于数据库。这是因为Hadoop强大的容错机制会将任务进行非常精细的拆分,然后分发给不同的节点机器进行处理,并将中间结果存储在文件系统中,会导致调度成本高、硬盘IO频繁的现象,从而导致性能下降,需要更多的机器才能达到预期的性能。但是,数据库主要用于批量数据内存计算,性能要高得多。在相同的配置下,单个数据库相当于几个Hadoop节点机,有时成本更低。

管理成本高。Hadoop在小集群中硬件成本高,只有集群足够大才能降低硬件成本,这也是Hadoop的核心优势:廉价的横向扩展。大型集群的硬件单位成本较低,但昂贵的管理成本往往抵消了这一优势。例如,在小规模的情况下,可忽略的电力成本在这种情况下变得非常重要。大型集群意味着大量的节点和巨大的功耗,因此数据中心通常建在发电厂附近。此外,场地成本也不容忽视。大型集群需要更多的机架、更大的机房和更复杂的冗余电力系统,因此建设成本或租金自然很昂贵。最后是人力。大型集群需要更多的维护管理人员来操作,成本也不低。

总的来说,Hadoop并不是一个低成本的解决方案,用户不要被低硬件成本所迷惑,而应该根据自己的实际情况选择一个总成本更低的解决方案,包括数据库、开源或自由软件。

用户可以考虑在电力、场地和人力等管理成本较高的领域使用数据库。除了通过建设数据中心节省资金,数据库的学习成本和开发成本也比Hadoop低很多。

如果要实时分析流媒体大数据,开源项目Hydra是更好的选择。其底层架构是针对日志类的流数据设计的,性能高于Hadoop。

对于中小型集群,自由软件集中器是更好的选择。它开发成本低,擅长业务规则复杂的业务计算,性能比Hadoop高几倍。

总之,我们应该记住Hortonworks的CTO Eric baldeschwiel关于成本的说法:硬件成本只占Hadoop数据中心总成本的20%。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。