我有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安装过程,它工作正常。但是我想添加客户端机器。我不知道如何添加客户端机器。
问题:
答案 0 :(得分:4)
客户端应具有与Namenode相同的Hadoop Distribution和配置副本,然后只有客户端才能知道正在运行Job Tracker / Resourcemanager的节点,以及Namenode的IP以访问HDFS数据。
此外,您还需要使用namenode和datanode的IP地址和主机名更新/etc/hosts
客户端计算机。
请注意,您不应该在客户端计算机上启动任何hadoop服务。
关于客户端计算机的步骤:
user1
user1
/home/user1/hadoop-2.x.x
JAVA_HOME
,HADOOP_HOME
(/home/user1/hadoop-2.x.x
)export PATH=$HADOOP_HOME/bin:$PATH
测试它:hadoop fs -ls /
,它应该列出集群hdfs的根目录。
您可能会遇到一些特权等问题,可能需要在客户端计算机上设置conf/hadoop-env.sh
等JAVA_HOME位置。更新/评论你得到的任何错误。
回答评论中的更多问题:
hadoop fs
命令:hadoop fs -put /home/user1/data/* /user/user1/data
- 您也可以编写运行这些命令的shell脚本命令如果你需要多次运行它们。 如果我们只使用ssh
远程连接到主节点,为什么我在客户端上安装hadoop?
ssh
connect,但是你正在对hadoop集群执行一些操作
客户端节点,所以你需要hadoop二进制文件。 ssh
被使用
当您从客户端节点到集群运行hadoop fs
-ls/
之类的操作时,客户端节点上的hadoop二进制文件。 (请记住,将$HADOOP_HOME/bin
添加到PATH
作为上述安装过程的一部分)ssh
”时 - 听起来就像你想要从使用ssh
连接群集节点的群集进行更改/访问hadoop配置文件一样 - 你这是管理工作的一部分,但当您需要从客户端节点对集群运行hadoop命令/作业时,您不需要手动ssh
- 客户端节点上的hadoop安装将负责它。 3。用户名'user1'必须相同吗?如果它有所不同呢? - 它会起作用。您可以在组用户下的客户机节点上安装hadoop:qa
或dev
,并将客户机节点上的所有用户安装为该组下的sudo。比客户机节点上的user1
需要在集群上运行任何hadoop作业时:user1
应该能够sudo -i -u qa
,然后从中运行hadoop命令。