==作者:YB-Chi==
[toc]
流程
Hadoop 集群的安装配置大致为如下流程:
- 选定一台机器作为 Master
- 在 Master 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境
- 在 Master 节点上安装 Hadoop,并完成配置
- 在其他 Slave 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境
- 将 Master 节点上的 /usr/local/hadoop 目录复制到其他 Slave 节点上
- 在 Master 节点上开启 Hadoop
准备工作
其他工作见我所写的Hadoop单机部署,此处只讲解ssh无密登陆
这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。
首先生成 Master 节点的公匙,在 Master 节点的终端中执行(因为改过主机名,所以还需要删掉原有的再重新生成一次):
1 | cd ~/.ssh # 如果没有该目录,先执行一次ssh localhostrm ./id_rsa* # 删除之前生成的公匙(如果有)ssh-keygen -t rsa # 一直按回车就可以 |
让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:
1 | cat ./id_rsa.pub >> ./authorized_keys |
完成后可执行 ssh localhost
证一下(可能需要输入 yes,成功后执行 exit
返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave1 节点:
1 | scp ~/.ssh/id_rsa.pub root@cluster_node1:/root/.ssh |
scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。执行 scp 时会要求输入 Slave1 上 root用户的密码(也可以使用其他用户,比如我的chi用户),输入完成后会提示传输完毕
接着在 Slave1 节点上,将 ssh 公匙加入授权:
1 | mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略 |
如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。
这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行如下命令进行检验,如下图所示:
1 | ssh cluster_node1 |
配置文件
集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。
1, 文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。
本教程让 Master 节点仅作为 NameNode 使用,因此将文件中原来的 localhost 删除,添加如下内容
1 | cluster_node1 |
2,文件 core-site.xml 改为下面的配置:
1 | <configuration> |
3, 文件 hdfs-site.xml,dfs.replication 一般设为 3,但我们只有两个 Slave 节点,所以 dfs.replication 的值还是设为 2:
1 | <configuration> |
4, 文件 mapred-site.xml (可能需要先重命名,默认文件名为 mapred-site.xml.template),然后配置修改如下: