• 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
    
  • 相关阅读:
    笨笨走了
    WSE 3.0 文档翻译:WSE架构
    系列文章索引
    WSE 3.0 文档翻译:WSE的新功能
    人分四品
    手把手教你装饰vs2005项目上如何添加右键菜单
    递归算法学习系列之三(快速排序)
    ip地址与数字相互转换的sql函数
    递归算法学习系列之寻找第K大
    WSE 3.0 文档翻译:什么时候使用WSE 3.0
  • 原文地址:https://www.cnblogs.com/wylym/p/14484638.html
Copyright © 2020-2023  润新知