假设有一台拥有20台计算机的Hadoop集群。在这20台机器中,18台机器是奴隶,机器19用于NameNode,机器20用于JobTracker。
现在我知道必须在所有这20台机器中安装hadoop软件。
但我的问题是将文件xyz.txt加载到Hadoop Cluster中涉及哪台机器。该客户机是否是一台单独的机器。我们是否也需要在该clinet机器中安装Hadoop软件。客户端机器如何识别Hadoop集群?
答案 0 :(得分:10)
我是hadoop的新手,所以根据我的理解:
如果您的数据上传不是群集的实际服务(应该在群集的边缘节点上运行),那么您可以将自己的计算机配置为边缘节点。
群集不需要知道边缘节点(但对于安全性内容),因为它不存储数据或计算作业。这基本上是边缘节点的意思:它连接到hadoop集群但不参与。
如果它可以帮助某人,以下是我为连接到我不管理的群集所做的工作:
myaccount
myaccount
/home/myaccount/hadoop-x.x
JAVA_HOME
,HADOOP_HOME
(/home/me/hadoop-x.x
)export PATH=$HADOOP_HOME/bin:$PATH
$HADOOP_HOME/etc/hadoop
$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作业,以及然后在完成时检索或查看作业的结果。“