zoukankan      html  css  js  c++  java
  • 大数据集群环境搭建之一 Centos基本环境准备

    首先需要准备的软件都有:Centos系统、SecureCRT 8.5、VMware Workstation Pro、jdk-8u172-linux-x64.tar.gz基本上这个软件就是今天的战场。

    首先安装VMware Workstation 并配置激活SecureCRT,关于这两个软件的安装可以查看这个教程SecureCRT安装、VMware Workstation 14 中文破解版安装,VMware14安装centos7。按照要求可以准备三台虚拟机。

    一、 hadoop环境准备(可以先安装一台虚拟机,在复制两个,统一配置)

     1.1查看当前操作系统环境以及主机映射关系

    [root@jiang01 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.7.1908 (Core)
    [root@jiang01 ~]# uname -r
    3.10.0-1062.el7.x86_64
    [root@jiang01 ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           2827         196        2323           9         307        2475
    Swap:          3071           0        3071
    [root@jiang01 ~]# hostname -i

    1.2 修改hostname,重启三台机器,主机名称将永久生效

    # 1 使用hostnamectl命令
    hostnamectl set-hostname xxx    
    //删除hostname
    hostnamectl set-hostname ""
     
    hostnamectl set-hostname 主机名
    # 2
     vi /etc/hostname 

     

    1.3 关闭防火墙

    停止firewall         systemctl stop firewalld.service

    禁止firewall开机启动   systemctl disable firewalld.service 

     1.4 hosts文件设置,只是为了不直接使用ip,使用主机名方便好记,

    [root@jiang01 ~]# vi /etc/hosts
    [root@jiang01 ~]# cat /etc/hosts | grep jiang
    192.168.1.16 jiang01
    192.168.1.17 jiang02
    192.168.1.17 jiang03

    1.5  配置三台机器免密登录 ,网上有很多种方式来配置,我选择了其中最简单的那种。命令依次为

          生成私钥并配置禹本纪的免密登录:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

         拷贝私钥 ssh-copy-id 用户名@主机名

          查看免秘是否成功  ssh 主机名 

     

     1.6 配置网络镜像源

        下载镜像源

            curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

        清楚缓存

           yum clean all && yum update && yum makecache

        1.7 SELINUX关闭

    sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config 
    1.8 安装jdk
    [root@jiang01 ~]# mkdir app
    [root@jiang01 ~]# 
    [root@jiang01 ~]# cd app/
    [root@jiang01 app]# 
    [root@jiang01 app]# rz
    rz waiting to receive.
    Starting zmodem transfer.  Press Ctrl+C to cancel.
    Transferring installJDK.sh...
      100%     593 bytes  593 bytes/sec 00:00:01       0 Errors  
    Transferring jdk-8u172-linux-x64.tar.gz...
      100%  186447 KB    1456 KB/sec    00:02:08       0 Errors  
     
    [root@jiang01 app]# 
    [root@jiang01 app]# 
    [root@jiang01 app]# source ./installJDK.sh 
    /usr/local/app/jdk1.8.0_172
    安装完毕!!!
    下面进行测试
    Usage: javac <options> <source files>
    where possible options include:
      -g                         Generate all debugging info
      -g:none                    Generate no debugging info
      -g:{lines,vars,source}     Generate only some debugging info
      -nowarn                    Generate no warnings
      -verbose                   Output messages about what the compiler is doing
      -deprecation               Output source locations where deprecated APIs are used
      -classpath <path>          Specify where to find user class files and annotation processors
      -cp <path>                 Specify where to find user class files and annotation processors
      -sourcepath <path>         Specify where to find input source files
      -bootclasspath <path>      Override location of bootstrap class files
      -extdirs <dirs>            Override location of installed extensions
      -endorseddirs <dirs>       Override location of endorsed standards path
      -proc:{none,only}          Control whether annotation processing and/or compilation is done.
      -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process
      -processorpath <path>      Specify where to find annotation processors
      -parameters                Generate metadata for reflection on method parameters
      -d <directory>             Specify where to place generated class files
      -s <directory>             Specify where to place generated source files
      -h <directory>             Specify where to place generated native header files
      -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files
      -encoding <encoding>       Specify character encoding used by source files
      -source <release>          Provide source compatibility with specified release
      -target <release>          Generate class files for specific VM version
      -profile <profile>         Check that API used is available in the specified profile
      -version                   Version information
      -help                      Print a synopsis of standard options
      -Akey[=value]              Options to pass to annotation processors
      -X                         Print a synopsis of nonstandard options
      -J<flag>                   Pass <flag> directly to the runtime system
      -Werror                    Terminate compilation if warnings occur
      @<filename>                Read options and filenames from file
     
    java版本为:
    java version "1.8.0_172"
    Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
    是否删除安装包
    1) 是
    2) 否
    #? 1
    脚本执行完毕!!!
    [root@jiang01 jdk1.8.0_172]# 
    View Code

    java安装脚本

        

    #!/bin/bash
    #author :lizhenjiang
    #email:idea_zhenjiang@163.com
    mkdir /usr/local/app
    tar -zxf jdk* -C /usr/local/app
    cd /usr/local/app/jdk*
    home=`pwd`
    echo $home
    echo "export JAVA_HOME=${home}" >> /etc/profile
    echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
    echo "安装完毕!!!
    下面进行测试"
    #配置完成,下面的是测试
    source /etc/profile
    javac
    echo "java版本为:"
    java -version
    echo "是否删除安装包"
    select var in 是 否
    do
        break
    done
    if [ var = 是 ]
    then 
        rm jdk-*
        echo "安装包已删除"
    fi
    echo "脚本执行完毕!!!"
    View Code

        1.9 编写集群管理脚本,这些脚本在其它课程上有很多,都可以拿来使用

        批量执行服务脚本命令

     View Code

                 运行效果

     View Code

               

    [root@jiang01 jdk1.8.0_172]# xcall.sh "yum -y install rsync"      
    ============= jiang01 : yum -y install rsync ============
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    Resolving Dependencies
    --> Running transaction check
    ---> Package rsync.x86_64 0:3.1.2-6.el7_6.1 will be installed
    --> Finished Dependency Resolution
     
    Dependencies Resolved
     
    ================================================================================
     Package        Arch            Version                     Repository     Size
    ================================================================================
    Installing:
     rsync          x86_64          3.1.2-6.el7_6.1             base          404 k
     
    Transaction Summary
    ================================================================================
    Install  1 Package
     
    Total download size: 404 k
    Installed size: 815 k
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : rsync-3.1.2-6.el7_6.1.x86_64                                 1/1 
      Verifying  : rsync-3.1.2-6.el7_6.1.x86_64                                 1/1 
     
    Installed:
      rsync.x86_64 0:3.1.2-6.el7_6.1                                                
     
    Complete!
    命令执行成功
    ============= jiang02 : yum -y install rsync ============
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    Resolving Dependencies
    --> Running transaction check
    ---> Package rsync.x86_64 0:3.1.2-6.el7_6.1 will be installed
    --> Finished Dependency Resolution
     
    Dependencies Resolved
     
    ================================================================================
     Package        Arch            Version                     Repository     Size
    ================================================================================
    Installing:
     rsync          x86_64          3.1.2-6.el7_6.1             base          404 k
     
    Transaction Summary
    ================================================================================
    Install  1 Package
     
    Total download size: 404 k
    Installed size: 815 k
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : rsync-3.1.2-6.el7_6.1.x86_64                                 1/1 
      Verifying  : rsync-3.1.2-6.el7_6.1.x86_64                                 1/1 
     
    Installed:
      rsync.x86_64 0:3.1.2-6.el7_6.1                                                
     
    Complete!
    命令执行成功
    ============= jiang03 : yum -y install rsync ============
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    Resolving Dependencies
    --> Running transaction check
    ---> Package rsync.x86_64 0:3.1.2-6.el7_6.1 will be installed
    --> Finished Dependency Resolution
     
    Dependencies Resolved
     
    ================================================================================
     Package        Arch            Version                     Repository     Size
    ================================================================================
    Installing:
     rsync          x86_64          3.1.2-6.el7_6.1             base          404 k
     
    Transaction Summary
    ================================================================================
    Install  1 Package
     
    Total download size: 404 k
    Installed size: 815 k
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : rsync-3.1.2-6.el7_6.1.x86_64                                 1/1 
      Verifying  : rsync-3.1.2-6.el7_6.1.x86_64                                 1/1 
     
    Installed:
      rsync.x86_64 0:3.1.2-6.el7_6.1                                                
     
    Complete!
    命令执行成功
    [root@jiang01 jdk1.8.0_172]# 
    View Code

         批量同步文件脚本:

    #!/bin/bash
    #author :lizhenjiang
    #email:idea_zhenjiang@163.com
     
    #判断用户是否传参
    if [ $# -lt 1 ];then
        echo "请输入参数";
        exit
    fi
     
     
    #获取文件路径
    file=$@
     
    #获取子路径
    filename=`basename $file`
     
    #获取父路径
    dirpath=`dirname $file`
     
    #获取完整路径
    cd $dirpath
    fullpath=`pwd -P`
     
    #同步文件到DataNode
    for (( i=2;i<=3;i++ ))
    do
        tput setaf 6
        echo =========== jiang0${i} : $file ===========
        tput setaf 9
        #远程执行命令
        rsync -lr $filename `whoami`@jiang0${i}:$fullpath
        #判断命令是否执行成功
        if [ $? == 0 ];then
            echo "命令执行成功"
        fi
    done
    View Code
    [root@jiang01 app]# vi /usr/bin/xrsync.sh
    [root@jiang01 app]# 
    [root@jiang01 app]# 
    [root@jiang01 app]# chmod +x /usr/bin/xrsync.sh 
    [root@jiang01 app]# 
    [root@jiang01 app]#  xcall.sh cat /etc/hosts 
    ============= jiang01 : cat /etc/hosts ============
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.16 jiang01
    192.168.1.17 jiang02
    192.168.1.18 jiang03
    命令执行成功
    ============= jiang02 : cat /etc/hosts ============
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.16 jiang01
    192.168.1.17 jiang02
    192.168.1.18 jiang03
    命令执行成功
    ============= jiang03 : cat /etc/hosts ============
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.16 jiang01
    192.168.1.17 jiang02
    192.168.1.18 jiang03
    命令执行成功
    View Code
    [root@jiang01 app]# xcall.sh mkdir /usr/local/app/
    ============= jiang01 : mkdir /usr/local/app/ ============
    mkdir: cannot create directory ‘/usr/local/app/’: File exists
    ============= jiang02 : mkdir /usr/local/app/ ============
    命令执行成功
    ============= jiang03 : mkdir /usr/local/app/ ============
    命令执行成功
    [root@jiang01 app]# ll
    total 4
    drwxr-xr-x. 8 10 143 4096 Sep 26 11:02 jdk1.8.0_172
    [root@jiang01 app]# xrsync.sh jdk1.8.0_172/
    =========== jiang02 : jdk1.8.0_172/ ===========
    命令执行成功
    =========== jiang03 : jdk1.8.0_172/ ===========
    命令执行成功
    [root@jiang01 app]# 
    [root@jiang01 app]# 
    [root@jiang01 app]# xrsync.sh /etc/profile
    =========== jiang02 : /etc/profile ===========
    命令执行成功
    =========== jiang03 : /etc/profile ===========
    命令执行成功
    [root@jiang01 app]# 
    View Code

      2.0 同步网络时钟,集群要保证时钟的一致性,以免集群出现问题

       

    yum install ntpdate
    ntpdate us.pool.ntp.org
    hwclock -w
    显示时区:
    date -R
    #安装ntpdate工具
    yum install ntpdate -y
    #使用ntpdate校时(后面的是ntp服务器)
    ntpdate pool.ntp.org
    hwclock -w 
    定时任务(高可用集群时间同步很重要)
    /5 * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1
    每五分钟同步一次时间
    View Code

    到现在基础环境已经准备就绪,已经完全准备好了安装大数据相关的集群。

  • 相关阅读:
    XML与JSON的区别?各自有哪些优缺点?
    js数组操作(增、删、改、查)
    Ajax缓存原理
    Ajax的跨域问题分析
    简单理解javascript的闭包
    CSS的导入方式:link与import方式的区别
    谈谈iframe的优缺点
    winform全局异常捕获
    Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
    解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误
  • 原文地址:https://www.cnblogs.com/ideajiang/p/11596894.html
Copyright © 2011-2022 走看看