Hadoop客户端节点安装

时间:2016-07-22 18:45:51

标签: hadoop

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

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

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

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

问题:

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

1 个答案:

答案 0 :(得分:4)

客户端应具有与Namenode相同的Hadoop Distribution和配置副本,然后只有客户端才能知道正在运行Job Tracker / Resourcemanager的节点,以及Namenode的IP以访问HDFS数据。

此外,您还需要使用namenode和datanode的IP地址和主机名更新/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的根目录。

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

回答评论中的更多问题:

  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 connect,但是你正在对hadoop集群执行一些操作 客户端节点,所以你需要hadoop二进制文件。
    • ssh被使用 当您从客户端节点到集群运行hadoop fs -ls/之类的操作时,客户端节点上的hadoop二进制文件。 (请记住,将$HADOOP_HOME/bin添加到PATH作为上述安装过程的一部分)
    • 当你说“我们只使用ssh”时 - 听起来就像你想要从使用ssh连接群集节点的群集进行更改/访问hadoop配置文件一样 - 你这是管理工作的一部分,但当您需要从客户端节点对集群运行hadoop命令/作业时,您不需要手动ssh - 客户端节点上的hadoop安装将负责它。
    • 没有hadoop instalations如何从客户端节点到集群运行hadoop命令/作业/查询?

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