Hadoop客户端节点配置

Hadoop客户端节点配置,hadoop,Hadoop,假设有一个Hadoop集群有20台机器。在这20台机器中,有18台机器是从机,19台机器用于NameNode,20台机器用于JobTracker 现在我知道hadoop软件必须安装在这20台机器上 但我的问题是,将文件xyz.txt加载到Hadoop集群需要哪台机器。那台客户机是一台独立的机器吗。我们是否也需要在clinet机器上安装Hadoop软件。客户端计算机如何识别Hadoop群集?通常,如果您有一个多租户群集(大多数Hadoop群集都绑定到该群集),那么理想情况下,除了管理员之外,没有其

假设有一个Hadoop集群有20台机器。在这20台机器中,有18台机器是从机,19台机器用于NameNode,20台机器用于JobTracker

现在我知道hadoop软件必须安装在这20台机器上


但我的问题是,将文件xyz.txt加载到Hadoop集群需要哪台机器。那台客户机是一台独立的机器吗。我们是否也需要在clinet机器上安装Hadoop软件。客户端计算机如何识别Hadoop群集?

通常,如果您有一个多租户群集(大多数Hadoop群集都绑定到该群集),那么理想情况下,除了管理员之外,没有其他人可以访问作为群集一部分的计算机

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

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


因此,根据您的要求,客户端的定义和位置各不相同。

我对hadoop不熟悉,因此根据我的理解:

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

边缘节点不需要集群知道(但出于安全考虑),因为它既不存储数据也不计算作业。这就是边缘节点的基本含义:它连接到hadoop集群,但不参与

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

  • 获取集群上的帐户,例如
    myaccount
  • 在您的计算机上创建一个同名帐户:
    myaccount
  • 配置您的计算机以访问群集计算机(ssh w\out密码、注册ip等)
  • 从集群的边缘节点获取hadoop配置文件
  • 获取hadoop发行版(如从)
  • 在需要的地方解压缩,比如说
    /home/myaccount/hadoop-x.x
  • 添加以下环境变量:,
    HADOOP\u HOME
    /HOME/me/HADOOP-x.x
  • (如果愿意)将hadoop bin添加到路径:
    export path=$hadoop\u HOME/bin:$path
  • 用从边缘节点获得的hadoop配置文件替换hadoop配置文件。对于hadoop 2.5.2,它是文件夹
    $hadoop\u HOME/etc/hadoop
  • 此外,我还必须更改conf文件中定义的两个
    $JAVA_HOME
    的值。要找到它们,请使用:
    grep-r“export.*JAVA\u HOME”
然后执行hadoop fs-ls/,它应该列出集群hdfs的根目录。

我建议这样做。
客户端计算机安装了Hadoop和所有群集设置,但既不是主计算机也不是从计算机。客户端计算机的作用是将数据加载到群集中,提交描述如何处理数据的Map Reduce作业,然后在作业完成时检索或查看作业的结果

如果客户端专用于运行各种hadoop作业,并使用Hive、Pig、hadoop GIS等按需将数据上载到HDFS,该怎么办?例如,为集群用户而不是管理员安装hadoop GIS需要做什么?在这方面,客户端节点上必须有什么?对于在客户机节点上运行并使用集群的这些工具,必须在主节点上执行哪些操作?这取决于您需要使用的库的类型。例如,Spark无需安装在群集上的任何位置。它可以在您的客户机节点上&作业将提交给您的纱线资源管理器。我不确定Hadoop GIS,但在大多数情况下,客户端安装和向分布式缓存中添加库就足够了。