我对hadoop有基本的了解。我的问题是关于客户机/开发人员如何连接到hadoop集群来执行查询
例如,我是一个hadoop开发人员。hadoop集群在某个远程位置。如何连接到hadoop集群来运行java代码?我是否也必须在笔记本电脑中安装hadoop(为此我必须运行linux)?
或者,如果我和hadoop集群在同一个网络中,只需将共享装载到我的笔记本电脑中,并将代码放入hadoop集群,这样可以吗?
第二个问题:为了运行java代码,我是否必须ssh到任何数据节点,然后运行作业?
以上两个问题一直困扰着我。我没有实时经验。
提前谢谢!
2条答案
按热度按时间xcitsw881#
要打开文件,客户机将联系namenode并检索组成文件的块的位置列表。这些位置标识保存每个块的数据节点。然后,客户机直接从datanode服务器读取文件数据,可能是并行读取。namenode不直接参与此批量数据传输,将其开销保持在最低限度。
我认为您对hadoop集群还没有足够的了解,通过这个链接您将完全了解hadoop集群
http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/
kninwzqo2#
据我所知,在笔记本电脑中安装hadoop并不是在hadoop集群中运行作业的必要条件,您只需获得对作业跟踪器的远程访问并提交作业即可。
对于第二点“如果我和hadoop集群在同一个网络中,只需将共享挂载到我的笔记本电脑中,并将代码放入hadoop集群中,这样可以吗?”
将代码放入hadoop集群必须通过正确的通道,即通过主节点。在hadoop中,您必须将数据和代码提交给主节点,而主节点的职责是将数据和代码分发给集群。
要运行java代码,我是否必须通过ssh连接到任何数据节点,然后运行作业?==>您必须通过ssh连接到jobtracker,而不是datanode。数据节点是存储数据的从属节点。jobtracker是在集群中分配作业的主控程序。