Hadoop client and cluster separation
我是hadoop 的新手,linux 也是如此。我的教授要求我们使用端口映射或 VPN 将 Hadoop 客户端和集群分开。我不明白这种分离的意义。谁能给个提示?
现在我有了集群客户端分离的想法。我认为客户端机器上也需要安装hadoop。当客户端提交一个hadoop作业时,它被提交给集群的主服务器。
我还有一些幼稚的想法:
1.创建客户端机器并安装hadoop .
2. 将 fs.default.name 设置为 hdfs://master:9000
3. 将 dfs.namenode.name.dir 设置为 file://master/home/hduser/hadoop_tmp/hdfs/namenode
对吗?
4.那我不知道怎么设置dfs.namenode.name.dir等配置。
5.我觉得主要思路是设置配置文件让作业在hadoop集群中运行,但是具体怎么做我不知道。
首先..这个链接有关于客户端如何与namenode通信的详细信息
http://www.informit.com/articles/article.aspx?p=2460260
用户不应破坏集群的功能。就是这个意思。想象一下,有一大群数据科学家从集群的一个主人那里开始他们的工作。如果有人启动内存密集型操作,在同一台机器上运行的主进程可能最终没有内存并崩溃。这将使整个集群处于故障状态。
如果您将客户端节点与主/从节点分开,用户仍然可以使客户端崩溃,但集群会保持正常运行。
- 最简单的方法是将配置从集群节点完全复制到客户端。通常 hadoop 配置位于 /etc/hadoop/conf 中。将此目录从主计算机复制到客户端计算机。您应该在集群和客户端中安装相同版本的 hadoop。
- 那么datanodes和namenodes呢?它们也会在客户端硬盘中吗?
- 您不必在客户端计算机上运行任何服务。通过”安装相同版本的 hadoop”,我的意思是,将它们全部放在硬盘上(二进制文件、库等)。
- 我需要在客户端机器上全部启动吗?我需要将客户端机器添加到集群机器的hosts文件中吗?
- 不,您不必启动任何 hadoop 服务。我不确定”主机”文件。是 /etc/hosts 吗?如果是,那么是的,您应该将客户端的主机名添加到所有集群节点上的 /etc/hosts 中。
来源:https://www.codenong.com/35314130/