基础准备——虚拟机配置
本周主要准备虚拟机上的Linux操作系统环境
学习内容包括:
VMware虚拟化软件 Linux操作系统(CenTOS)的基本使用 IP地址、主机名、环境变量等知识点
一、VMware准备Linux虚拟机
由于大一的时候较为完整的学习过Linux的使用,也下载过VMware虚拟化软件,所以下载步骤就先省略了(可以直接参照黑马程序员的大数据课程完成下载)
创建三台虚拟设备(Linux服务器)
在VMware的虚拟网络编辑器中(在软件左上角点击编辑然后点击虚拟网络编辑器),将VMnet8虚拟网卡的
网段设置为192.168.88.0
网关设置为192.168.88.2



下载CentOs操作系统
https://vault.centos.org/7.6.1810/isos/x86_64/
在VMware中安装CentOS操作系统
按照步骤创建虚拟机
选择安装程序光盘映像文件,找到下载好的系统安装文件 设置虚拟机名称和用户名以及密码
设置虚拟机硬盘大小40,将虚拟磁盘拆分成多个文件,(勾选创建后开启此虚拟机)点击完成即可,后续等待即可,然后使用之前设置的用户名和密码登录即可
配置多台虚拟机
在VMware中创建一个文件夹起名为大数据集群,接着进行虚拟机克隆,勾选虚拟机中的当前状态,勾选创建完整克隆,设置虚拟机名称(三个分别为node1,node2,node3)
对虚拟机的内存进行分配node1为4G,node2和node3配置为2G

配置固定IP地址
在虚拟机终端中完成以下操作
修改主机名
hostnamectl set-hostname node1
修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR="192.168.88.101"
重启网卡
systemctl stop network
systemctl start network
或者直接
systemctl restart network
修改node2主机名为node2,设置ip为192.168.88.102
修改node3主机名为node3,设置ip为192.168.88.103
在三台Linux系统中手动配置网络接口(ens33)的静态IP地址和相关网络参数
执行命令
vim /etc/sysconfig/network-scripts/ifcfg-ens33
添加
IPADDR="192.168.88.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"
执行以下内容重启网络服务
systemctl restart network
配置主机名映射
在windows系统中修改hosts文件,添加以下内容
192.168.88.101 node1
192.168.88.102 node2
192.168.88.103 node3
在三台Linux的/etc/hosts文件中,填入以下内容(借助FinalShell工具:下载可参照https://blog.csdn.net/muriyue6/article/details/117520456)
192.168.88.131 node1
192.168.88.132 node2
192.168.88.133 node3
配置SSH免密登录
后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆
- 在每一台机器都执行以下内容后一路回车到底即可
ssh-keygen -t rsa -b 4096
- 在每一台机器都执行:
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
- 执行完毕后,node1、node2、node3之间将完成root用户之间的免密互通
测试执行:
ssh node2
创建hadoop用户并配置免密登录
大数据的软件不会以root用户启动(确保安全,养成良好的习惯)
我们为大数据的软件创建一个单独的用户hadoop,并为三台服务器同样配置hadoop用户的免密互通
在每一台机器执行:
useradd hadoop,创建hadoop用户
passwd hadoop,设置hadoop用户密码为123456
在每一台机器均切换到hadoop用户:
su-hadoop,并执行
ssh-keygen-t rsa-b4096,创建ssh密钥
在每一台机器均执行
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
配置JDK环境
下载JDK软件:https://www.oracle.com/java/technologies/downloads
下载Linux的版本(下载jdk-8u361-linux-x64.tar.gz)
创建文件夹,用来部署JDK,将JDK和Tomcat都安装部署到:/export/Server内
mkdir -p /export.server
解压缩JDK安装文件
tar -zxvf jdk-8u361-linux-x64.tar.gz -C /export/server
配置JDK的软连接
ln -s /export/server/jdk1.8.0_361 /export/server/jdk
配置JAVA_HOME环境变量,并将¥JAVA_HOME/bin文件夹加入PATH环境变量中
编辑/etc/profile文件
export JAVA_HOME=/EXPORT/SERVER/JDK
export PATH=$PATH:$JAVA_HOME/bin
生效环境变量
source /etc/profile
配置java执行程序的软链接
#删除系统自带的java程序
rm -f /usr/bin/java
#软链接我们自己安装的java程序
ln -s /export/server/jdk/bin/java /usr/bin/java
执行验证
java -version
javac -version
关闭防火墙和SELinux
集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙
在每一台机器内部执行
systemctl stop firewalld
systemctl disable firewalld
Linux有一个安全模块SELinux,用来限制用户和程序的相关权限,来确保系统的安全稳定
在当前我们需要关闭SELinux功能,避免导致后面的软件运行出现问题
在每一台机器执行
vim /etc/sysconfig/selinux
#将第七行。SELinux=enforcing改为
SELINUX=disabled
#保存退出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统
修改时区并配置自动时间同步
以下操作在三台虚拟机都执行
安装ntp(我的系统直接安装好了)
可以通过执行
#查看自己是否完成安装(或者系统已经安装)
rpm -q ntp
#未安装的话执行下面语句安装
yum install -y ntp
更新时区
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#执行完上述之后输入date回车验证时间是否正确
校准时间
ntpdate -u ntp.aliyun.com
开启ntp服务并设置开机自启
systemctl start ntpd
systemctl enable ntpd
总结
本周基本完成了基础的环境准备,为后续的学习搭建了良好基础
遇到的问题主要是有时候输入操作时会出现拼写错误的问题,
例如执行下面的操作时GATEWAY拼写成了GETEWAY
IPADDR="192.168.88.101" - 设置静态IP地址为192.168.88.101
NETMASK="255.255.255.0" - 设置子网掩码(对应的网络前缀是/24)
GATEWAY="192.168.88.2" - 设置默认网关(注意您原文中拼写为GETEWAY,这是错误的)
DNS1="192.168.88.2" - 设置主DNS服务器地址
导致ntpdate -u ntp.aliyun.com操作不能执行
修改后解决该问题
下周继续进行相关的hadoop学习。

浙公网安备 33010602011771号