虚拟机集群安装步骤
1.安装虚拟机
2.配置ip地址和主机名
修改主机名
找到vi /ect/sysconfig/network,修改里面的HOSTNAME=主机名
映射ip地址
找到vim /etc/hosts,添加集群,举例:
10.10.10.6 Master master.hadoop.com
10.10.10.7 Slaver1 slaver1.hadoop.com
10.10.10.8 Slaver2 slaver2.hadoop.com
关闭防火墙和SELinux
centos8: 关闭防火墙
systemctl stop firewalld.service && systemctl disable firewalld.service
centos6: 关闭防火墙
#关闭防火墙
service iptables stop
#禁止开机启动
chkconfig iptables off
关闭selinux
SELinux是Linux的一种安全子系统,为什么要关闭SELinux?如果开启了SELinux, 需要做非常复杂的配置, 才能正常使用系统, 在学习阶段, 在非生 产环境, 一般不使用SELinux
SELinux的工作模式:
- enforcing 强制模式
- permissive 宽容模式
- disable 关闭
修改selinux的配置文件
vi /etc/selinux/config
image
虚拟机免密码登录(ssh)
第一步:三台机器生成公钥与私钥
ssh-keygen -t rsa
执行该命令之后,按下三个回车即可
image第二步:拷贝公钥到同一台机器
三台机器将拷贝公钥到第一台机器 三台机器执行命令
ssh-copy-id
主机名
第三步:复制第一台机器的认证到其他机器
将第一台机器的公钥拷贝到其他机器上 在第一天机器上面指向以下命令
scp /root/.ssh/authorized_keys node02:/root/.ssh
imagescp /root/.ssh/authorized_keys node03:/root/.ssh
三台机器时钟同步
为什么需要时间同步?
- 因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是 1, B节点 记录 的时间是 2, 就会出问题
通过网络,所有主机和时钟同步服务器保持同步
centos 6
# 安装
yum install -y ntp
# 启动定时任务
crontab -e
# 输入
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
三台机器安装jdk
查看自带的openjdk并卸载
rpm -qa | grep java
rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 -nodeps
创建安装目录
#软件包存放目录
mkdir -p /export/softwares
#安装目录
mkdir -p /export/servers
上传并 解压
可以用filezilla也可以用一个插件嚼lrzsz
插件
yum -y install lrzsz
然后用命令
rz -E
上传到/export/softwares目录里然后解压
tar -zxvf jdk-8u141-linux-x64.tar.gz -C ../servers/
配置环境变量
vim /etc/profile
添加如下内容
export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH
修改完成之后记得 source /etc/profile生效
source /etc/profile
mysql的安装
在线安装mysql相关的软件包
yum install mysql mysql-server mysql-devel
检查是否已经设置为开机启动MySQL服务
centos8
systemctl list-unit-files|grep mysqld
提示
mysqld.service disabled
mysqld@.service disabled
centos6
/etc/init.d/mysqld start
设置开机启动
systemctl enable mysqld.service
提示:Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
再次查询:
systemctl list-unit-files|grep mysqld
提示:
mysqld.service enabled
mysqld@.service disabled
查看是否启动MySQL服务
ps -ef|grep mysql
提示:
root 4311 32702 0 21:07 pts/4 00:00:00 grep --color=auto mysql
启动服务
imagesystemctl start mysqld.service
通过mysql安装自带脚本进行设置
- 设置root密码
- 移除匿名用户 : y
- 不允许root远程登录: n
- 移除测试数据库 : y
- 重新读取表格 : y
用户授权
centos 6
//第一步
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
//第二步
flush privileges;
centos 8
//登录mysql
mysql -u 用户名 -r密码
//创建账户
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'yourpassword';
//赋予权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
//刷新权限
mysql> flush privileges;
远程登录
mysql -h 地址 -u 用户名 -p密码
举例:
mysql -h 10.10.10.180 -u root -p123456*如果遇到不是3306端口 则用
-P
指定端口
mysql -u root -P 3307 -h 101.200.152.192 -p