Hadoop客户端节点安装

3

我有一个由12个节点组成的群集。其硬件信息如下:

NameNode:CPU Core i3 2.7 GHz | 8GB RAM | 500 GB HDD

DataNode:CPU Core i3 2.7 GHz | 2GB RAM | 500 GB HDD

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

问题:

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

请限制您的帖子只包含一个问题。您所询问的信息相当广泛。 - OneCricketeer
1个回答

9
客户端应该拥有与Namenode上存在的Hadoop Distribution和配置相同的副本,然后客户端才能知道Job tracker / Resourcemanager在哪个节点上运行,以及用于访问HDFS数据的Namenode IP。还需要使用namenode和datanode的IP地址和主机名更新客户端机器的/ etc / hosts。请注意,不应在客户端��算机上启动任何Hadoop服务。
客户端机器上的步骤如下: - 在群集上创建一个用户帐户,例如user1。 - 在客户端机器上创建具有相同名称的帐户:user1。 - 配置客户端机器以访问群集机器(ssh无口令即无密码登录)。 - 将与群集相同的Hadoop distribution复制/获取到客户端机器并将其提取到/home/user1/hadoop-2.x.x中。 - 从集群的Namenode复制(或编辑)hadoop配置文件(*-site.xml)-从这个客户端将知道Namenode / resourcemanager在哪里运行。 - 设置环境变量:JAVA_HOME,HADOOP_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。更新/注释您遇到的任何错误。
  1. 如何从客户端节点加载数据到HDFS? - 只需在客户端机器上运行hadoop fs命令:hadoop fs -put /home/user1/data/* /user/user1/data - 如果需要多次运行这些命令,您也可以编写 shell-scripts 来运行它们。
  2. 如果我们仅使用ssh远程连接到主节点,为什么要在客户端安装hadoop?

    • 因为客户端需要与集群通信,并且需要知道集群节点的位置。
    • 客户端将运行hadoop作业,例如 hadoop fs 命令、hive 查询、hadoop jar 命令、spark 作业、开发 mapreduce 作业等,这些作业需要客户端节点上的 hadoop 二进制文件。
    • 基本上你不仅仅是使用ssh进行连接,而是在客户端节点上执行一些操作,所以你需要 hadoop 二进制文件。
    • ssh被用于客户端节点上的 hadoop 二进制文件,当你从客户端节点运行这样的操作,比如 hadoop fs -ls/ 到集群上时。 (请记得在安装过程中 添加 $HADOOP_HOME/binPATH)
    • 当你说“我们仅使用ssh”时 - 对我来说这听起来像你想从集群中进行更改/访问 hadoop 配置文件时,你正在使用ssh连接到集群节点 - 你在执行管理工作的时候会这样做,但当你需要从客户端节点对集群运行 hadoop 命令/作业时,你不需要手动 ssh - 安装了客户端节点上的hadoop 将会处理好这一切。
    • 没有安装 hadoop,如何从客户端节点运行 hadoop 命令/作业/查询到集群?

    3. 用户名 'user1' 是否必须相同?如果不同会怎样? - 它也将正常工作。您可以在组用户下在客户端节点上安装 hadoop,例如: qadev,并将客户端节点上的所有用户作为sudo用户添加到该组中。那么当客户端节点上的user1需要在集群上运行任何 hadoop 作业时:user1 应该能够以 sudo -i -u qa 的身份运行 hadoop 命令。


好的,它运行得很好。但是,如何将客户端节点上的数据加载到HDFS中? - Ankur Singh
为什么我们只使用ssh远程连接到主节点,却要在客户端安装hadoop? - Ankur Singh
用户名称'user1'必须相同吗?如果不同会怎样? - Ankur Singh
我认为您最初的两个问题已经得到了解答。如果这对您有所帮助,请接受此回答。如果您有进一步的问题,请让我知道。或者您可以创建单独的帖子进行提问。 - Ronak Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接