二、VMware准备Linux虚拟机
三、VMware虚拟机系统设置
(一)对三台虚拟机完成主机名、固定IP、SSH免密登陆等系统设置
1.配置固定IP地址
ifcfg-ens33原内容
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="f9a9b662-82cf-4c69-8d42-a70c955686fd"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.88.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"
-
将BOOTPROTO由hdcp改为static,即由动态获取ip改为静态设置ip
-
IPADDR:IP地址,每台主机不一样
-
NETMASK:子网掩码
-
GATEWAY:网关
-
DNS1:DNS,一般跟网关一样的IP
-
修改成功
systemctl restart network ifconfig
2.配置主机映射
-
修改Windows(自己电脑上的)的host文件
-
添加相应配置(保存需要管理员权限,此处用的sublime编辑器,可以管理员身份运行编辑器,vscode也可)
-
修改linux的配置
-
先使用finallshell连接三台服务器
-
修改每台linux的host文件
vim /etc/hosts
-
3.配置SSH免密登录
后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆
-
在每一台机器都执行:
ssh-keygen -t rsa -b 4096
,一路回车到底即可-
按照rsa格式生成
-
长度为4096位
-
查看构建的私钥和公钥
-
-
在每一台机器都执行:
ssh-copy-id node1 ssh-copy-id node2 ssh-copy-id node3
-
自动化完成免密登录授权
-
在每一台机器都执行到node1、node2、node3的免密登录的授权操作,这样几台机器就可与互相免密操作
-
测试node1到node3的免密访问 (能直接用node3是因为hosts文件里面配置了主机名到IP的映射)
-
-
执行完毕后,node1、node2、node3之间将完成root用户之间的免密互通
4.配置hadoop用户(普通用户)的免密登录
后续大数据的软件,将不会以root用户启动(确保安全,养成良好的习惯)我们为大数据的软件创建一个单独的用户hadoop,并为
-
在每一台机器执行:useradd hadoop,创建hadoop用户
-
在每一台机器执行:passwd hadoop,设置hadoop用户密码为123456
-
在每一台机器均切换到hadoop用户:su - hadoop,并执行 ssh-keygen -t rsa -b 4096,创建ssh密钥
-
在每一台机器均执行
ssh-copy-id node1 ssh-copy-id node2 ssh-copy-id node3
(二)JDK环境部署
1.下载JDK
https://www.oracle.com/java/technologies/downloads
2.配置JDK环境
每个节点都需要
-
创建文件夹,用来部署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环境变量中
vim /etc/profile
# 编辑/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
-
复制jdk到另一个服务器
scp -r jdk1.8.0_361 node2:`pwd`/
(三)防火墙、SELinux、时间同步
对三台虚拟机完成防火墙、SElinux、时间同步等系统设置
1.关闭防火墙和SELinux
-
集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。
每台机器都执行
systemctl stop firewalld systemctl disable firewalld # 防止开机自启
-
Linux有一个安全模块:SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定。
在当前,我们只需要关闭SELinux功能,避免导致后面的软件运行出现问题即可每台机器都执行
vim /etc/sysconfig/selinux # 将第七行,SELINUX=enforcing 改为 SELINUX=disabled # 保存推出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统
2.修改时区并配置自动时间同步
以下操作在三台Linux均执行
-
安装ntp软件
yum install -y ntp
-
更新时区
rm -f /etc/localtime;sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
-
同步时间
ntpdate -u ntp.aliyun.com
-
开启ntp服务并设置开机自启
systemctl start ntpd systemctl enable ntpd