我是hadoop和linux的新手。我的教授让我们使用端口Map或vpn来分离hadoop客户机和集群。我不明白这种分离的意义。谁能给我一个提示吗?
现在我有了集群客户机分离的想法。我认为hadoop也必须安装在客户机上。当客户端提交hadoop作业时,它被提交给集群的主服务器。
我有一些想法:
1.创建客户端并安装hadoop。
2.1套 fs.default.name
成为 hdfs://master:9000
3.1套 dfs.namenode.name.dir
成为 file://master/home/hduser/hadoop_tmp/hdfs/namenode
对吗?
4.那么我不知道如何设置 dfs.namenode.name.dir
以及其他配置。
5.我认为主要的想法是设置配置文件,使作业在hadoop集群中运行,但我不知道如何准确地执行。
2条答案
按热度按时间lf3rwulv1#
用户不应该破坏集群的功能。就是这个意思。想象一下,有一群数据科学家从集群的一位主人那里开始了他们的工作。如果有人启动内存密集型操作,则在同一台计算机上运行的主进程可能最终没有内存并崩溃。这将使整个集群处于失败状态。
如果将客户机节点与主/从节点分开,用户仍可能使客户机崩溃,但集群将保持正常。
gdrx4gfi2#
首先。。此链接包含有关客户端如何与namenode通信的详细信息
http://www.informit.com/articles/article.aspx?p=2460260&seqnum=2
据我所知,您的教授希望有一个单独的节点作为客户端,您可以从中运行hadoop作业,但该节点不应该是hadoop集群的一部分。
考虑这样一个场景:您必须从客户机提交hadoop作业,而客户机不是现有hadoop集群的一部分。作业应该在hadoop集群上执行。
namenode和datanode组成hadoop集群,客户端向namenode提交作业。为了实现这一点,客户机应该拥有与namenode相同的hadoop发行版和配置副本。然后,只有客户端才知道job tracker在哪个节点上运行,以及namenode的ip以访问hdfs数据。
查看namenode上的配置,
core-site.xml将具有此属性-
mapred-site.xml将具有此属性-
这两个重要属性必须复制到客户机的hadoop配置中。您需要在mapred-site.xml文件中设置一个addtinal属性,以克服特权操作异常。
您还需要使用namenode和datanode的ip地址和主机名更新客户机的/ets/hosts。
现在您可以使用hadoopjar命令从客户机提交作业,作业将在hadoop集群上执行。注意,您不应该在客户机上启动任何hadoop服务。