/export/server #软件安装目录 /export/software #安装包的目录 /export/data #软件运行数据保存的目录 /export/logs mkdir -p /export/server mkdir -p /export/software mkdir -p /export/data mkdir -p /export/logs2、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 node36、免密登录
#实现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=disabled10、配置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日志,查看错误信息进行排查



