3 台 linux 虚拟机(CentOs7.x 64 位)
这三台机器的基本配置参考 Hadoop 单机伪分布安装章节中的虚拟机基本环境配置部分。
注意:除了基本配置之外还需要实现主节点能够免密码登陆到所有从节点,因为从节点上面的进程是由主节点通过 ssh 远程启动的。
在 hadoop100 这台机器上执行下面命令,可以实现主节点免密码登陆到所有从节点。
[root@hadoop100 ~]# ssh-copy-id -i hadoop101
[root@hadoop100 ~]# ssh-copy-id -i hadoop102
在 hadoop100 机器上使用 ssh 命令确认集群免密码登陆是否设置成功,如果可以免密码登陆进去就说明是没有问题的。
[root@hadoop100 ~]# ssh hadoop101
[root@hadoop100 ~]# ssh hadoop101
注意:在这里我们用到了前面安装伪分布集群的机器 hadoop100,所以需要先把之前的伪分布集群停掉,然后删除/data 目录下的 hadoop_repo和/data/soft 目录下的 hadoop-3.2.1目录,恢复此机器的环境。
下面开始安装 hadoop 分布式集群。
首先在 hadoop100 节点上安装。
[root@hadoop100 soft]# cd hadoop-3.2.1/etc/hadoop/
[root@hadoop100 hadoop]# vi hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
[root@hadoop100 hadoop]# vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_repo</value>
</property>
</configuration>
[root@hadoop100 hadoop]# vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop100:50090</value>
</property>
</configuration>
[root@hadoop100 hadoop]# vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/data/soft/hadoop-3.2.1</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/data/soft/hadoop-3.2.1</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/data/soft/hadoop-3.2.1</value>
</property>
</configuration>
[root@hadoop100 hadoop]# vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL
ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop100</value>
</property>
</configuration>
[root@hadoop100 hadoop]# vi workers
hadoop101
hadoop102
#修改启动脚本
#修改 start-dfs.sh,stop-dfs.sh 这两个脚本文件,在文件前面增加如下内容
[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.1/sbin
[root@hadoop100 sbin]# vi start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
[root@hadoop100 sbin]# vi stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
[root@hadoop100 sbin]# vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
[root@hadoop100 sbin]# vi stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
[root@hadoop100 hadoop]# cd /data/soft/
[root@hadoop100 soft]# scp -rq hadoop-3.2.1.tar.gz hadoop101:/data/soft/
[root@hadoop100 soft]# scp -rq hadoop-3.2.1.tar.gz hadoop102:/data/soft/
[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.1
[root@hadoop100 hadoop-3.2.1]# bin/hdfs namenode -format
如果在后面的日志信息中能看到这一行,则说明 namenode 格式化成功。
common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted.
[root@hadoop100 hadoop-3.2.1]# sbin/start-all.sh
Starting namenodes on [hadoop100]
Starting datanodes
Starting secondary namenodes [hadoop100]
Starting resourcemanager
Starting nodemanagers
分别在 3 台机器上执行 jps 命令,进程信息如下所示:
至此,hadoop 分布式集群安装成功!