Hadoop客户端节点安装

Ank*_*ngh 2 hadoop

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

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

DataNode: CPU核心i3 2.7 GHz | 2GB内存| 500 GB硬盘

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

题 :

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

Ron*_*tel 7

客户端应具有Namenode上存在的Hadoop分发和配置的相同副本,然后只有客户端才能知道作业跟踪器/资源管理器在哪个节点上运行,以及Namenode的IP来访问HDFS数据。

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

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

  • 在集群上创建一个用户帐户,例如 user1
  • 在客户端计算机上创建一个具有相同名称的帐户: user1
  • 配置客户端计算机以访问群集计算机(ssh w \ out密码,即少密码登录)
  • 将与群集相同的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命令,配置单元查询,hadoop jar commnads,spark作业,开发mapreduce作业等,客户端需要在客户端节点上使用hadoop二进制文件。
    • 基本上,您不仅使用了sshconnect,而且还在客户端节点上的hadoop集群上执行了一些操作,因此您将需要hadoop二进制文件。
    • ssh当您运行诸如hadoop fs -ls/ 从客户端节点到群集的操作时,客户端节点上的hadoop二进制文件会使用此命令。(请记住$HADOOP_HOME/binPATH在上述安装过程中添加为
    • 当您说“我们只使用ssh”时-对我来说听起来像是要从要连接ssh到集群节点的集群中进行更改/访问hadoop配置文件时,这是管理工作的一部分,但是当您需要运行时在客户端节点上针对集群的hadoop命令/作业不需要您ssh手动进行-在客户端节点上安装hadoop将解决此问题。
    • 没有hadoop安装,如何从客户端节点到集群运行hadoop命令/作业/查询?

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