Hadoop - Cloudera MRV1群集规划 - 理想群集的最小节点数是多少,它看起来如何?

时间:2014-01-06 21:43:30

标签: hadoop cluster-computing cloudera

我已手动安装了具有以下配置的三节点群集:

Master/Slave Node 0 - NameNode, Secondary NameNode, JobTracker, HMaster, 
    DataNode, TaskTracker, HRegionServer, 
    Hive MetaStore, Database for Hive/Sqoop, HiveServer2, HCatalog, 
    Oozie Server, 
    Zookeeper, 
    Oozie-client, Hive-client, pig-client, M/R client tools, Sqoop

Slave Node 1 - DataNode, TaskTracker, HRegionServer,  
    Oozie-client, Hive-client, pig-client, M/R client tools, Sqoop

Slave Node 2 - DataNode, TaskTracker, HRegionServer,  
    Oozie-client, Hive-client, pig-client, M/R client tools, Sqoop

我希望有一个更现实的群集。我正在考虑使用12-14个节点进行以下操作:

Master 0: Name Node
Master 1: Secondary NameNode
Master 2: JobTracker
Master 3: HMaster

Slave 0: DataNode, TraskTracker, HRegionServer
Slave 1: DataNode, TraskTracker, HRegionServer
Slave 2: DataNode, TraskTracker, HRegionServer

Hive/Catalog Node: Hive MetaStore, 
    Sqoop MetaStore
    MySQL/PostgreSQL Database for Hive/Sqoop, 
    HCatalog, 
    HiveServer (Or is it better to break HiveServer into its own node?)
    Oozie-Server (Or is it better to break Oozie-server into its own node?)

Zookeeper Ensemble: 3 Nodes with Zookeper installed

客户端节点:Oozie-client,Hive-client,pig-client,M / R客户端工具,Sqoop

或者,以图表格式:

enter image description here

我知道Cloudera喜欢你:

A separate Master Node for each Master Process (NameNode, Secondary NameNode, JobTracker, HMaster)
3 Slave nodes with DataNode, TaskTracker, and HRegionServer
3 Zookeeper Nodes
"The database, the HiveServer process, and the metastore service can all 
be on the same host, but running the HiveServer process on a separate host 
provides better availability and scalability."

我为我的Hive数据库和我的Oozie数据库使用了相同的MySQL实例,并认为可以再做一次。我还想知道HiveServer和Oozie服务器可以和Hive / Oozie MetaStore一起运行在主机上,还有HCatalog。

目前在我的三节点集群上,我已在每个节点上安装了所有客户端软件,因此我可以从任何节点执行M / R,Hive,Oozie,HBase,Pig等客户端调用。这些客户端工具是否应该在与主节点和从节点分开的节点上执行?说到这一点,我把所有的java / python / pig代码放在我的三节点集群中的主节点上。这些数据是否也更好地放在单独的客户端节点上?

我在正确的道路上吗?制作最小但理想的群集的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您的设置在大多数情况下看起来非常标准。不幸的是,没有“理想”的集群,这完全取决于您的工作量。如果你需要大量的计算,可能最好在MapReduce组件上加重。如果您只打算使用HBase进行低延迟访问,那么您可能希望完全放弃MapReduce。

我会对您的设置提出一些一般性建议。

  1. 您可以将RegionServers与Zookeeper节点共置,只需为Zookeeper节点提供自己的磁盘即可。

  2. 小心共同定位TaskTrackers和RegionServers,特别是如果您的大部分HBase使用都是重扫描的话。这两个进程都是CPU和内存密集型的,可能会导致资源争用问题。 This page详细了解了在这种情况下该怎么做

  3. 就代码组织和客户端设置而言,这真的是你的电话。我个人更喜欢设置一些gateway nodes,它们具有与hive,hbase等交谈的所有配置以及从那里运行的工作,但同样没有完美的答案。