【问题标题】:Hadoop client node installationHadoop客户端节点安装
【发布时间】:2016-07-22 18:45:51
【问题描述】:

我有 12 个节点的集群。它的硬件信息是:

NameNode: CPU Core i3 2.7 Ghz | 8GB 内存 | 500 GB 硬盘

DataNode: CPU Core i3 2.7 Ghz | 2GB 内存 | 500 GB 硬盘

我已经安装了 hadoop 2.7.2。我在 ubuntu 上使用正常的 hadoop 安装过程,它工作正常。但我想添加客户端机器。我不知道如何添加客户端机器。

问题:

  1. 客户端机器的安装过程。 ?
  2. 如何在该客户端机器上运行 pig/hive 的任何脚本?

【问题讨论】:

  • 请将您的帖子限制在一个问题上。您要求的信息非常广泛

标签: hadoop


【解决方案1】:

客户端应该拥有与 Namenode 相同的 Hadoop 分发和配置副本,然后只有客户端会知道 Job tracker/Resourcemanager 正在哪个节点上运行,以及 Namenode 的 IP 以访问 HDFS 数据。

您还需要使用 IP 地址和 namenode 和 datanode 的主机名更新客户端机器的 /etc/hosts。 请注意,您不应在客户端计算机上启动任何 hadoop 服务。

在客户端计算机上执行的步骤:

  • 在集群上创建一个用户帐户,比如user1
  • 在客户端计算机上创建一个同名帐户:user1
  • 配置客户端机器以访问集群机器(ssh w\out passphrase,即无密码登录)
  • 复制/获取与集群相同的hadoop分发到客户端机器并将其提取到/home/user1/hadoop-2.x.x
  • 从集群的 Namenode 复制(或编辑)hadoop 配置文件 (*-site.xml) - 从此客户端将知道 Namenode/resourcemanager 正在运行的位置。
  • 设置环境变量:JAVA_HOMEHADOOP_HOME(/home/user1/hadoop-2.x.x)
  • 将 hadoop bin 设置为您的路径:export PATH=$HADOOP_HOME/bin:$PATH

测试一下:hadoop fs -ls / 应该会列出集群 hdfs 的根目录。

您可能会遇到权限等问题,可能需要在客户端计算机上设置 JAVA_HOME 位置,例如 conf/hadoop-env.sh。更新/评论您遇到的任何错误。

对来自 cmets 的更多问题的回答:

  1. 如何将数据从客户端节点加载到 hdfs ? - 只需从客户端计算机运行 hadoop fs 命令:hadoop fs -put /home/user1/data/* /user/user1/data - 如果需要,您还可以编写运行这些命令的 shell 脚本多次运行它们。
  2. 如果我们只使用ssh远程连接到主节点,为什么还要在客户端安装hadoop?

    • 因为客户端需要和集群通信,需要知道 集群节点在哪里。
    • 客户端将运行 hadoop 作业 像 hadoop fs 命令、hive 查询、hadoop jar commnads、spark 工作,开发客户需要的mapreduce工作等 客户端节点上的 hadoop 二进制文件。
    • 基本上你不仅使用ssh 连接,但是您正在对 hadoop 集群执行一些操作 客户端节点,因此您需要 hadoop 二进制文件。
    • ssh 被使用 当您从客户端节点到集群运行 hadoop fs -ls/ 等操作时,客户端节点上的 hadoop 二进制文件。 (记得在上面的安装过程中将$HADOOP_HOME/bin 添加到PATH
    • 当你说“我们只使用ssh”时——在我看来,当你想从使用ssh 连接到集群节点的集群中进行更改/访问hadoop 配置文件时——你这样做是作为一部分管理工作,但是当您需要从客户端节点对集群运行 hadoop 命令/作业时,您不需要手动 ssh - 客户端节点上的 hadoop 安装会处理它。
    • 如果没有安装 hadoop,如何从客户端节点到集群运行 hadoop 命令/作业/查询?

    3.用户名“user1”必须相同吗?如果它不同怎么办? - 它会起作用。您可以在组用户下的客户端节点上安装 hadoop:qadev,客户端节点上的所有用户都可以作为该组下的 sudo。与客户端节点上的user1 需要在集群上运行任何hadoop 作业相比:user1 应该能够sudo -i -u qa 然后从中运行hadoop 命令。

【讨论】:

  • 好的,它工作正常。但是1.如何将数据从客户端节点加载到hdfs?
  • 2.如果我们只使用 ssh 远程连接到主节点,为什么我要在客户端安装 hadoop?
  • 3.用户名“user1”必须相同吗?如果不一样呢?
  • 查看更新的答案:我认为您最初的两个问题正在得到解答。如果这对您有所帮助,请接受此作为答案。如果您还有其他问题,也请告诉我。或者您可以为他们创建单独的帖子。
猜你喜欢
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 2018-04-27
  • 2016-09-24
  • 2019-12-26
  • 2013-06-15
相关资源
最近更新 更多