2012-11-12 137 views
3

我是Hadoop,HBase和Hive的新手。我以伪分布模式安装Hadoop,HBase和Hive,一切正常。 现在我打算用Hive,HBase和ZooKeeper建立一个简单的Hadoop集群(5个节点)。我之前已经阅读过几份文件和说明,但我无法找到解决我的问题的好方法。我不确定,在哪里运行所有的守护进程。这是我的考虑:配置Hadoop,HBase和Hive集群

Node_1(主)

  • 的NameNode
  • JobTrakcer
  • HBase的主
  • 动物园管理员(独立节点;通过HBase的管理)


Node_2(Backup_Master)

  • SecondaryNameNode


Node_3上(SLAVE1)

  • DataNode1
  • TaskTracker1
  • RegionServer1


Node_4上(SLAVE2)

  • DataNode2
  • 的TaskTracker 2
  • RegionServer2


Node_5上(Slave3)

  • DataNode3
  • TaskTracker3
  • RegionServer3


我知道,在生产中,建议在奇数节点(单独的集群)中运行的ZooKeeper合奏。但是对于一个简单的集群,可以设置一个在主节点上运行的独立ZooKeeper节点吗?

另一个问题是关于Hive:我知道Hive是一个Hadoop客户端。我是否也应该在主节点上安装Hive?是否有意义?

感谢您的所有提示和意见! Hakan

注:我只有5台机器来模拟群集。

+0

这与您的问题无关,但我想向您指出SecondaryNameNode是* not *备份NameNode。这是一个常见的错误,但这不是SecondaryNameNode的目的。如果你想简单地备份,你应该考虑拥有一个被动/主动NameNode。来源:http://wiki.apache.org/hadoop/FAQ#What_is_the_purpose_of_the_secondary_name-node.3F –

+0

感谢您的提示埃里克! **没有人可以帮我解决我的问题吗?这真的很紧急.. ** – user1818390

回答

0

出于测试目的,我相信你可以在主节点上设置Zookeeper;我确实将它们全部安装在同一台服务器上。

我不明白你的问题为什么你在伪分布式模式下安装hadoop如果你的集群中有5台机器?安装完全分布式模式可能会更好。

对于蜂巢,似乎你必须使用Hadoop

Hive uses hadoop that means: 

you must have hadoop in your path OR export HADOOP_HOME=<hadoop-install-dir> 
+0

感谢您的答复!不是,首先以伪分布式模式将Hadoop和所有其他项目安装在一台机器上(本地),并且工作正常。现在我正计划用5台机器以完全分布模式安装hadoop。因此,我的问题,至极机器启动所有的守护进程..这是什么意思,用hadoop安装配置单元? Hive是Hadoop的Cient。在第一个Node(Master)上安装Hive没有意义吗? – user1818390

+0

是的,我历来在你的第一个节点上安装了Hive。 –

0

对于蜂巢安装它,看来,你必须使用Hadoop安装 蜂巢使用Hadoop的,这意味着: 你必须有hadoop在你的路径或出口HADOOP_HOME =

@iTech:是的。如果你安装配置单元,你必须将变量“HADOOP_HOME”设置为你的hadoop安装路径。但这不是问题。正如我所说的,我以前使用Hadoop和Hive以伪分布模式工作。

唯一的问题是,我不确定在完全分布式模式下运行5节点群集中的所有守护进程的位置。 I'm困惑,因为我想跑了很多工具一起(的Hadoop,HBase的和蜂巢)

希望有人有一个很好的提示...

0

如果您计划使用所描述的集群测试目的,可以将所有主节点放在同一台服务器上。您也可以将SecondaryNameNode角色移动到Node_1,因为SecondaryNameNode不是NameNode的备份服务器,它的存在地址为make checkpoints of your NameNode。因此,将Node_2用作群集中的另一个“工作者”节点或HiveServer2和Metastore是有意义的。

希望这会有所帮助。