Hadoop客户端节点配置

时间:2014-03-07 14:09:47

标签: hadoop

假设有一台拥有20台计算机的Hadoop集群。在这20台机器中,18台机器是奴隶,机器19用于NameNode,机器20用于JobTracker。

现在我知道必须在所有这20台机器中安装hadoop软件。

但我的问题是将文件xyz.txt加载到Hadoop Cluster中涉及哪台机器。该客户机是否是一台单独的机器。我们是否也需要在该clinet机器中安装Hadoop软件。客户端机器如何识别Hadoop集群?

3 个答案:

答案 0 :(得分:10)

我是hadoop的新手,所以根据我的理解:

如果您的数据上传不是群集的实际服务(应该在群集的边缘节点上运行),那么您可以将自己的计算机配置为边缘节点。

群集不需要知道边缘节点(但对于安全性内容),因为它不存储数据或计算作业。这基本上是边缘节点的意思:它连接到hadoop集群但不参与。

如果它可以帮助某人,以下是我为连接到我不管理的群集所做的工作:

  • 在群集上获取帐户,例如myaccount
  • 在您的计算机上创建一个名称相同的帐户:myaccount
  • 配置您的计算机以访问群集计算机(ssh w \ out passphphrase,registered ip,...)
  • 从群集的边缘节点获取hadoop配置文件
  • 获取hadoop distrib(例如来自here
  • 将其解压缩到您想要的位置,比如/home/myaccount/hadoop-x.x
  • 添加以下环境变量:JAVA_HOMEHADOOP_HOME/home/me/hadoop-x.x
  • (如果您愿意)将hadoop bin添加到您的路径:export PATH=$HADOOP_HOME/bin:$PATH
  • 替换您从边缘节点获得的hadoop配置文件。使用hadoop 2.5.2,它是文件夹$HADOOP_HOME/etc/hadoop
  • 另外,我必须更改conf文件中定义的一对$JAVA_HOME的值。要查找它们,请使用:grep -r "export.*JAVA_HOME"

然后执行hadoop fs -ls /,它应列出群集hdfs的根目录。

答案 1 :(得分:5)

通常情况下,如果您拥有多租户群集(大多数hadoop群集都必定),那么理想情况下,管理员以外的任何人都无法访问属于群集的计算机。

开发人员设置他们自己的"边缘节点"。边缘节点基本上有hadoop库并且已经部署了客户端配置(各种xml文件告诉本地安装,其中namenode,job tracker,zookeeper等是core-site,mapred-site,hdfs-site.xml)。但是边缘节点在集群中没有任何角色,即在该节点上没有运行持久性hadoop服务。

现在,在小型开发环境类型的设置中,您可以使用群集中任何一个参与节点来运行作业或运行shell命令。

因此,根据您的要求,客户的定义和位置会有所不同。

答案 2 :(得分:5)

我推荐这个article。 “客户端计算机安装了Hadoop,其中包含所有集群设置,但既不是主服务器也不是从服务器。相反,客户端计算机的作用是将数据加载到集群中,提交描述如何处理数据的Map Reduce作业,以及然后在完成时检索或查看作业的结果。“