1个大型hadoop和hbase集群vs 1个hadoop集群+1个hbase集群

vmdwslir  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(393)

hadoop将通过从hbase读取数据并将数据写入hbase来运行大量作业。假设我有100个节点,那么有两种方法可以构建hadoop/hbase集群:
100节点hadoop&hbase集群(1个大型hadoop&hbase)
分开数据库(hbase),我们有两个集群:60节点hadoop集群和40节点hbase集群(1个hadoop+1个hbase)
哪种选择更好?为什么?
谢谢。

t9aqgxwy

t9aqgxwy1#

我想说方案2更好。
我的理由是——尽管您的需求主要是运行大量mapreduce作业来读取和写入hbase中的数据,但hbase在优化这些读取和写入作业方面还有很多工作要做。hmaster必须经常进行负载平衡,除非您的区域密钥完全平衡。table上可以有热插销。对于regionserver,会有一些重要的压缩,如果你的jvm技能不是很好,那么偶尔会发生停止世界垃圾收集。所有区域可能同时开始分裂。您的regionserver可能会宕机,以此类推。
关键是,调整hbase需要时间。如果您只有一个专用于hbase的节点,则出现上述问题的概率更高。拥有多个节点总是更好的,这样所有的性能压力就不会只适用于一个节点。顺便说一句,hbase的得分点是它固有的分布式特性,你不会想杀死它。
总而言之,您可以对hadoop和hbase之间的节点比率进行实验——可能是70:30或80:20。里程数可能会根据您的申请要求而有所不同。

bfhwhh0e

bfhwhh0e2#

将hbase和hadoop分开的主要原因是它们有不同的使用场景,即hbase以低延迟进行随机读写,hadoop进行顺序批处理。在这种情况下,不同的访问模式可能会相互干扰,最好将集群分开。
如果您只是在批处理模式下使用hbase,那么您可以使用相同的集群(并且可能会重新考虑使用hbase,因为它比批处理的原始hadoop慢)。
请注意,您需要按照chandra kant提到的路线来调优hbase,而不管您选择哪条路径

相关问题