资源目录
- /opt 根目录
创建新文件夹管理安装的软件
- /opt/module 安装应用程序(如:jdk、Tomcat)
- /opt/software 安装资源文件 (如: mysql的jar包、jdk.tar包)
安装JDK1.8
下载
官网
官网下载路径:https://www.oracle.com/java/technologies/downloads/#java8
华为云
国内仓库(华为云): https://mirrors.huaweicloud.com/java/jdk/8u202-b08/
上传文件
修改权限
chmod
r:4 读权限 w:2 写权限 x:1 执行权限
owner group others 三个身份
修改jdk1.8 tar包权限 chmod 700 jdk-8u202-linux-x64.tar.gz
解压tar包
Liunx 安装tar命令
yum install -y tar
解压jdk8到module文件夹
tar -zxvf jdk-8u202-linux-x64.tar.gz …/module/
修改环境变量
修改/etc/profile文件
vim /etc/profile
配置jdk1.8环境变量
# 配置jdk1.8 环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_202
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
让profile文件立即生效
source /etc/profile
测试是否安装成功
java -version
配置免密登录
修改主机名称
参考:华为云文档 https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0050735736.html
-
- 修改 hostname
vim /etc/hostname
hostname文件下
如:名称改为hadoop101
- 修改 hostname
-
- 修改 network
vim /etc/sysconfig/network
说明: 如果配置文件中没有HOSTNAME,请手动补充并将参数值设置为修改后的主机名
如:HOSTNAME=new_hostname
- 修改 network
-
- 修改 cloud.cfg
vim /etc/cloud/cloud.cfg
注释语句- update_hostname
- 修改 cloud.cfg
-
- 重启弹性云服务器
reboot
- 重启弹性云服务器
-
修改 主机名和ip映射关系
vim /etc/hosts
127.0.0.1 hadoop101 hadoop101 121.36.85.121 hadoop101 121.36.64.238 hadoop102 121.36.17.47 hadoop103
修改内容
修改后所有主机名称
主机名称 | hadoop101 | hadoop102 | hadoop103 |
---|---|---|---|
免密登录
-
生成公钥和私钥
ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
-
拷贝公钥到其他机器上
每台机器都执行
ssh-copy-id hadoop101 ssh-copy-id hadoop102 ssh-copy-id hadoop103
-
.ssh文件夹下(~/.ssh)的文件
known_hosts id_rsa id_rsa.pub authorized_keys
ssh密钥文件报错
报错现象
解决方法
vi ~/.ssh/known_hosts
将对应的IP地址信息全部清空,重新ssh-copy-id就行了
分发脚本
xsync集群分发脚本 (参考:尚硅谷xsync集群脚本)
实现循环复制文件到所有节点的相同目录下
-
安装 rsync
yum -y install rsync
-
rsync命令原始拷贝
rsync -rvl /opt/module root@hadoop103:/opt/
-
脚本实现
#!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=102; host<104; host++)); do echo ------------------- hadoop$host -------------- rsync -rvl $pdir/$fname $user@hadoop$host:$pdir done "xsync" 26L, 487C