使用的虚拟机工具:VMware Wordstation pro17
使用的操作系统版本:CentOS-7-x86_64-DVD-2207-02
使用的ssh登录工具:MobaXterm_Personal_23.5
Hadoop的集群搭建,我们首先需要查看自己的虚拟机子网ip:
根据VMware的子网IP来确定自己的Hadoop的ip设置范围,本次搭建设置三个虚拟机的ip分别为:192.168.58.80(NN DN) // 192.168.58.81(DN) // 192.168.58.82(DN SN)(网段前缀得相同)
注:虚拟机的网络配置必须为NAT,三个虚拟机的主机名分别定为:node01,node02,node03
需要准备的包有俩个:hadoop-2.7.3.tar.gz、jdk-8u391-linux-x64.rpm(rpm在SSH中不需要额外的解压操作)
创建好基础环境之后:需要将基本的工具安装好:net-tools、vim
命令为:sudo yum install net-tools
sudo yum install vim
注:我们需要通过命令
1、关闭防火墙
sudo systemctl stop firewalld.service(这是停止防火墙)
sudo systemctl disable firewalld.service(主要是这句命令是关闭起作用)
2、关闭selinux
sudo vim /etc/selinux/config 修改为 SELINUX=disabled
这一步之后需要reboot重启使上述命令生效
接下来进入正式工作:
1、源码环境准备
在家目录下,创建soft目录,拷贝jdk的rpm包和hadoop的tar包
1.1 解压环境包
sudo rpm -ivh jdk包名
sudo tar -zxvf hadoop包名 -C /opt/
1.2 添加hadoop环境变量
sudo vim /etc/profile.d/hadoop.sh(有很多教程使用sudo vim /etc/profile去修改,但这样有时候会造成一些不必要的问题)
如图源码的思路:
可以在.d文件中加一个sh文件,这样以后有需要可以直接删除这个sh文件,便于维护
export HADOOP_HOME=/opt/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
修改完后需要使用
source /etc/profile
使环境变量生效
1.3 改变hadoop文件权限
cd /opt
sudo chown -R huser:huser /opt/hadop-2.7.3(其中的huser是创建的管理员权限用户名)
1.4 创建HDFS的NN和DN工作主目录
sudo mkdir /var/big_data
sudo chown -R huser:huser /var/big_data
2、hdfs配置文件修改
在/opt/hadoop-2.7.3/etc/hadoop中,修改其中需要修改的sh文件,先进入该目录
2.1 为Hadoop提供JAVA解释器路径信息,主要目的是解决远程访问hadoop时候JAVA_HOME无法继承的问题
vim hadoop-env.sh
export JAVA_HOME=/usr/java/default (这是java安装的默认路径)
2.2 为Yarn任务、资源管理器提供Java运行环境
vim yarn-env.sh
export JAVA_HOME=/usr/java/default(这一句可以直接顶格加在文件中,也可以加在java路径判断的那个函数里)
2.3 配置HDFS主节点信息、持久化和数据文件的主目录
参考官方guild中:
这里我们将其中localhost改为node01(主机名),因为localhost是针对单机的配置
vim core-site.xml
修改如下:
2.4 配置HDFS默认的数据存放策略
vim hdfs-site.xml
修改如下:
其中数字为2不为3是为了观测随机性,node03为我们设置的SN(还没克隆)
2.5 配置mapreduce
cp mapred-site.xml.template mapred-site.xml(将模板复制后修改)
vim mapred-site.xml
2.6 配置yarn资源管理角色的信息
vim yarn-site.xml
赋予node01资源调度者的身份
2.7 配置datanode节点信息
还需要修改集群主机名:
vim slaves
将其中的localhost删除,添加node01、node02、node03
3、提前准备主机名解析文件,为后面的克隆机器做好准备(不做的话需要克隆后为每台机器重新添加)
sudo vim /etc/hosts 将原有信息删除,主机信息添加进去(怎么设置的怎么添加)
sudo reboot重启更新配置
4、克隆虚拟机
完成上述配置操作之后,需要克隆主机形成node02和node03。
注:1、虚拟机需要在关机状态进行克隆;
2、在VMware Workstation中,右键点击虚拟机窗口--->管理--->克隆,一定要选中完整克隆
3、注意虚拟机的名称和位置修改
与上述步骤相同,创建node03
修改克隆虚拟机的ip和主机名
此时虚拟机node02和node03已经创建完成,我们还需要对其中的ip地址和主机名进行修改,否则会产生运行错误
首先,node02开机,在开机过程中登录node01的huser用户,并vim其中的用户文件查看自己所设定的主机名与地址(如果有记录可以不查看)
使用sudo vim /etc/hostname命令修改主机名,将其中的node01修改为node02
再使用sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33修改ip,将其中的ipaddr中的“192.168.58.80”修改为"192.168.58.81"
同理,将主机node03的主机名修改为node03,ip地址修改为"192.168.58.82"
5、设置SSH免密
同时登陆三个主机的SSH
在三台机器上执行产生自己的公钥:ssh-keygen -t rsa ;(注:MobaXterm_Personal_23.5中可以使用MultExec同时操作三台机器,如果使用的不是MobaXterm在三台机器分别敲相同代码即可)
连续回车enter(由于每台机器都有自己的公钥,所以显示的公钥是不一样的);
通过ssh-copy-id node01将公钥都传输到node01上;
同理,再将公钥都传输到node02和node03上。
由此,可以在三台机器上任意一台登录其他的机器的ssh
6、格式化hdfs
在node01下,格式化hdfs hdfs namenode -format
格式化完成之后,就可以通过 start-dfs.sh 命令开启集群
再通过start-yarn.sh 启动yarn
由此,就可以在网址上登录192.168.58.80:50070