一、集群规划
集群节点为1个NameNode,1个SecondaryNameNode,3个DataNode,如下表如示:
NameNode,SecondaryNameNode:
NameNode:(192.168.187.201) | ||
组件 | 版本 | 安装包路径 |
jdk | 1.8.0_191 | /usr/local/java/ |
hadoop | 3.1.1 | /usr/local/hadoop/ |
SecondaryNameNode:(192.168.187.202) | ||
组件 | 版本 | 安装包路径 |
jdk | 1.8.0_191 | /usr/local/java/ |
hadoop | 3.1.1 | /usr/local/hadoop/ |
DataNode:
DataNode:(192.168.187.202,192.168.187.203,192.168.187.204) | ||
组件 | 版本 | 安装包路径 |
jdk | 1.8.0_191 | /usr/local/java/ |
hadoop | 3.1.1 | /usr/local/hadoop/ |
二、安装包下载
hadoop-3.1.1.tar.gz
jdk-8u191-linux-x64.rpm
三、服务器设置
1、主机名修改
hostnamectl --static set-hostname node01
hostnamectl --static set-hostname node02
hostnamectl --static set-hostname node03
hostnamectl --static set-hostname node04
同时修改四个主机的/etc/hosts文件,增加以下四条:
192.168.187.201 node01
192.168.187.202 node02
192.168.187.203 node03
192.168.187.204 node04
2、防火墙设置
如主机中未安装iptables,在四个主机中执行以下命令安装:
yum install iptables-services
执行iptables -L -n -v命令可以查看iptables配置,执行以下命令永久关闭四个主机的iptables:
chkconfig iptables off
同时关闭四个主机的iptables和firewalld并设置开机不启动,执行以下命令:
systemctl stop iptables
systemctl disable iptables
systemctl stop firewalld
systemctl disable firewalld
执行systemctl status iptables和systemctl status firewalld可以查看防火墙已经关闭。
3、时钟同步
执行以下命令安装ntpdate:
yum install ntpdate
执行以下命令同步时针:
ntpdate us.pool.ntp.org
添加时针同步的定时任务,执行如下命令:
crontab -e
输入如下内容,每天凌晨5点同步时针:
0 5 * * * /usr/sbin/ntpdate cn.pool.ntp.org
执行如下命令重启服务并设置开机自启:
service crond restart
systemctl enable crond.service
4、SSH免密登录
在四个主机中执行如下两条命令生成密钥和公钥文件,并添加到认证文件中:
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
合并四个主机的认证文件,如图:
在四个主机中,执行如下任意命令,可登录到其他主机:
ssh root@node01
ssh root@node02
ssh root@node03
ssh root@node04
登录到其他主机后,可执行exit返回主机。
四、安装并配置JDK
在hadoop2系列有
五、安装并配置hadoop
下载hadoop 3.1.1,将其解压到/usr/local/hadoop。执行如下命令:
mkdir -p /usr/local/hadoop
tar -zxvf hadoop-3.1.1.tar.gz
同时创建hadoop相关配置目录:
mkdir -p /data/hadoop/hdfs/name /data/hadoop/hdfs/data /var/log/hadoop/tmp
添加环境变量,编辑配置文件/etc/profile
export JAVA_HOME=/usr/java/default
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1
export PATH=$PATH:JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置后,执行source /etc/profile使配置生效
接下来配置hadoop配置文件:
1、/usr/local/hadoop/hadoop-3.1.1/etc/hadoop/hadoop-env.sh
配置jdk和hadoop根目录
export JAVA_HOME=/usr/java/default
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1
HDFS_DATANODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2、/usr/local/hadoop/hadoop-3.1.1/etc/hadoop/yarn-env.sh
配置jdk根目录
export JAVA_HOME=/usr/java/default
3、/usr/local/hadoop/hadoop-3.1.1/etc/hadoop/workers
配置DataNode节点
node02
node03
node04
4、/usr/local/hadoop/hadoop-3.1.1/etc/hadoop/core-site.xml
指定hdfs的nameservice,指定hadoop临时目录
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9820</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
</property>
</configuration>
5、/usr/local/hadoop/hadoop-3.1.1/etc/hadoop/hdfs-site.xml
配置NameNode和SecondaryNameNode和文件目录,配置hdfs的文件副本数
<configuration>
<property>
<name>dfs.namenode.secondary.http.address</name>
<value>node02:9868</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
一台hadoop配置好了后即可做分发(部分代码):
scp jdk-8u191-linux-x64.rpm root@node04:/usr/local/java
scp -r hadoop-3.1.1 root@node04:/usr/local/hadoop
六、启动hadoop
全部操作暂时只需要操作node01
格式化hdfs,执行如下命令:
hdfs namenode -format
启动hadoop
start-dfs.sh
执行jps可以查看节点中启动的NameNode、SecondaryNameNode、DataNode。
执行stop-all.sh脚本可以停止hadoop。
至此,hadoop集群已经搭建并启动。
参考:
https://blog.csdn.net/weixin_40096730/article/details/83718966