Hadoop 3.3.2 集群安装
一、虚拟机环境准备
|
系统 |
主机 |
地址 |
hadoop版本 |
jdk版本 |
|
centos9 |
hadoop01 |
10.211.55.4 |
3.2.2 |
1.8.0_322 |
|
centos9 |
hadoop02 |
10.211.55.7 |
3.2.2 |
1.8.0_322 |
|
centos9 |
hadoop03 |
10.211.55.6 |
3.2.2 |
1.8.0_322 |
二、分别在三台虚拟机中进行hosts 配置 ,配置内容如下
10.211.55.4 hadoop01 10.211.55.7 hadoop02 10.211.55.6 hadoop03
三、分别在三台虚拟机中设置用户及免密登陆
新增用户
groupadd hadoop useradd -d /home/hadoop -g hadoop -s /bin/bash -m hadoop visudo #在文中root行下添加hadoop行 hadoop ALL=(ALL) ALL
修改主机的hostname配置,并重启
#第一台注解配置 hostnamectl set-hostname hadoop01 #重启 reboot #查看是否更改成功 hostname #第二台注解配置 hostnamectl set-hostname hadoop01 #重启 reboot #查看是否更改成功 hostname #查看是否更改成功 username #第三台注解配置 hostnamectl set-hostname hadoop01 #重启 reboot #查看是否更改成功 hostname
关闭防火墙
关闭防?墙: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁?: systemctl disable firewalld
免密登陆配置
#切换到hadoop用户 su hadoop #生城公钥,先查看本地有没有生成密钥,如果有的话,再次生成会影响前面已经设置好的,用下面这条命令就可以 cat ~/.ssh/id_rsa.pub #如果没有的话,输入下面的命令来在本机上生成公钥和私钥 ssh-keygen -t rsa #把公钥复制到远程主机上,此处主要是将三台虚拟机的公钥相互复制,以支持三台服务器可以使用hadoop账号使用ssh直接登录 ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip地址
四、集群规划
注意1:NameNode和SecondaryNameNode不要部署在同一台服务器
注意2:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode部署在同一台服务器上
|
|
hadoop01 |
hadoop02 |
hadoop03 |
|
HDFS
|
DataNode |
DataNode |
DataNode |
|
NameNode |
|
SecondaryNameNode |
|
|
YARN
|
NodeManager |
NodeManager |
NodeManager |
|
|
ResourceManager |
|
五、开始安装
#下载解压 midir -p /opt/module /opt/software cd /opt/software wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz tar -xzvf hadoop-3.3.2.tar.gz -C /opt/module cd /opt/module mv hadoop-3.3.2.tar.gz hadoop # 移出旧版本JDK yum remove -y `yum list installed | grep java | awk '{print $1}'` yum remove -y `yum list installed | grep jdk | awk '{print $1}'` # 安装JDK1.8 yum install -y java-1.8.0-openjdk*
配置环境变量
vim /etc/profile
内容如下:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export HADOOP_HOME=/opt/module/hadoop
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
编辑core-site.xml
vim /opt/module/hadoop/etc/hadoop/core-site.xml
内容如下:
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://hadoop01:9000value> property> <property> <name>hadoop.tmp.dirname> <value>/opt/module/hadoop/data/tmpvalue> property> configuration>
编辑hdfs-site.xml
vim /opt/module/hadoop/etc/hadoop/hdfs-site.xml
内容如下:
<configuration> <property> <name>dfs.replicationname> <value>3value> property> <property> <name>dfs.namenode.secondary.http-addressname> <value>hadoop03:50090value> property> <property> <name>dfs.namenode.name.dirname> <value>/opt/module/hadoop/dfs/namevalue> <description> Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently. description> property> <property> <name>dfs.datanode.data.dirname> <value>/opt/module/hadoop/dfs/datavalue> <description> Comma separated list of paths on the localfilesystem of a DataNode where it should store itsblocks. description> property> configuration>
编辑yarn-site.xml
vim /opt/module/hadoop/etc/hadoop/yarn-site.xml
内容如下:
<configuration> <property> <name>yarn.resourcemanager.hostnamename> <value>hadoop02value> property> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce_shufflevalue> property> configuration>
编辑workers
vim /opt/module/hadoop/etc/hadoop/workers
内容如下:
hadoop01
hadoop02
hadoop03
编辑hadoop-env.sh
vim /opt/module/hadoop/etc/hadoop/hadoop-env.sh
内容如下:
export HDFS_NAMENODE_USER=hadoop export HADOOP_LOG_DIR=${HADOOP_HOME}/logs export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export HADOOP_HOME=/opt/module/hadoop export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
六、启动
在hadoop01服务器使用一下命令
start-all.sh
在hadoop02服务器执行命令:
start-yarn.sh
检查是否启动成功:
http://hadoop02:8088/cluster
http://hadoop01:9870/dfshealth.htm