1、统一软件安装路径
/export/server #软件安装目录
/export/software #安装包的目录
/export/data #软件运行数据保存的目录
/export/logs
mkdir -p /export/server
mkdir -p /export/software
mkdir -p /export/data
mkdir -p /export/logs
2、Jdk的安装
#上传安装包到/export/server下
jdk-8u65-linux-x64.tar.gz
#解压到当前目录
tar -zxvf jdk-8u65-linux-x64.tar.gz
#删除红色安装包(可选)
rm -rf jdk-8u65-linux-x64.tar.gz
#配置环境变量
vim /etc/profile #G + o
export JAVA_HOME=/export/server/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#重新加载环境变量文件 让配置生效
source /etc/profile
[root@node1 ~]# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
3、建立集群
克隆两个虚拟机node2、node3
# 修改主机名hostname
vim /etc/hostname
node2.itcast.cn
# 修改网络配置(ip)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" #网卡类型 以太网
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
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="74c3b442-480d-4885-9ffd-e9f0087c9cf7"
DEVICE="ens33"
ONBOOT="yes" #是否开机启动网卡服务
IPADDR="192.168.19.162" #IP地址
PREFIX="24" #子网掩码 等效: NETMASK=255.255.255.0
GATEWAY="192.168.19.2" #网关服务
DNS1="192.168.19.2" #网关DNS解析
DOMAIN="114.114.114.114" #公网DNS解析 114.114.114.114 谷歌:8.8.8.8 阿里百度DNS
IPV6_PRIVACY="no"
systemctl restart network # 重启网络服务
4、修改主机名
使用vi编辑器,修改主机名:
vim /etc/hostname
reboot重启后生效
5、修改hosts映射
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.161 node1.itcast.cn node1
192.168.19.162 node2.itcast.cn node2
192.168.19.163 node3.itcast.cn node3
6、免密登录
#实现node1----->node2----->node3
#step1
#分别在node1 node2 node3上生成公钥私钥
[root@node1 ~]# ssh-keygen #一顿回车 在当前用户的home下生成公钥私钥 隐藏文件
[root@node1 ~]# cd /root/.ssh
[root@node1 .ssh]# pwd
/root/.ssh
[root@node1 .ssh]# ll
total 12
-rw------- 1 root root 1675 May 20 11:59 id_rsa
-rw-r--r-- 1 root root 402 May 20 11:59 id_rsa.pub
-rw-r--r-- 1 root root 183 May 20 11:50 known_hosts
#step2
#将node1 node2 node3三台服务器的公钥copy给node1
[root@node1 ~]# ssh-copy-id node1
[root@node2 ~]# ssh-copy-id node1
[root@node3 ~]# ssh-copy-id node1
#此时node1中/root/.ssh隐藏目录下多了authorized_keys文件,里面存储了三台服务器的公钥
[root@node1 ~]# cd .ssh
[root@node1 .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
#step3
#将node1中/root/.ssh隐藏目录下的authorized_keys文件分别复制给node2和node3,同样放在/root/.ssh下
[root@node1 .ssh]# scp authorized_keys node2:$PWD
[root@node1 .ssh]# scp authorized_keys node3:/root/.ssh/
#输入yes,输入密码,就可以将node1中文件复制给node2和node3
#$PWD:将node1中/root/.ssh目录下的authorized_keys放到node2同级目录下
#step4
[root@node1 ~]# ssh node2
Last login: Wed Sep 22 10:44:32 2021 from node1.itcast.cn
[root@node2 ~]# exit
登出
Connection to node2 closed.
#课程要求:至少打通node1---->node1 node2 node3 这三个免密登录
#至于所有机器之间要不要互相免密登录 看心情
7、时钟同步
阿里云时钟同步服务器: ntpdate ntp4.aliyun.com
8、远程文件拷贝
# 拷贝目录
scp -r local_folder remote_username@remote_ip:remote_folder
# 需求: 将本地 aaa 目录 复制到 192.168.150.102 机器的 /export 目录下
scp -r /export/aaa root@192.168.153.102:/export
scp -r /export/aaa root@hadoop02:/export
scp -r /export/aaa hadoop02:/export
9、关闭防火墙
关闭firewalld
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#关闭防火墙开机自启动
systemctl disable firewalld
#centos服务开启关闭命令
centos6:(某些可以在centos7下使用)
service 服务名 start|stop|status|restart
chkconfig on|off 服务名
centos7:
systemctl start|stop|status|restart 服务名
systemctl disable|enable 服务名 #开机自启动 关闭自启
关闭selinux
vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
10、配置zookeeper
##下载安装包、解压
tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper
##修改环境变量,可选操作
vi /etc/profile
export ZOOKEEPER_HOME=/export/server/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
##修改Zookeeper配置文件
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
添加内容:
dataDir=/export/data/zkdata
## (心跳端口、选举端口)
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
#添加每个节点zk服务编号myid
#创建文件夹:
mkdir -p /export/data/zkdata
#在data文件夹下新建myid文件,myid的文件内容为对应服务器编号:
echo 1 > /export/data/zkdata/myid
#分发安装包到其他机器
cd /export/server
scp -r zookeeper/ root@node2:$PWD
scp -r zookeeper/ root@node3:$PWD
##修改其他机器的配置文件
修改myid文件
mkdir -p /export/data/zkdata
echo 2 > /export/data/zkdata/myid
mkdir -p /export/data/zkdata
echo 3 > /export/data/zkdata/myid
##启动
#方式1:每台机器单节点逐个启动
/export/server/zookeeper/bin/zkServer.sh start|stop|status
#或者编写一个脚本来批量启动所有机器:
#涉及shell知识点数组定义 数组遍历 for循环
#!/bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
ssh $host "source /etc/profile;/export/server/zookeeper/bin/zkServer.sh start"
done
#!/bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
ssh $host "/export/server/zookeeper/bin/zkServer.sh stop"
done
##查看集群状态
jps(查看进程)
zkServer.sh status(查看集群状态,主从信息)
如果启动不成功,可以观察zookeeper.out日志,查看错误信息进行排查