05_大数据_集群Linux环境搭建及注意事项

集群Linux环境搭建

1、注意事项:

1.1、设置虚拟机的内存

  • 需要三台虚拟机时,并且需要同时运行,所以总体上的占用为:每台虚拟机内存 ×3
  • 在分配的时候,需要在总内存大小的基础上,减去2G~4G作为系统内存,剩余的除以3,作为每台虚拟机的内存

每台机器的内存 = (总内存 - 4)÷3

1.2、确认Windows系统下所有关于VmWare的服务已启动

1.3、确认好VMware生产的网关地址

1.4、确认VmNet8网卡已经配置好IP地址和DNS

2、集群规划

IP 主机名 环境配置 安装
192.168.1.10 node01 关闭防火墙和selinux,host映射,时钟同步 JDK,nameNode,ResourceManager,Zookeeper
192.168.1.11 node02 关闭防火墙和selinux,host映射,时钟同步 JDK,DataNode,NodeManager,Zookeeper
192.168.1.12 node03 关闭防火墙和selinux,host映射,时钟同步 JDK,DataNode,NodeManager,Zookeeper

3、设置IP地址和Mac地址

[root@hadoop3 ~]# vim /etc/sysconfig/network-scripts/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=bd410110-c18d-4721-92e8-46029369ffa9
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.1.12  #克隆后的机器,修改IP地址就行了
GATEWAY=192.168.1.2
PREFIX=24
DNS1=114.114.114.114
DNS2=8.8.8.8

4、重启网络服务

[root@hadoop01 ~]# service network restart

5、修改主机名

[root@hadoop01 ~]# hostnamectl set-hostname hadoop01 #修改后面的hadoop01就行

6、添加映射

[root@hadoop01 ~]# vim /etc/hosts  #三台机器都要进行添加

192.168.1.10 hadoop01 hadoop01.com # hadoop01的IP映射
192.168.1.11 hadoop02 hadoop02.com # hadoop02的IP映射
192.168.1.12 hadoop03 hadoop03.com # hadoop03的IP映射

7、关闭防火墙和SELinux

(1)关闭防火墙

[root@hadoop01 ~]# systemctl stop firewalld.service

(2)永久关闭防火墙

[root@hadoop01 ~]# systemctl disable firewalld.service

(3)查看防火墙状态

[root@hadoop01 ~]# systemctl status firewalld.service

7.1什么是SELinux

  • SELinux是Linux的一种安全子系统
  • Linux中的权限管理是针对于文件的,而不是针对进程的,也就是说,如果root启动了某个进程,则这个进程可以操作任何一个文件
  • SELinux在Linux的文件权限之外,增加了对进程的限制,进程只能在进程允许的范围内操作资源

为什么要关闭SELinux

  • 如果开启了SELinux,需要做非常复杂的配置,才能正常使用系统,在学习阶段,在非生产环境,一般不使用SELinux

  • SELinux的工作模式

    • enforcing 强制模式
    • permissive 宽容模式
    • disable 关闭

(1)临时关闭SELinux

setenforce 0
1

(2)临时打开SELinux

setenforce 1
1

(3)开机关闭SELinux

vi /etc/selinux/config
修改"SELINUX=disabled"为"SELINUX=disabled"
12

(4)查看SELinux状态

getenforce

8、配置免密登录

  • 为什么要免密登录
    • Hadoop节点众多,所以一般在主节点启动从节点,这个时候

就需要程序自动在主节点登录到从节点中,如果不能免密就每次都要输入密码,非常麻烦

  • 免密SSH登录的原理
    1. 需要现在B节点配置A节点的公钥
    2. A节点请求B节点要求登录
    3. B节点使用A节点的公钥,加密一段随机文本
    4. A节点使用私钥解密,并发回给B节点
    5. B节点验证文本是否正确

(1)第一步:三台机器生成公钥与私钥

在三台机器分别执行以下命令,生产公钥与私钥

ssh-keygen -t rsa

执行该命令之后,按下三个回车即可

(2)第二步:拷贝公钥到同一台机器

三台机器将拷贝公钥到第一台机器

三台机器分别执行命令:

ssh-copy-id hadoop01

(3)第三步:复制第一台机器的认证到其他机器

将第一台机器的公钥拷贝到其他机器上

在第一台机器上面指向一下命令

scp /root/.ssh/authorized_keys hadoop02:/root/.ssh

scp /root/.ssh/authorized_keys hadoop02:/root/.ssh

9、配置时间同步

为什么需要时间同步

  • 因为很多分布式系统是有状态的,比如说存储一个数据,A节点记录的时间是1,8节点记录的时间是2,就会出现问题

方式1:

所有主机和同一台主机的时间保持同步

方式2:

通过网络,所有主机和时钟同步服务器保持同步

## 安装
yum install -y ntp

## 启动定时任务
crontab -e

随后再输入界面输入

## /1 * * * * 表示的是: 分 时 日 月 周,这里表示每分钟执行这条/usr/sbin/ntpdate ntp4.aliyun.com
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com 

10、三台机器安装jdk

10.1 查看自带的openjdk并卸载

# 查看是否有安装Java
rpm -qa | grep java

# 卸载Java,--nodeps是跳过依赖检查
rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps 

10.2 创建安装目录

mkdir -p /export/softwares  #软件包存放目录
mkdir -p /export/servers    #安装目录

10.3上传并 解压

# 上传文件
rz -E

# 若使用不了rz命令,需要进行下载,lrzsz仅支持Xhell和SecureCRT
yum -y install lrzsz

#上传jdk到/export/softwares路径下去,并解压
tar -zxvf jdk-8u141-linux-x64.tar.gz -C ../servers/

将解压后的jdk发送给另外两台机器

scp -r jdk1.8.0_141/ hadoop02:/export/servers  #加-r参数表示发送文件夹

scp -r jdk1.8.0_141/ hadoop03:/export/servers

10.4 配置环境变量

vim /etc/profile

添加如下内容

export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH

修改完成之后记得 source /etc/profile生效

source /etc/profile

注意若有邮箱提醒加入下列命令

unset CHECKMAIL

11、mysql的安装

安装mysql数据库

第一步:卸载自带的迷你库

rpm -qa | grep mariadb | xargs rpm -e --nodeps

第二步:下载yum镜像下载源

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

第三步:安装yum下载源

yum -y install mysql57-community-release-el7-10.noarch.rpm

第四步:开始下载

yum -y install mysql-community-server

配置mysql

第一步:启动MySQL服务

systemctl start mysqld.service

第二步:设置MySQL自启

systemctl enable mysqld.service

首次登陆mysql

第一步:设置root用户名密码

  • 初始密码在/var/log/mysqld.log
grep "password" /var/log/mysqld.log
  • 输入初始密码进入数据库
mysql -uroot -p
  • 设置密码密码安全级别
SET global validate_password_policy=0;
  • 设置密码长度
set global validate_password_length=1;
  • 添加root用户
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

第二步:开启远程访问

  • 选择数据库
use mysql;
  • 查看user表信息
select host,user from user;

+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
3 rows in set (0.00 sec)
  • 修改root用户的host信息
update user set host = '%' where user = 'root';
  • 开启远程连接
grant all privileges  on *.* to root@'%' identified by "123456";
  • 刷新权限
flush privileges;

PS:脚本安装

1、jdk安装

#!/bin/bash
if type -p java; then
        echo 'Java已经安装'
        exit 0
else
        echo "java正在安装,稍等......."
        mkdir -p /myapp/Java
        tar -zxf /myapp/Java/jdk-8u171-linux-x64.tar.gz -C /myapp/Java
        echo "#java" >> /etc/profile
        echo "export JAVA_HOME=/myapp/Java/jdk1.8.0_171" >> /etc/profile
        echo "export PATH=:\$JAVA_HOME/bin:\$PATH" >> /etc/profile
        source /etc/profile
        echo " "
        echo " "
        echo "======= Java已安装完毕!======="

        java -version
        rm -rf /myapp/Java/jdk-8u171-linux-x64.tar.gz
fi
posted @ 2021-03-05 10:14  菜园子_的_码农  阅读(167)  评论(0编辑  收藏  举报