zoukankan      html  css  js  c++  java
  • 使用ansible部署CDH 5.15.1大数据集群

                    使用ansible离线部署CDH 5.15.1大数据集群

                                           作者:尹正杰 

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

      在此之前,我之前分享过使用shell自定义脚本部署大数据集群,不管是部署CDH集群还是部署HDP集群基本上套路都一样,调优的方式也都大同小异。只是操作界面上可能存在一定的差异。最近赶上公司搞自动化运维项目,我们用到了ansible的一些功能,本篇博客主要记录ansible部署CDH服务。

    一.安装ansible

    1>.操作环境介绍

      注意,请检查你的虚拟机是否可以正常联网,如果不能联网的话,本篇博客估计也就只能成为你的一个参考部署方案了!由于Mac内存有限,我只开了3台虚拟机,使用的操作系统是CentOS 7.2发行版的,内存分配每个节点4G,大家根据自己的机器适当调大或调小内存。详细信息如下:

    [root@node101 ~]# hostname
    node101.yinzhengjie.org.cn            #这是本篇博客所说的主节点,该节点配置必须高于其他节点配置或者配置不能低于2G内存!否则你在后期安装服务时,可能会遇到各种坑!(我测试时,三台主机分配过4,1,1,或者3,3,3基本上都可以正常运行!)
    [root@node101 ~]# 
    [root@node101 ~]# hostname -i
    172.30.1.101
    [root@node101 ~]# 
    [root@node101 ~]# cat /etc/redhat-release          
    CentOS Linux release 7.2.1511 (Core) 
    [root@node101 ~]# 
    [root@node101 ~]# 
    [root@node101 ~]# free  -h   
                  total        used        free      shared  buff/cache   available
    Mem:           5.9G        120M        5.5G        6.7M        213M        713M
    Swap:          2.0G          0B        2.0G
    [root@node101 ~]# 
    [root@node101 ~]# df -h      
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root   50G  3.8G   43G   9% /
    devtmpfs                      480M     0  480M   0% /dev
    tmpfs                         495M     0  495M   0% /dev/shm
    tmpfs                         495M  6.7M  488M   2% /run
    tmpfs                         495M     0  495M   0% /sys/fs/cgroup
    /dev/sda1                     477M  133M  315M  30% /boot
    /dev/mapper/VolGroup-lv_home   12G   41M   11G   1% /home
    Home                          234G  156G   79G  67% /media/psf/Home
    tmpfs                          99M     0   99M   0% /run/user/0
    [root@node101 ~]# 
    [root@node101 ~]# cat /etc/hosts | grep yinzhengjie
    172.30.1.101 node101.yinzhengjie.org.cn
    172.30.1.102 node102.yinzhengjie.org.cn
    172.30.1.103 node103.yinzhengjie.org.cn
    [root@node101 ~]# 
    [root@node101 ~]# 

    2>.在主节点(node101.yinzhengjie.org.cn)配置至各个节点的免密钥登录

    [root@node101 ~]# ssh-keygen  -t rsa -P '' -f ~/.ssh/id_rsa
    Generating public/private rsa key pair.
    Created directory '/root/.ssh'.
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    7b:9a:3a:cd:0b:7b:b5:5e:da:ad:b8:dd:aa:0a:b1:fb root@node101.yinzhengjie.org.cn
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |                 |
    |                 |
    |      . S        |
    |       o ..      |
    |      +o.....    |
    |      .=++.* o   |
    |      +=E+*o=oo  |
    +-----------------+
    [root@node101 ~]# 
    生成密钥([root@node101 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa)
    [root@node101 ~]# ssh-copy-id root@node101.yinzhengjie.org.cn
    The authenticity of host 'node101.yinzhengjie.org.cn (172.30.1.101)' can't be established.
    ECDSA key fingerprint is 72:2c:15:15:05:ba:4a:73:6d:5b:88:c4:bd:ab:c2:66.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@node101.yinzhengjie.org.cn's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@node101.yinzhengjie.org.cn'"
    and check to make sure that only the key(s) you wanted were added.
    
    [root@node101 ~]# 
    [root@node101 ~]# who
    root     pts/0        2019-01-10 16:19 (172.30.1.2)
    [root@node101 ~]# 
    [root@node101 ~]# ssh node101.yinzhengjie.org.cn
    Last login: Thu Jan 10 16:19:18 2019 from 172.30.1.2
    [root@node101 ~]# 
    [root@node101 ~]# who
    root     pts/0        2019-01-10 16:19 (172.30.1.2)
    root     pts/1        2019-01-10 16:30 (node101.yinzhengjie.org.cn)
    [root@node101 ~]# 
    [root@node101 ~]# exit
    logout
    Connection to node101.yinzhengjie.org.cn closed.
    [root@node101 ~]# 
    [root@node101 ~]# who
    root     pts/0        2019-01-10 16:19 (172.30.1.2)
    [root@node101 ~]# 
    [root@node101 ~]# 
    与本机配置免密登录([root@node101 ~]# ssh-copy-id root@node101.yinzhengjie.org.cn)
    [root@node101 ~]# ssh-copy-id root@node102.yinzhengjie.org.cn
    The authenticity of host 'node102.yinzhengjie.org.cn (172.30.1.102)' can't be established.
    ECDSA key fingerprint is 85:f4:84:e1:7a:13:45:31:22:7b:12:49:5d:1b:56:ec.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@node102.yinzhengjie.org.cn's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@node102.yinzhengjie.org.cn'"
    and check to make sure that only the key(s) you wanted were added.
    
    [root@node101 ~]# 
    [root@node101 ~]# ssh node102.yinzhengjie.org.cn
    Last login: Thu Jan 10 15:46:07 2019 from 172.30.1.2
    [root@node102 ~]# 
    [root@node102 ~]# who
    root     pts/0        2019-01-10 15:46 (172.30.1.2)
    root     pts/1        2019-01-10 16:31 (172.30.1.101)
    [root@node102 ~]# 
    [root@node102 ~]# exit
    logout
    Connection to node102.yinzhengjie.org.cn closed.
    [root@node101 ~]# 
    [root@node101 ~]# 
    与node102.yinzhengjie.org.cn节点配置免密登录([root@node101 ~]# ssh-copy-id root@node102.yinzhengjie.org.cn)
    [root@node101 ~]# ssh-copy-id root@node103.yinzhengjie.org.cn
    The authenticity of host 'node103.yinzhengjie.org.cn (172.30.1.103)' can't be established.
    ECDSA key fingerprint is 62:e7:04:30:ce:10:0d:55:9d:e5:24:9f:19:ab:4c:e7.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@node103.yinzhengjie.org.cn's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@node103.yinzhengjie.org.cn'"
    and check to make sure that only the key(s) you wanted were added.
    
    [root@node101 ~]# 
    [root@node101 ~]# ssh node103.yinzhengjie.org.cn             
    Last login: Thu Jan 10 15:46:08 2019 from 172.30.1.2
    [root@node103 ~]# 
    [root@node103 ~]# who
    root     pts/0        2019-01-10 15:46 (172.30.1.2)
    root     pts/1        2019-01-10 16:32 (172.30.1.101)
    [root@node103 ~]# 
    [root@node103 ~]# exit 
    logout
    Connection to node103.yinzhengjie.org.cn closed.
    [root@node101 ~]# 
    [root@node101 ~]# 
    与node103.yinzhengjie.org.cn节点配置免密登录([root@node101 ~]# ssh-copy-id root@node103.yinzhengjie.org.cn)

    3>.使用yum工具包安装ansible

      安装ansible依赖python2-pyasn1,PyYAML,python-jinja2等模块,使用yum方式安装,他会自动帮我们处理依赖关系,我们配置好yum源即可。

    [root@node101 ~]# yum -y install wget
    Loaded plugins: fastestmirror
    base                                                                                                                                        | 3.6 kB  00:00:00     
    extras                                                                                                                                      | 3.4 kB  00:00:00     
    updates                                                                                                                                     | 3.4 kB  00:00:00     
    updates/7/x86_64/primary_db    FAILED                                          
    http://mirrors.cqu.edu.cn/CentOS/7.6.1810/updates/x86_64/repodata/1c8b4fadfe3ee3539b33616064daaae4a96b2d659235607042e44c7cc389e0dc-primary.sqlite.bz2: [Errno 14] curl#56 - "Recv failure: Connection reset by peer"
    Trying other mirror.
    (1/4): extras/7/x86_64/primary_db                                                                                                           | 156 kB  00:00:00     
    (2/4): base/7/x86_64/group_gz                                                                                                               | 166 kB  00:00:02     
    (3/4): updates/7/x86_64/primary_db                                                                                                          | 2.4 MB  00:00:03     
    (4/4): base/7/x86_64/primary_db                                                                                                             | 6.0 MB  00:00:08     
    Determining fastest mirrors
     * base: mirrors.tuna.tsinghua.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.tuna.tsinghua.edu.cn
    Resolving Dependencies
    --> Running transaction check
    ---> Package wget.x86_64 0:1.14-18.el7 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===================================================================================================================================================================
     Package                             Arch                                  Version                                       Repository                           Size
    ===================================================================================================================================================================
    Installing:
     wget                                x86_64                                1.14-18.el7                                   base                                547 k
    
    Transaction Summary
    ===================================================================================================================================================================
    Install  1 Package
    
    Total download size: 547 k
    Installed size: 2.0 M
    Downloading packages:
    warning: /var/cache/yum/x86_64/7/base/packages/wget-1.14-18.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Public key for wget-1.14-18.el7.x86_64.rpm is not installed
    wget-1.14-18.el7.x86_64.rpm                                                                                                                 | 547 kB  00:00:00     
    Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    Importing GPG key 0xF4A80EB5:
     Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
     Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
     Package    : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@anaconda)
     From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : wget-1.14-18.el7.x86_64                                                                                                                         1/1 
      Verifying  : wget-1.14-18.el7.x86_64                                                                                                                         1/1 
    
    Installed:
      wget.x86_64 0:1.14-18.el7                                                                                                                                        
    
    Complete!
    [root@node101 ~]# 
    安装下载工具([root@node101 ~]# yum -y install wget)
    [root@node101 ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    --2019-01-10 17:14:45--  http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    Resolving dl.fedoraproject.org (dl.fedoraproject.org)... 209.132.181.23, 209.132.181.24
    Connecting to dl.fedoraproject.org (dl.fedoraproject.org)|209.132.181.23|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 15080 (15K) [application/x-rpm]
    Saving to: ‘epel-release-latest-7.noarch.rpm’
    
    100%[================================================================================================================================>] 15,080      78.2KB/s   in 0.2s   
    
    2019-01-10 17:14:46 (78.2 KB/s) - ‘epel-release-latest-7.noarch.rpm’ saved [15080/15080]
    
    [root@node101 ~]# 
    下载epel源([root@node101 ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm)
    [root@node101 ~]# ll
    total 16
    -rw-r--r--. 1 root root 15080 Jan 10 17:00 epel-release-latest-7.noarch.rpm
    [root@node101 ~]# 
    [root@node101 ~]# rpm -ivh epel-release-latest-7.noarch.rpm 
    warning: epel-release-latest-7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:epel-release-7-11                ################################# [100%]
    [root@node101 ~]# 
    [root@node101 ~]# ll /etc/yum.repos.d/ | grep epel
    -rw-r--r--. 1 root root  951 Oct  3  2017 epel.repo
    -rw-r--r--. 1 root root 1050 Oct  3  2017 epel-testing.repo
    [root@node101 ~]# 
    安装epel源([root@node101 ~]# rpm -ivh epel-release-latest-7.noarch.rpm )
    [root@node101 ~]# cat /etc/yum.conf  | grep -v ^# |grep  -v ^$
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=5
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release
    [root@node101 ~]# 
    [root@node101 ~]# sed -i 's#keepcache=0#keepcache=1#' /etc/yum.conf
    [root@node101 ~]# 
    [root@node101 ~]# cat /etc/yum.conf  | grep -v ^# |grep  -v ^$     
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=1
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=5
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release
    [root@node101 ~]# 
    修改yum的配置文件,使得下载rpm安装包后不删除,方便咱们以后自建内网的yum仓库([root@node101 ~]# sed -i 's#keepcache=0#keepcache=1#' /etc/yum.conf)
    [root@node101 ~]# yum  clean all
    Loaded plugins: fastestmirror, langpacks
    Cleaning repos: epel
    Cleaning up everything
    [root@node101 ~]# 
    清空之前的缓存([root@node101 ~]# yum clean all)
    [root@node101 ~]# yum makecache
    Loaded plugins: fastestmirror, langpacks
    base                                                                                                                                               | 3.6 kB  00:00:00     
    epel/x86_64/metalink                                                                                                                               | 8.1 kB  00:00:00     
    epel                                                                                                                                               | 3.2 kB  00:00:00     
    extras                                                                                                                                             | 3.4 kB  00:00:00     
    updates                                                                                                                                            | 3.4 kB  00:00:00     
    (1/18): epel/x86_64/group_gz                                                                                                                       |  88 kB  00:00:00     
    (2/18): base/7/x86_64/other_db                                                                                                                     | 2.6 MB  00:00:06     
    (3/18): base/7/x86_64/group_gz                                                                                                                     | 166 kB  00:00:08     
    (4/18): epel/x86_64/prestodelta                                                                                                                    |  803 B  00:00:11     
    (5/18): epel/x86_64/updateinfo                                                                                                                     | 948 kB  00:00:13     
    (6/18): epel/x86_64/filelists                                                                                                                      |  10 MB  00:00:20     
    (7/18): epel/x86_64/other                                                                                                                          | 2.3 MB  00:00:06     
    (8/18): base/7/x86_64/filelists_db                                                                                                                 | 7.1 MB  00:00:27     
    (9/18): extras/7/x86_64/primary_db                                                                                                                 | 156 kB  00:00:01     
    (10/18): extras/7/x86_64/other_db                                                                                                                  | 107 kB  00:00:01     
    (11/18): base/7/x86_64/primary_db                                                                                                                  | 6.0 MB  00:00:33     
    (12/18): updates/7/x86_64/prestodelta                                                                                                              | 183 kB  00:00:03     
    (13/18): extras/7/x86_64/filelists_db                                                                                                              | 189 kB  00:00:22     
    (14/18): updates/7/x86_64/filelists_db                                                                                                             | 1.4 MB  00:00:14     
    (15/18): updates/7/x86_64/primary_db                                                                                                               | 1.3 MB  00:00:14     
    extras/7/x86_64/prestodelta    FAILED                                          ========================================================-] 200 kB/s |  36 MB  00:00:01 ETA 
    http://mirrors.njupt.edu.cn/centos/7.6.1810/extras/x86_64/repodata/9718255a5fa57675311c5ac73719bee470f94b10d38b5aa988511b9ddd860025-prestodelta.xml.gz: [Errno 12] Timeout on http://10.10.254.10/cache/4/02/mirrors.njupt.edu.cn/4f9b5de52f938c8378fba16c668a0a55/9718255a5fa57675311c5ac73719bee470f94b10d38b5aa988511b9ddd860025-prestodelta.xml.gz: (28, 'Connection timed out after 30884 milliseconds')
    Trying other mirror.
    (16/18): extras/7/x86_64/prestodelta                                                                                                               |  36 kB  00:00:00     
    (17/18): epel/x86_64/primary                                                                                                                       | 3.6 MB  00:00:38     
    updates/7/x86_64/other_db      FAILED                                          
    http://mirrors.njupt.edu.cn/centos/7.6.1810/updates/x86_64/repodata/1fab468ed066d5469823091845179165040deb4951923d854a025e3b5c903051-other.sqlite.bz2: [Errno 12] Timeout on http://10.10.254.10/cache/5/02/mirrors.njupt.edu.cn/08d3e890295133ac7140ae59fc9dee3f/1fab468ed066d5469823091845179165040deb4951923d854a025e3b5c903051-other.sqlite.bz2: (28, 'Connection timed out after 30866 milliseconds')
    Trying other mirror.
    (18/18): updates/7/x86_64/other_db                                                                                                                 | 191 kB  00:00:00     
    Determining fastest mirrors
     * base: mirror.jdcloud.com
     * epel: mirrors.yun-idc.com
     * extras: mirror.jdcloud.com
     * updates: mirrors.tuna.tsinghua.edu.cn
    epel                                                                                                                                                          12852/12852
    epel                                                                                                                                                          12852/12852
    epel                                                                                                                                                          12852/12852
    Metadata Cache Created
    [root@node101 ~]# 
    创建yum缓存([root@node101 ~]# yum makecache)
    [root@node101 ~]# yum -y install  ansible
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirror.jdcloud.com
     * epel: mirrors.yun-idc.com
     * extras: mirror.jdcloud.com
     * updates: mirrors.tuna.tsinghua.edu.cn
    Resolving Dependencies
    --> Running transaction check
    ---> Package ansible.noarch 0:2.7.5-1.el7 will be installed
    --> Processing Dependency: sshpass for package: ansible-2.7.5-1.el7.noarch
    --> Processing Dependency: python2-jmespath for package: ansible-2.7.5-1.el7.noarch
    --> Processing Dependency: python-paramiko for package: ansible-2.7.5-1.el7.noarch
    --> Processing Dependency: python-keyczar for package: ansible-2.7.5-1.el7.noarch
    --> Processing Dependency: python-jinja2 for package: ansible-2.7.5-1.el7.noarch
    --> Processing Dependency: python-httplib2 for package: ansible-2.7.5-1.el7.noarch
    --> Processing Dependency: python-crypto for package: ansible-2.7.5-1.el7.noarch
    --> Processing Dependency: PyYAML for package: ansible-2.7.5-1.el7.noarch
    --> Running transaction check
    ---> Package PyYAML.x86_64 0:3.10-11.el7 will be installed
    --> Processing Dependency: libyaml-0.so.2()(64bit) for package: PyYAML-3.10-11.el7.x86_64
    ---> Package python-httplib2.noarch 0:0.9.2-1.el7 will be installed
    ---> Package python-jinja2.noarch 0:2.7.2-2.el7 will be installed
    --> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-2.el7.noarch
    --> Processing Dependency: python-markupsafe for package: python-jinja2-2.7.2-2.el7.noarch
    ---> Package python-keyczar.noarch 0:0.71c-2.el7 will be installed
    ---> Package python-paramiko.noarch 0:2.1.1-9.el7 will be installed
    --> Processing Dependency: python2-pyasn1 for package: python-paramiko-2.1.1-9.el7.noarch
    ---> Package python2-crypto.x86_64 0:2.6.1-15.el7 will be installed
    --> Processing Dependency: libtomcrypt.so.0()(64bit) for package: python2-crypto-2.6.1-15.el7.x86_64
    ---> Package python2-jmespath.noarch 0:0.9.0-3.el7 will be installed
    ---> Package sshpass.x86_64 0:1.06-2.el7 will be installed
    --> Running transaction check
    ---> Package libtomcrypt.x86_64 0:1.17-26.el7 will be installed
    --> Processing Dependency: libtommath >= 0.42.0 for package: libtomcrypt-1.17-26.el7.x86_64
    --> Processing Dependency: libtommath.so.0()(64bit) for package: libtomcrypt-1.17-26.el7.x86_64
    ---> Package libyaml.x86_64 0:0.1.4-11.el7_0 will be installed
    ---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed
    ---> Package python-markupsafe.x86_64 0:0.11-10.el7 will be installed
    ---> Package python-pyasn1.noarch 0:0.1.6-2.el7 will be obsoleted
    ---> Package python2-pyasn1.noarch 0:0.1.9-7.el7 will be obsoleting
    --> Running transaction check
    ---> Package libtommath.x86_64 0:0.42.0-6.el7 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ==========================================================================================================================================================================
     Package                                       Arch                               Version                                       Repository                           Size
    ==========================================================================================================================================================================
    Installing:
     ansible                                       noarch                             2.7.5-1.el7                                   epel                                 11 M
     python2-pyasn1                                noarch                             0.1.9-7.el7                                   base                                100 k
         replacing  python-pyasn1.noarch 0.1.6-2.el7
    Installing for dependencies:
     PyYAML                                        x86_64                             3.10-11.el7                                   base                                153 k
     libtomcrypt                                   x86_64                             1.17-26.el7                                   extras                              224 k
     libtommath                                    x86_64                             0.42.0-6.el7                                  extras                               36 k
     libyaml                                       x86_64                             0.1.4-11.el7_0                                base                                 55 k
     python-babel                                  noarch                             0.9.6-8.el7                                   base                                1.4 M
     python-httplib2                               noarch                             0.9.2-1.el7                                   extras                              115 k
     python-jinja2                                 noarch                             2.7.2-2.el7                                   base                                515 k
     python-keyczar                                noarch                             0.71c-2.el7                                   epel                                218 k
     python-markupsafe                             x86_64                             0.11-10.el7                                   base                                 25 k
     python-paramiko                               noarch                             2.1.1-9.el7                                   updates                             269 k
     python2-crypto                                x86_64                             2.6.1-15.el7                                  extras                              477 k
     python2-jmespath                              noarch                             0.9.0-3.el7                                   extras                               39 k
     sshpass                                       x86_64                             1.06-2.el7                                    extras                               21 k
    
    Transaction Summary
    ==========================================================================================================================================================================
    Install  2 Packages (+13 Dependent packages)
    
    Total download size: 15 M
    Downloading packages:
    (1/15): PyYAML-3.10-11.el7.x86_64.rpm                                                                                                              | 153 kB  00:00:00     
    (2/15): libtomcrypt-1.17-26.el7.x86_64.rpm                                                                                                         | 224 kB  00:00:00     
    (3/15): python-httplib2-0.9.2-1.el7.noarch.rpm                                                                                                     | 115 kB  00:00:00     
    (4/15): python-jinja2-2.7.2-2.el7.noarch.rpm                                                                                                       | 515 kB  00:00:00     
    (5/15): libtommath-0.42.0-6.el7.x86_64.rpm                                                                                                         |  36 kB  00:00:01     
    (6/15): python-markupsafe-0.11-10.el7.x86_64.rpm                                                                                                   |  25 kB  00:00:00     
    (7/15): python-paramiko-2.1.1-9.el7.noarch.rpm                                                                                                     | 269 kB  00:00:00     
    (8/15): python2-crypto-2.6.1-15.el7.x86_64.rpm                                                                                                     | 477 kB  00:00:00     
    (9/15): python2-jmespath-0.9.0-3.el7.noarch.rpm                                                                                                    |  39 kB  00:00:00     
    (10/15): python2-pyasn1-0.1.9-7.el7.noarch.rpm                                                                                                     | 100 kB  00:00:00     
    (11/15): sshpass-1.06-2.el7.x86_64.rpm                                                                                                             |  21 kB  00:00:00     
    (12/15): python-babel-0.9.6-8.el7.noarch.rpm                                                                                                       | 1.4 MB  00:00:04     
    (13/15): libyaml-0.1.4-11.el7_0.x86_64.rpm                                                                                                         |  55 kB  00:00:05     
    warning: /var/cache/yum/x86_64/7/epel/packages/python-keyczar-0.71c-2.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY7 kB/s | 9.4 MB  00:00:06 ETA 
    Public key for python-keyczar-0.71c-2.el7.noarch.rpm is not installed
    (14/15): python-keyczar-0.71c-2.el7.noarch.rpm                                                                                                     | 218 kB  00:00:09     
    (15/15): ansible-2.7.5-1.el7.noarch.rpm                                                                                                            |  11 MB  00:00:17     
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Total                                                                                                                                     870 kB/s |  15 MB  00:00:17     
    Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    Importing GPG key 0x352C64E5:
     Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"
     Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
     Package    : epel-release-7-11.noarch (installed)
     From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
    Warning: RPMDB altered outside of yum.
      Installing : python2-pyasn1-0.1.9-7.el7.noarch                                                                                                                     1/16 
      Installing : python-paramiko-2.1.1-9.el7.noarch                                                                                                                    2/16 
      Installing : python-babel-0.9.6-8.el7.noarch                                                                                                                       3/16 
      Installing : python-httplib2-0.9.2-1.el7.noarch                                                                                                                    4/16 
      Installing : sshpass-1.06-2.el7.x86_64                                                                                                                             5/16 
      Installing : libtommath-0.42.0-6.el7.x86_64                                                                                                                        6/16 
      Installing : libtomcrypt-1.17-26.el7.x86_64                                                                                                                        7/16 
      Installing : python2-crypto-2.6.1-15.el7.x86_64                                                                                                                    8/16 
      Installing : python-keyczar-0.71c-2.el7.noarch                                                                                                                     9/16 
      Installing : python-markupsafe-0.11-10.el7.x86_64                                                                                                                 10/16 
      Installing : python-jinja2-2.7.2-2.el7.noarch                                                                                                                     11/16 
      Installing : python2-jmespath-0.9.0-3.el7.noarch                                                                                                                  12/16 
      Installing : libyaml-0.1.4-11.el7_0.x86_64                                                                                                                        13/16 
      Installing : PyYAML-3.10-11.el7.x86_64                                                                                                                            14/16 
      Installing : ansible-2.7.5-1.el7.noarch                                                                                                                           15/16 
      Erasing    : python-pyasn1-0.1.6-2.el7.noarch                                                                                                                     16/16 
      Verifying  : python-keyczar-0.71c-2.el7.noarch                                                                                                                     1/16 
      Verifying  : libyaml-0.1.4-11.el7_0.x86_64                                                                                                                         2/16 
      Verifying  : python-jinja2-2.7.2-2.el7.noarch                                                                                                                      3/16 
      Verifying  : python2-jmespath-0.9.0-3.el7.noarch                                                                                                                   4/16 
      Verifying  : python-paramiko-2.1.1-9.el7.noarch                                                                                                                    5/16 
      Verifying  : python-markupsafe-0.11-10.el7.x86_64                                                                                                                  6/16 
      Verifying  : python2-crypto-2.6.1-15.el7.x86_64                                                                                                                    7/16 
      Verifying  : libtommath-0.42.0-6.el7.x86_64                                                                                                                        8/16 
      Verifying  : sshpass-1.06-2.el7.x86_64                                                                                                                             9/16 
      Verifying  : python-httplib2-0.9.2-1.el7.noarch                                                                                                                   10/16 
      Verifying  : ansible-2.7.5-1.el7.noarch                                                                                                                           11/16 
      Verifying  : PyYAML-3.10-11.el7.x86_64                                                                                                                            12/16 
      Verifying  : python-babel-0.9.6-8.el7.noarch                                                                                                                      13/16 
      Verifying  : libtomcrypt-1.17-26.el7.x86_64                                                                                                                       14/16 
      Verifying  : python2-pyasn1-0.1.9-7.el7.noarch                                                                                                                    15/16 
      Verifying  : python-pyasn1-0.1.6-2.el7.noarch                                                                                                                     16/16 
    
    Installed:
      ansible.noarch 0:2.7.5-1.el7                                                     python2-pyasn1.noarch 0:0.1.9-7.el7                                                    
    
    Dependency Installed:
      PyYAML.x86_64 0:3.10-11.el7                libtomcrypt.x86_64 0:1.17-26.el7         libtommath.x86_64 0:0.42.0-6.el7         libyaml.x86_64 0:0.1.4-11.el7_0          
      python-babel.noarch 0:0.9.6-8.el7          python-httplib2.noarch 0:0.9.2-1.el7     python-jinja2.noarch 0:2.7.2-2.el7       python-keyczar.noarch 0:0.71c-2.el7      
      python-markupsafe.x86_64 0:0.11-10.el7     python-paramiko.noarch 0:2.1.1-9.el7     python2-crypto.x86_64 0:2.6.1-15.el7     python2-jmespath.noarch 0:0.9.0-3.el7    
      sshpass.x86_64 0:1.06-2.el7               
    
    Replaced:
      python-pyasn1.noarch 0:0.1.6-2.el7                                                                                                                                      
    
    Complete!
    [root@node101 ~]# 
    安装ansible([root@node101 ~]# yum -y install ansible)

    4>.配置ansible的配置文件

      我根据我的需求,将主机分为2个角色,大家都知道,hdfs集群又NameNode和DataNode之分,因此我将配置相对较高的那台机器配置为NameNode节点,然后把DataNode服务安置在所有的节点上。

    [root@node101 ~]# tail -8 /etc/ansible/hosts 
    #Add by yinzhengjie
    [namenode]
    node101.yinzhengjie.org.cn
    
    [datanode]
    node101.yinzhengjie.org.cn
    node102.yinzhengjie.org.cn
    node103.yinzhengjie.org.cn
    [root@node101 ~]# 
    [root@node101 ~]# 

    5>.安装相关依赖插件,解决cryptography 0.8.2 版本兼容性(如果该步骤不做的话,在你执行“ansible all -m ping”命令时可能会报错!)

      5.1>.安装pip

    [root@node101 ~]# wget  https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz
    --2019-01-10 18:11:31--  https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz
    Resolving files.pythonhosted.org (files.pythonhosted.org)... 151.101.109.63, 2a04:4e42:36::319
    Connecting to files.pythonhosted.org (files.pythonhosted.org)|151.101.109.63|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1259370 (1.2M) [binary/octet-stream]
    Saving to: ‘pip-18.1.tar.gz’
    
    100%[================================================================================================================================>] 1,259,370   64.7KB/s   in 22s    
    
    2019-01-10 18:11:55 (55.4 KB/s) - ‘pip-18.1.tar.gz’ saved [1259370/1259370]
    
    [root@node101 ~]# 
    下载pip([root@node101 ~]# wget https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz) 
    [root@node101 ~]# tar -zxf pip-18.1.tar.gz 
    [root@node101 ~]# ll
    total 1252
    -rw-r--r--. 1 root root    15080 Oct  3  2017 epel-release-latest-7.noarch.rpm
    drwxr-xr-x. 6  501 games    4096 Jan 10 18:13 pip-18.1
    -rw-r--r--. 1 root root  1259370 Oct  5 19:20 pip-18.1.tar.gz
    [root@node101 ~]# 
    [root@node101 ~]# cd pip-18.1/
    [root@node101 pip-18.1]# 
    [root@node101 pip-18.1]# python setup.py  install
    .........(内容输出过多,我这里就统一复制了!)
    Installing pip2.7 script to /usr/bin
    Installing pip2 script to /usr/bin
    
    Installed /usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg
    Processing dependencies for pip==18.1
    Finished processing dependencies for pip==18.1
    [root@node101 pip-18.1]#  
    安装pip工具([root@node101 pip-18.1]# python setup.py install)

      5.2>.安装wheel 

    [root@node101 ~]# wget  https://files.pythonhosted.org/packages/d8/55/221a530d66bf78e72996453d1e2dedef526063546e131d70bed548d80588/wheel-0.32.3.tar.gz
    --2019-01-10 18:16:37--  https://files.pythonhosted.org/packages/d8/55/221a530d66bf78e72996453d1e2dedef526063546e131d70bed548d80588/wheel-0.32.3.tar.gz
    Resolving files.pythonhosted.org (files.pythonhosted.org)... 151.101.109.63, 2a04:4e42:1a::319
    Connecting to files.pythonhosted.org (files.pythonhosted.org)|151.101.109.63|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 18585 (18K) [binary/octet-stream]
    Saving to: ‘wheel-0.32.3.tar.gz’
    
    100%[================================================================================================================================>] 18,585      --.-K/s   in 0.1s    
    
    2019-01-10 18:16:38 (162 KB/s) - ‘wheel-0.32.3.tar.gz’ saved [18585/18585]
    
    [root@node101 ~]# ll
    total 1272
    -rw-r--r--. 1 root root    15080 Oct  3  2017 epel-release-latest-7.noarch.rpm
    drwxr-xr-x. 6  501 games    4096 Jan 10 18:13 pip-18.1
    -rw-r--r--. 1 root root  1259370 Oct  5 19:20 pip-18.1.tar.gz
    -rw-r--r--. 1 root root    18585 Nov 19 08:26 wheel-0.32.3.tar.gz
    [root@node101 ~]# 
    [root@node101 ~]# 
    下载wheel([root@node101 ~]# wget https://files.pythonhosted.org/packages/d8/55/221a530d66bf78e72996453d1e2dedef526063546e131d70bed548d80588/wheel-0.32.3.tar.gz)
    [root@node101 ~]# ll
    total 1272
    -rw-r--r--. 1 root root    15080 Oct  3  2017 epel-release-latest-7.noarch.rpm
    drwxr-xr-x. 6  501 games    4096 Jan 10 18:13 pip-18.1
    -rw-r--r--. 1 root root  1259370 Oct  5 19:20 pip-18.1.tar.gz
    -rw-r--r--. 1 root root    18585 Nov 19 08:26 wheel-0.32.3.tar.gz
    [root@node101 ~]# 
    [root@node101 ~]# tar -zxf wheel-0.32.3.tar.gz 
    [root@node101 ~]# 
    [root@node101 ~]# ll
    total 1276
    -rw-r--r--. 1 root root    15080 Oct  3  2017 epel-release-latest-7.noarch.rpm
    drwxr-xr-x. 6  501 games    4096 Jan 10 18:13 pip-18.1
    -rw-r--r--. 1 root root  1259370 Oct  5 19:20 pip-18.1.tar.gz
    drwxrwxr-x. 4 2000  2000    4096 Nov 19 08:25 wheel-0.32.3
    -rw-r--r--. 1 root root    18585 Nov 19 08:26 wheel-0.32.3.tar.gz
    [root@node101 ~]# 
    [root@node101 ~]# cd wheel-0.32.3/
    [root@node101 wheel-0.32.3]# ll
    total 32
    -rw-rw-r--. 1 2000 2000 1125 Nov 19 08:25 LICENSE.txt
    -rw-rw-r--. 1 2000 2000  244 Nov 19 08:25 MANIFEST.in
    -rw-rw-r--. 1 2000 2000 2207 Nov 19 08:25 PKG-INFO
    -rw-rw-r--. 1 2000 2000  799 Nov 19 08:25 README.rst
    -rw-rw-r--. 1 2000 2000  276 Nov 19 08:25 setup.cfg
    -rw-rw-r--. 1 2000 2000 2133 Nov 19 08:25 setup.py
    drwxrwxr-x. 3 2000 2000 4096 Nov 19 08:25 wheel
    drwxrwxr-x. 2 2000 2000 4096 Nov 19 08:25 wheel.egg-info
    [root@node101 wheel-0.32.3]#
    [root@node101 wheel-0.32.3]# python setup.py  install
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'project_urls'
      warnings.warn(msg)
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
      warnings.warn(msg)
    running install
    running bdist_egg
    running egg_info
    writing requirements to wheel.egg-info/requires.txt
    writing wheel.egg-info/PKG-INFO
    writing top-level names to wheel.egg-info/top_level.txt
    writing dependency_links to wheel.egg-info/dependency_links.txt
    writing entry points to wheel.egg-info/entry_points.txt
    reading manifest file 'wheel.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'wheel/*.txt'
    warning: no files found matching '*.sh'
    warning: no files found matching '*.py' under directory 'wheel/test'
    warning: no files found matching 'wheel/test/test-1.0-py2.py3-none-win32.whl'
    warning: no files found matching 'wheel/test/headers.dist/header.h'
    warning: no files found matching 'wheel/test/pydist-schema.json'
    no previously-included directories found matching 'wheel/test/*/dist'
    no previously-included directories found matching 'wheel/test/*/build'
    writing manifest file 'wheel.egg-info/SOURCES.txt'
    installing library code to build/bdist.linux-x86_64/egg
    running install_lib
    running build_py
    creating build
    creating build/lib
    creating build/lib/wheel
    copying wheel/wheelfile.py -> build/lib/wheel
    copying wheel/pep425tags.py -> build/lib/wheel
    copying wheel/__init__.py -> build/lib/wheel
    copying wheel/util.py -> build/lib/wheel
    copying wheel/metadata.py -> build/lib/wheel
    copying wheel/__main__.py -> build/lib/wheel
    copying wheel/bdist_wheel.py -> build/lib/wheel
    copying wheel/pkginfo.py -> build/lib/wheel
    creating build/lib/wheel/cli
    copying wheel/cli/install.py -> build/lib/wheel/cli
    copying wheel/cli/pack.py -> build/lib/wheel/cli
    copying wheel/cli/__init__.py -> build/lib/wheel/cli
    copying wheel/cli/convert.py -> build/lib/wheel/cli
    copying wheel/cli/unpack.py -> build/lib/wheel/cli
    creating build/bdist.linux-x86_64
    creating build/bdist.linux-x86_64/egg
    creating build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/wheelfile.py -> build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/pep425tags.py -> build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/__init__.py -> build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/util.py -> build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/metadata.py -> build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/__main__.py -> build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/bdist_wheel.py -> build/bdist.linux-x86_64/egg/wheel
    copying build/lib/wheel/pkginfo.py -> build/bdist.linux-x86_64/egg/wheel
    creating build/bdist.linux-x86_64/egg/wheel/cli
    copying build/lib/wheel/cli/install.py -> build/bdist.linux-x86_64/egg/wheel/cli
    copying build/lib/wheel/cli/pack.py -> build/bdist.linux-x86_64/egg/wheel/cli
    copying build/lib/wheel/cli/__init__.py -> build/bdist.linux-x86_64/egg/wheel/cli
    copying build/lib/wheel/cli/convert.py -> build/bdist.linux-x86_64/egg/wheel/cli
    copying build/lib/wheel/cli/unpack.py -> build/bdist.linux-x86_64/egg/wheel/cli
    byte-compiling build/bdist.linux-x86_64/egg/wheel/wheelfile.py to wheelfile.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/pep425tags.py to pep425tags.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/util.py to util.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/metadata.py to metadata.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/__main__.py to __main__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/bdist_wheel.py to bdist_wheel.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/pkginfo.py to pkginfo.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/cli/install.py to install.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/cli/pack.py to pack.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/cli/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/cli/convert.py to convert.pyc
    byte-compiling build/bdist.linux-x86_64/egg/wheel/cli/unpack.py to unpack.pyc
    creating build/bdist.linux-x86_64/egg/EGG-INFO
    copying wheel.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying wheel.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying wheel.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying wheel.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying wheel.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying wheel.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying wheel.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    creating dist
    creating 'dist/wheel-0.32.3-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
    removing 'build/bdist.linux-x86_64/egg' (and everything under it)
    Processing wheel-0.32.3-py2.7.egg
    creating /usr/lib/python2.7/site-packages/wheel-0.32.3-py2.7.egg
    Extracting wheel-0.32.3-py2.7.egg to /usr/lib/python2.7/site-packages
    Adding wheel 0.32.3 to easy-install.pth file
    Installing wheel script to /usr/bin
    
    Installed /usr/lib/python2.7/site-packages/wheel-0.32.3-py2.7.egg
    Processing dependencies for wheel==0.32.3
    Finished processing dependencies for wheel==0.32.3
    [root@node101 wheel-0.32.3]# 
    安装wheel工具([root@node101 wheel-0.32.3]# python setup.py install)

      5.3>.安装cryptography 

    [root@node101 ~]# wget  https://files.pythonhosted.org/packages/7f/ba/383b51cc26e3141c689ce988814385c7659f5ba01c4b5f2de38233010b5f/cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl
    --2019-01-10 18:23:46--  https://files.pythonhosted.org/packages/7f/ba/383b51cc26e3141c689ce988814385c7659f5ba01c4b5f2de38233010b5f/cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl
    Resolving files.pythonhosted.org (files.pythonhosted.org)... 151.101.73.63, 2a04:4e42:11::319
    Connecting to files.pythonhosted.org (files.pythonhosted.org)|151.101.73.63|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 2138565 (2.0M) [binary/octet-stream]
    Saving to: ‘cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl’
    
    100%[================================================================================================================================>] 2,138,565   47.2KB/s   in 24s    
    
    2019-01-10 18:24:11 (85.8 KB/s) - ‘cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl’ saved [2138565/2138565]
    
    [root@node101 ~]# 
    下载cryptography([root@node101 ~]# wget https://files.pythonhosted.org/packages/7f/ba/383b51cc26e3141c689ce988814385c7659f5ba01c4b5f2de38233010b5f/cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl)
    [root@node101 ~]# pip install cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl 
    Processing ./cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl
    Collecting idna>=2.1 (from cryptography==2.4.2)
      Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
        100% |████████████████████████████████| 61kB 248kB/s 
    Requirement already satisfied: enum34; python_version < "3" in /usr/lib/python2.7/site-packages (from cryptography==2.4.2) (1.0.4)
    Collecting cffi!=1.11.3,>=1.7 (from cryptography==2.4.2)
      Downloading https://files.pythonhosted.org/packages/14/dd/3e7a1e1280e7d767bd3fa15791759c91ec19058ebe31217fe66f3e9a8c49/cffi-1.11.5-cp27-cp27mu-manylinux1_x86_64.whl (407kB)
        100% |████████████████████████████████| 409kB 147kB/s 
    Requirement already satisfied: six>=1.4.1 in /usr/lib/python2.7/site-packages (from cryptography==2.4.2) (1.9.0)
    Collecting ipaddress; python_version < "3" (from cryptography==2.4.2)
      Downloading https://files.pythonhosted.org/packages/fc/d0/7fc3a811e011d4b388be48a0e381db8d990042df54aa4ef4599a31d39853/ipaddress-1.0.22-py2.py3-none-any.whl
    Collecting asn1crypto>=0.21.0 (from cryptography==2.4.2)
      Downloading https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl (101kB)
        100% |████████████████████████████████| 102kB 292kB/s 
    Requirement already satisfied: pycparser in /usr/lib/python2.7/site-packages (from cffi!=1.11.3,>=1.7->cryptography==2.4.2) (2.14)
    Installing collected packages: idna, cffi, ipaddress, asn1crypto, cryptography
      Found existing installation: cffi 0.8.6
        Uninstalling cffi-0.8.6:
          Successfully uninstalled cffi-0.8.6
      Found existing installation: cryptography 0.8.2
        Uninstalling cryptography-0.8.2:
          Successfully uninstalled cryptography-0.8.2
    Successfully installed asn1crypto-0.24.0 cffi-1.11.5 cryptography-2.4.2 idna-2.8 ipaddress-1.0.22
    [root@node101 ~]# 
    安装cryptography([root@node101 ~]# pip install cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl )

    6>.使用ansible同步文件到其他节点

    [root@node101 ~]# ansible all -m ping 
    node102.yinzhengjie.org.cn | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    node103.yinzhengjie.org.cn | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    node101.yinzhengjie.org.cn | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    [root@node101 ~]# 
    检查所有节点是否在线([root@node101 ~]# ansible all -m ping )
    [root@node101 ~]# ansible datanode -m copy -a 'src=/etc/hosts dest=/etc/hosts'
    node101.yinzhengjie.org.cn | SUCCESS => {
        "changed": false, 
        "checksum": "6b35ffc3c04d3ec2d3464b74ea0f78c20f27131a", 
        "dest": "/etc/hosts", 
        "gid": 0, 
        "group": "root", 
        "mode": "0644", 
        "owner": "root", 
        "path": "/etc/hosts", 
        "secontext": "system_u:object_r:net_conf_t:s0", 
        "size": 279, 
        "state": "file", 
        "uid": 0
    }
    node102.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "checksum": "6b35ffc3c04d3ec2d3464b74ea0f78c20f27131a", 
        "dest": "/etc/hosts", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "494c828fc321572368ec771a390f90c1", 
        "mode": "0644", 
        "owner": "root", 
        "secontext": "system_u:object_r:net_conf_t:s0", 
        "size": 279, 
        "src": "/root/.ansible/tmp/ansible-tmp-1547116266.5-263369209847793/source", 
        "state": "file", 
        "uid": 0
    }
    node103.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "checksum": "6b35ffc3c04d3ec2d3464b74ea0f78c20f27131a", 
        "dest": "/etc/hosts", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "494c828fc321572368ec771a390f90c1", 
        "mode": "0644", 
        "owner": "root", 
        "secontext": "system_u:object_r:net_conf_t:s0", 
        "size": 279, 
        "src": "/root/.ansible/tmp/ansible-tmp-1547116266.52-44859007354579/source", 
        "state": "file", 
        "uid": 0
    }
    [root@node101 ~]# 
    [root@node101 ~]# ansible all -m shell -a 'cat /etc/hosts|grep yinzhengjie'   
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    172.30.1.101 node101.yinzhengjie.org.cn
    172.30.1.102 node102.yinzhengjie.org.cn
    172.30.1.103 node103.yinzhengjie.org.cn
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    172.30.1.101 node101.yinzhengjie.org.cn
    172.30.1.102 node102.yinzhengjie.org.cn
    172.30.1.103 node103.yinzhengjie.org.cn
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    172.30.1.101 node101.yinzhengjie.org.cn
    172.30.1.102 node102.yinzhengjie.org.cn
    172.30.1.103 node103.yinzhengjie.org.cn
    
    [root@node101 ~]# 
    将namenode节点的数据同步到其他节点中([root@node101 ~]# ansible datanode -m copy -a 'src=/etc/hosts dest=/etc/hosts')

    二.安装jdk环境

    1>.卸载jdk1.7版本

    [root@node101 ~]# ansible all -m shell -a 'rpm -qa | grep java'
     [WARNING]: Consider using the yum, dnf or zypper module rather than running rpm.  If you need to use command because yum, dnf or zypper is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    javapackages-tools-3.4.1-11.el7.noarch
    tzdata-java-2015g-1.el7.noarch
    java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
    python-javapackages-3.4.1-11.el7.noarch
    java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    javapackages-tools-3.4.1-11.el7.noarch
    tzdata-java-2015g-1.el7.noarch
    java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
    python-javapackages-3.4.1-11.el7.noarch
    java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    javapackages-tools-3.4.1-11.el7.noarch
    tzdata-java-2015g-1.el7.noarch
    java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
    python-javapackages-3.4.1-11.el7.noarch
    java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
    
    [root@node101 ~]# 
    使用ansible检查各个节点是否安装jdk([root@node101 ~]# ansible all -m shell -a 'rpm -qa | grep java')
    [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch'
     [WARNING]: Consider using the yum, dnf or zypper module rather than running rpm.  If you need to use command because yum, dnf or zypper is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    卸载javapackages软件包( [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch')
    [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps tzdata-java-2015g-1.el7.noarch'        
     [WARNING]: Consider using the yum, dnf or zypper module rather than running rpm.  If you need to use command because yum, dnf or zypper is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    卸载tzdata软件包([root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps tzdata-java-2015g-1.el7.noarch' )
    [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64'
     [WARNING]: Consider using the yum, dnf or zypper module rather than running rpm.  If you need to use command because yum, dnf or zypper is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    卸载openjdk软件包([root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64')
    [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch'                
     [WARNING]: Consider using the yum, dnf or zypper module rather than running rpm.  If you need to use command because yum, dnf or zypper is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]#
    [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch'
    [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64'
     [WARNING]: Consider using the yum, dnf or zypper module rather than running rpm.  If you need to use command because yum, dnf or zypper is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    [root@node101 ~]# ansible all -m shell -a 'rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64'
    [root@node101 ~]# ansible all -m shell -a  'rpm -qa | grep java' 
     [WARNING]: Consider using the yum, dnf or zypper module rather than running rpm.  If you need to use command because yum, dnf or zypper is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node103.yinzhengjie.org.cn | FAILED | rc=1 >>
    non-zero return code
    
    node102.yinzhengjie.org.cn | FAILED | rc=1 >>
    non-zero return code
    
    node101.yinzhengjie.org.cn | FAILED | rc=1 >>
    non-zero return code
    
    [root@node101 ~]# 
    检查jdk1.7相关软件包是否卸载完成([root@node101 ~]# ansible all -m shell -a 'rpm -qa | grep java' )

    2>.安装jdk1.8版本几以上版本

       大家可以自行去Oracle官网下载相应的jdk,我这里给出下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html(推荐下载tar.gz的安装包)。

    [root@node101 ~]# ansible all -m shell -a 'mkdir  -pv /yinzhengjie/softwares'
     [WARNING]: Consider using the file module with state=directory rather than running mkdir.  If you need to use command because file is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    mkdir: created directory ‘/yinzhengjie’
    mkdir: created directory ‘/yinzhengjie/softwares’
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    mkdir: created directory ‘/yinzhengjie’
    mkdir: created directory ‘/yinzhengjie/softwares’
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    mkdir: created directory ‘/yinzhengjie’
    mkdir: created directory ‘/yinzhengjie/softwares’
    
    [root@node101 ~]# 
    创建指定的软件存放目录,这个目录大家可以自定义创建目录([root@node101 ~]# ansible all -m shell -a 'mkdir -pv /yinzhengjie/softwares')
    [root@node101 ~]# ansible namenode -m shell -a 'tar -zxf ~/jdk-8u131-linux-x64.tar.gz -C /yinzhengjie/softwares'
     [WARNING]: Consider using the unarchive module rather than running tar.  If you need to use command because unarchive is insufficient you can add warn=False to this
    command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# ls /yinzhengjie/softwares/
    jdk1.8.0_131
    [root@node101 ~]# 
    [root@node101 ~]# ll /yinzhengjie/softwares/jdk1.8.0_131/
    total 25884
    drwxr-xr-x. 2 10 143     4096 Mar 15  2017 bin
    -r--r--r--. 1 10 143     3244 Mar 15  2017 COPYRIGHT
    drwxr-xr-x. 4 10 143     4096 Mar 15  2017 db
    drwxr-xr-x. 3 10 143     4096 Mar 15  2017 include
    -rwxr-xr-x. 1 10 143  5097105 Mar 15  2017 javafx-src.zip
    drwxr-xr-x. 5 10 143     4096 Mar 15  2017 jre
    drwxr-xr-x. 5 10 143     4096 Mar 15  2017 lib
    -r--r--r--. 1 10 143       40 Mar 15  2017 LICENSE
    drwxr-xr-x. 4 10 143     4096 Mar 15  2017 man
    -r--r--r--. 1 10 143      159 Mar 15  2017 README.html
    -rw-r--r--. 1 10 143      526 Mar 15  2017 release
    -rw-r--r--. 1 10 143 21115141 Mar 15  2017 src.zip
    -rwxr-xr-x. 1 10 143    63933 Mar 15  2017 THIRDPARTYLICENSEREADME-JAVAFX.txt
    -r--r--r--. 1 10 143   177094 Mar 15  2017 THIRDPARTYLICENSEREADME.txt
    [root@node101 ~]# 
    解压jdk软件([root@node101 ~]# ansible namenode -m shell -a 'tar -zxf ~/jdk-8u131-linux-x64.tar.gz -C /yinzhengjie/softwares')
    [root@node101 ~]# ansible  datanode -m copy -a 'src=/yinzhengjie/softwares/jdk1.8.0_131  dest=/yinzhengjie/softwares'       
    node101.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "dest": "/yinzhengjie/softwares/", 
        "src": "/yinzhengjie/softwares/jdk1.8.0_131"
    }
    node103.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "dest": "/yinzhengjie/softwares/", 
        "src": "/yinzhengjie/softwares/jdk1.8.0_131"
    }
    node102.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "dest": "/yinzhengjie/softwares/", 
        "src": "/yinzhengjie/softwares/jdk1.8.0_131"
    }
    [root@node101 ~]# 
    将主节点的java目录同步到其他节点([root@node101 ~]# ansible datanode -m copy -a 'src=/yinzhengjie/softwares/jdk1.8.0_131 dest=/yinzhengjie/softwares')
    [root@node101 ~]# ansible datanode -m shell -a 'ln -s /yinzhengjie/softwares/jdk1.8.0_131 /yinzhengjie/softwares/jdk'             
     [WARNING]: Consider using the file module with state=link rather than running ln.  If you need to use command because file is insufficient you can add warn=False to
    this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    创建符号链接,即软连接([root@node101 ~]# ansible datanode -m shell -a 'ln -s /yinzhengjie/softwares/jdk1.8.0_131 /yinzhengjie/softwares/jdk' ) 

    3>.配置环境java的系统环境变量

    [root@node101 ~]# tail -3 /etc/profile
    #ADD JAVA_PATH
    JAVA_HOME=/yinzhengjie/softwares/jdk
    PATH=$PATH:$JAVA_HOME/bin
    [root@node101 ~]# 
    [root@node101 ~]# ansible datanode -m copy -a 'src=/etc/profile dest=/etc/profile'
    node103.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "checksum": "5b3a42ee16d78583b834dc0dea67d282b5fa5323", 
        "dest": "/etc/profile", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "cd04b3ecdde83a7c250b923167dc0c01", 
        "mode": "0644", 
        "owner": "root", 
        "secontext": "system_u:object_r:etc_t:s0", 
        "size": 1828, 
        "src": "/root/.ansible/tmp/ansible-tmp-1547122009.37-153584791304684/source", 
        "state": "file", 
        "uid": 0
    }
    node102.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "checksum": "5b3a42ee16d78583b834dc0dea67d282b5fa5323", 
        "dest": "/etc/profile", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "cd04b3ecdde83a7c250b923167dc0c01", 
        "mode": "0644", 
        "owner": "root", 
        "secontext": "system_u:object_r:etc_t:s0", 
        "size": 1828, 
        "src": "/root/.ansible/tmp/ansible-tmp-1547122009.34-130374655280496/source", 
        "state": "file", 
        "uid": 0
    }
    node101.yinzhengjie.org.cn | SUCCESS => {
        "changed": false, 
        "checksum": "5b3a42ee16d78583b834dc0dea67d282b5fa5323", 
        "dest": "/etc/profile", 
        "gid": 0, 
        "group": "root", 
        "mode": "0644", 
        "owner": "root", 
        "path": "/etc/profile", 
        "secontext": "system_u:object_r:etc_t:s0", 
        "size": 1828, 
        "state": "file", 
        "uid": 0
    }
    [root@node101 ~]#
    [root@node101 ~]# ansible datanode -m copy -a 'src=/etc/profile dest=/etc/profile'
    [root@node101 ~]# ansible datanode -m shell -a 'chmod -R 777 /yinzhengjie/softwares/jdk/bin'
     [WARNING]: Consider using the file module with mode rather than running chmod.  If you need to use command because file is insufficient you can add warn=False to this
    command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    取保拷贝到其他节点到java脚本拥有相应的执行权限([root@node101 ~]# ansible datanode -m shell -a 'chmod -R 777 /yinzhengjie/softwares/jdk/bin')
    [root@node101 ~]# ansible datanode -m shell -a 'source /etc/profile;java -version'          
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    
    [root@node101 ~]# 
    查看每个节点的环境是否可用([root@node101 ~]# ansible datanode -m shell -a 'source /etc/profile;java -version' ) 
    [root@node101 ~]# ansible datanode -m shell -a 'mkdir /usr/java'                
     [WARNING]: Consider using the file module with state=directory rather than running mkdir.  If you need to use command because file is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]#
    [root@node101 ~]# ansible datanode -m shell -a 'mkdir /usr/java' 
    [root@node101 ~]# ansible datanode -m shell -a 'ln -s /yinzhengjie/softwares/jdk1.8.0_131/ /usr/java/jdk1.8'
     [WARNING]: Consider using the file module with state=link rather than running ln.  If you need to use command because file is insufficient you can add warn=False to
    this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    [root@node101 ~]# ansible datanode -m shell -a 'ln -s /yinzhengjie/softwares/jdk1.8.0_131/ /usr/java/jdk1.8'
    [root@node101 ~]# ansible datanode -m shell -a 'ln -s /yinzhengjie/softwares/jdk1.8.0_131/ /usr/java/defalut'
     [WARNING]: Consider using the file module with state=link rather than running ln.  If you need to use command because file is insufficient you can add warn=False to
    this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 ~]# 
    [root@node101 ~]# ansible datanode -m shell -a 'ln -s /yinzhengjie/softwares/jdk1.8.0_131/ /usr/java/defalut'
    [root@node101 ~]# ansible datanode -m shell -a 'ls -l /usr/java'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 0
    lrwxrwxrwx. 1 root root 36 Jan 10 20:55 defalut -> /yinzhengjie/softwares/jdk1.8.0_131/
    lrwxrwxrwx. 1 root root 36 Jan 10 20:55 jdk1.8 -> /yinzhengjie/softwares/jdk1.8.0_131/
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 0
    lrwxrwxrwx. 1 root root 36 Jan 10 20:55 defalut -> /yinzhengjie/softwares/jdk1.8.0_131/
    lrwxrwxrwx. 1 root root 36 Jan 10 20:55 jdk1.8 -> /yinzhengjie/softwares/jdk1.8.0_131/
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 0
    lrwxrwxrwx. 1 root root 36 Jan 10 20:55 defalut -> /yinzhengjie/softwares/jdk1.8.0_131/
    lrwxrwxrwx. 1 root root 36 Jan 10 20:55 jdk1.8 -> /yinzhengjie/softwares/jdk1.8.0_131/
    
    [root@node101 ~]# 
    [root@node101 ~]# ansible datanode -m shell -a 'ls -l /usr/java'

    三.安装mysql 

    1>.下载mysql的yum源

    [root@node101 ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    --2019-01-10 21:08:45--  http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    Resolving dev.mysql.com (dev.mysql.com)... 137.254.60.11
    Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:80... connected.
    HTTP request sent, awaiting response... 301 Moved Permanently
    Location: https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm [following]
    --2019-01-10 21:08:45--  https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://repo.mysql.com//mysql-community-release-el7-5.noarch.rpm [following]
    --2019-01-10 21:08:48--  https://repo.mysql.com//mysql-community-release-el7-5.noarch.rpm
    Resolving repo.mysql.com (repo.mysql.com)... 104.76.8.253
    Connecting to repo.mysql.com (repo.mysql.com)|104.76.8.253|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 6140 (6.0K) [application/x-redhat-package-manager]
    Saving to: ‘mysql-community-release-el7-5.noarch.rpm’
    
    100%[================================================================================================================================>] 6,140       --.-K/s   in 0s      
    
    2019-01-10 21:08:50 (529 MB/s) - ‘mysql-community-release-el7-5.noarch.rpm’ saved [6140/6140]
    
    [root@node101 ~]#
    [root@node101 ~]# ll
    total 8
    -rw-r--r--. 1 root root 6140 Nov 12  2015 mysql-community-release-el7-5.noarch.rpm
    [root@node101 ~]# 
    [root@node101 ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    2>.安装mysql的yum源

    [root@node101 ~]# ll
    total 8
    -rw-r--r--. 1 root root 6140 Nov 12  2015 mysql-community-release-el7-5.noarch.rpm
    [root@node101 ~]# 
    [root@node101 ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm 
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mysql-community-release-el7-5    ################################# [100%]
    [root@node101 ~]# 
    [root@node101 ~]# ll /etc/yum.repos.d/ | grep mysql
    -rw-r--r--. 1 root root 1209 Jan 29  2014 mysql-community.repo
    -rw-r--r--. 1 root root 1060 Jan 29  2014 mysql-community-source.repo
    [root@node101 ~]# 
    [root@node101 ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

    3>.安装mysql服务

    [root@node101 ~]# yum -y install mysql-community-server
    Loaded plugins: fastestmirror, langpacks
    mysql-connectors-community                                                                                                                         | 2.5 kB  00:00:00     
    mysql-tools-community                                                                                                                              | 2.5 kB  00:00:01     
    mysql56-community                                                                                                                                  | 2.5 kB  00:00:02     
    (1/3): mysql-tools-community/x86_64/primary_db                                                                                                     |  48 kB  00:00:00     
    (2/3): mysql-connectors-community/x86_64/primary_db                                                                                                |  29 kB  00:00:00     
    (3/3): mysql56-community/x86_64/primary_db                                                                                                         | 209 kB  00:00:03     
    Loading mirror speeds from cached hostfile
     * base: mirror.jdcloud.com
     * epel: mirrors.yun-idc.com
     * extras: mirror.jdcloud.com
     * updates: mirrors.tuna.tsinghua.edu.cn
    Resolving Dependencies
    --> Running transaction check
    ---> Package mysql-community-server.x86_64 0:5.6.42-2.el7 will be installed
    --> Processing Dependency: mysql-community-common(x86-64) = 5.6.42-2.el7 for package: mysql-community-server-5.6.42-2.el7.x86_64
    --> Processing Dependency: mysql-community-client(x86-64) >= 5.6.10 for package: mysql-community-server-5.6.42-2.el7.x86_64
    --> Running transaction check
    ---> Package mysql-community-client.x86_64 0:5.6.42-2.el7 will be installed
    --> Processing Dependency: mysql-community-libs(x86-64) >= 5.6.10 for package: mysql-community-client-5.6.42-2.el7.x86_64
    ---> Package mysql-community-common.x86_64 0:5.6.42-2.el7 will be installed
    --> Running transaction check
    ---> Package mariadb-libs.x86_64 1:5.5.44-2.el7.centos will be obsoleted
    ---> Package mysql-community-libs.x86_64 0:5.6.42-2.el7 will be obsoleting
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ==========================================================================================================================================================================
     Package                                         Arch                            Version                                 Repository                                  Size
    ==========================================================================================================================================================================
    Installing:
     mysql-community-libs                            x86_64                          5.6.42-2.el7                            mysql56-community                          2.0 M
         replacing  mariadb-libs.x86_64 1:5.5.44-2.el7.centos
     mysql-community-server                          x86_64                          5.6.42-2.el7                            mysql56-community                           59 M
    Installing for dependencies:
     mysql-community-client                          x86_64                          5.6.42-2.el7                            mysql56-community                           20 M
     mysql-community-common                          x86_64                          5.6.42-2.el7                            mysql56-community                          257 k
    
    Transaction Summary
    ==========================================================================================================================================================================
    Install  2 Packages (+2 Dependent packages)
    
    Total download size: 81 M
    Downloading packages:
    warning: /var/cache/yum/x86_64/7/mysql56-community/packages/mysql-community-common-5.6.42-2.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY02:24 ETA 
    Public key for mysql-community-common-5.6.42-2.el7.x86_64.rpm is not installed
    (1/4): mysql-community-common-5.6.42-2.el7.x86_64.rpm                                                                                              | 257 kB  00:00:01     
    (2/4): mysql-community-libs-5.6.42-2.el7.x86_64.rpm                                                                                                | 2.0 MB  00:00:10     
    (3/4): mysql-community-client-5.6.42-2.el7.x86_64.rpm                                                                                              |  20 MB  00:03:29     
    (4/4): mysql-community-server-5.6.42-2.el7.x86_64.rpm                                                                                              |  59 MB  00:05:01     
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Total                                                                                                                                     264 kB/s |  81 MB  00:05:14     
    Retrieving key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    Importing GPG key 0x5072E1F5:
     Userid     : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
     Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
     Package    : mysql-community-release-el7-5.noarch (installed)
     From       : file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
    Warning: RPMDB altered outside of yum.
    ** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
    1:libreoffice-core-4.3.7.2-5.el7.x86_64 has missing requires of java-headless >= ('1', '1.6', None)
    1:libreoffice-ure-4.3.7.2-5.el7.x86_64 has missing requires of libjvm.so()(64bit)
      Installing : mysql-community-common-5.6.42-2.el7.x86_64                                                                                                             1/5 
      Installing : mysql-community-libs-5.6.42-2.el7.x86_64                                                                                                               2/5 
      Installing : mysql-community-client-5.6.42-2.el7.x86_64                                                                                                             3/5 
      Installing : mysql-community-server-5.6.42-2.el7.x86_64                                                                                                             4/5 
      Erasing    : 1:mariadb-libs-5.5.44-2.el7.centos.x86_64                                                                                                              5/5 
      Verifying  : mysql-community-libs-5.6.42-2.el7.x86_64                                                                                                               1/5 
      Verifying  : mysql-community-common-5.6.42-2.el7.x86_64                                                                                                             2/5 
      Verifying  : mysql-community-client-5.6.42-2.el7.x86_64                                                                                                             3/5 
      Verifying  : mysql-community-server-5.6.42-2.el7.x86_64                                                                                                             4/5 
      Verifying  : 1:mariadb-libs-5.5.44-2.el7.centos.x86_64                                                                                                              5/5 
    
    Installed:
      mysql-community-libs.x86_64 0:5.6.42-2.el7                                         mysql-community-server.x86_64 0:5.6.42-2.el7                                        
    
    Dependency Installed:
      mysql-community-client.x86_64 0:5.6.42-2.el7                                        mysql-community-common.x86_64 0:5.6.42-2.el7                                       
    
    Replaced:
      mariadb-libs.x86_64 1:5.5.44-2.el7.centos                                                                                                                               
    
    Complete!
    [root@node101 ~]# 
    [root@node101 ~]# yum -y install mysql-community-server

    4>.启动mysql服务

    [root@node101 ~]# systemctl enable mysqld
    [root@node101 ~]# 
    [root@node101 ~]# systemctl start mysqld 
    [root@node101 ~]# 
    [root@node101 ~]# 
    [root@node101 ~]# systemctl status mysqld
    ● mysqld.service - MySQL Community Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: active (running) since Thu 2019-01-10 21:40:29 HKT; 8s ago
      Process: 10810 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
      Process: 10730 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
     Main PID: 10809 (mysqld_safe)
       CGroup: /system.slice/mysqld.service
               ├─10809 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
               └─10974 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/my...
    
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysql-systemd-start[10730]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysql-systemd-start[10730]: To do so, start the server, then issue the following commands:
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysql-systemd-start[10730]: /usr/bin/mysqladmin -u root password 'new-password'
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysql-systemd-start[10730]: /usr/bin/mysqladmin -u root -h node101.yinzhengjie.org.cn password 'new-password'
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysql-systemd-start[10730]: Alternatively you can run:
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysql-systemd-start[10730]: /usr/bin/mysql_secure_installation
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysql-systemd-start[10730]: which will also give you the option of removing the test
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysqld_safe[10809]: 190110 21:40:28 mysqld_safe Logging to '/var/log/mysqld.log'.
    Jan 10 21:40:28 node101.yinzhengjie.org.cn mysqld_safe[10809]: 190110 21:40:28 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    Jan 10 21:40:29 node101.yinzhengjie.org.cn systemd[1]: Started MySQL Community Server.
    [root@node101 ~]# 
    [root@node101 ~]# 
    [root@node101 ~]# systemctl start mysqld

    5>.为mysql配置管理用户

    [root@node101 ~]# mysql -uroot                                        #安装后的操作系统,默认是密钥root密码的,我们直接可以用root用户登陆即可。
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.6.42 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> set password for 'root'@'localhost' = password('yinzhengjie');                  #修改root本地用户的登陆密码为“yinzhengjie”
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> grant all privileges on *.* to 'root'@'172.30.1.10%' identified by 'yinzhengjie';       #我这里值允许172.30.1.100~172.30.1.109这10个服务器IP使用root用户登陆我这台mysql。其他的机器不允许。
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> FLUSH PRIVILEGES;                                             #别忘记刷新权限哟!
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> quit
    Bye
    [root@node101 ~]#

    6>.配置一个cdh超级用户权限(这个步骤如果你调过了,在初始化数据库时可能与报错哟!)

    [root@node101 mysql]# systemctl start mysqld
    [root@node101 mysql]# 
    [root@node101 mysql]# systemctl enable mysqld
    Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mysqld.service.
    Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
    [root@node101 mysql]# 
    [root@node101 mysql]# mysql
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.6.38 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'cdh'@'172.30.1.10%' IDENTIFIED BY 'yinzhengjie' WITH GRANT OPTION; 
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'cdh'@'node101.yinzhengjie.org.cn' IDENTIFIED BY 'yinzhengjie' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> quit
    Bye
    [root@node101 mysql]#

    四.部署cloudrea manager软件

    1>.安装相应的依赖包(每个节点都需要安装哟~)

    [root@node101 ~]# ansible datanode -m shell -a 'yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb'

    2>.安装Cloudera Manager Server,Agent(在所有机器)

      2.1>.CDH的选择

        下载地址:http://archive.cloudera.com/cdh5/parcels/5.15.1/

     

      2.2>.CM的选择

        下载地址:http://archive.cloudera.com/cm5/cm/5/

     

      2.3>.温馨提示:

        如果网速较慢的小伙伴可以用不建议使用wget下载,推荐使用迅雷下载再上传到服务器,如果有百度云超级会员的话也可以使用我给大家体现下载好的软件。百度云链接:https://pan.baidu.com/s/148t70GenClGQRtJYX8WjvQ 密码:i2yd

    [root@node101 CDH-5.15.1]# ll
    total 3071760
    -rw-r--r--. 1 root root 2120090032 Jan 10 18:55 CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel
    -rw-r--r--. 1 root root         41 Jan 10 18:54 CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1
    -rw-r--r--. 1 root root  838894986 Jan 10 18:55 cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz
    -rw-r--r--. 1 root root  185540433 Jan 10 18:53 jdk-8u131-linux-x64.tar.gz
    -rw-r--r--. 1 root root      73767 Jan 10 18:55 manifest.json
    -rw-r--r--. 1 root root     855946 Jan 10 18:55 mysql-connector-java-5.1.26.jar
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible all -m shell -a 'ls /yinzhengjie/softwares'
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    jdk
    jdk1.8.0_131
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    CDH-5.15.1
    jdk
    jdk1.8.0_131
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    jdk
    jdk1.8.0_131
    
    [root@node101 CDH-5.15.1]# ansible all -m copy -a 'src=/yinzhengjie/softwares/CDH-5.15.1/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz dest=/yinzhengjie/softwares/'    node101.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "checksum": "4227988280e0f09164bbfc6c59f291c6a814b8be", 
        "dest": "/yinzhengjie/softwares/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "ca0be616f62668915d9ceeb22bdcdd4b", 
        "mode": "0644", 
        "owner": "root", 
        "secontext": "system_u:object_r:default_t:s0", 
        "size": 838894986, 
        "src": "/root/.ansible/tmp/ansible-tmp-1547172382.51-139484190159118/source", 
        "state": "file", 
        "uid": 0
    }
    node103.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "checksum": "4227988280e0f09164bbfc6c59f291c6a814b8be", 
        "dest": "/yinzhengjie/softwares/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "ca0be616f62668915d9ceeb22bdcdd4b", 
        "mode": "0644", 
        "owner": "root", 
        "secontext": "system_u:object_r:default_t:s0", 
        "size": 838894986, 
        "src": "/root/.ansible/tmp/ansible-tmp-1547172382.57-61195539797705/source", 
        "state": "file", 
        "uid": 0
    }
    node102.yinzhengjie.org.cn | CHANGED => {
        "changed": true, 
        "checksum": "4227988280e0f09164bbfc6c59f291c6a814b8be", 
        "dest": "/yinzhengjie/softwares/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "ca0be616f62668915d9ceeb22bdcdd4b", 
        "mode": "0644", 
        "owner": "root", 
        "secontext": "system_u:object_r:default_t:s0", 
        "size": 838894986, 
        "src": "/root/.ansible/tmp/ansible-tmp-1547172382.54-248038987426177/source", 
        "state": "file", 
        "uid": 0
    }
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible all -m shell -a 'ls /yinzhengjie/softwares'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    CDH-5.15.1
    cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz
    jdk
    jdk1.8.0_131
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz
    jdk
    jdk1.8.0_131
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz
    jdk
    jdk1.8.0_131
    
    [root@node101 CDH-5.15.1]# 
    分发Cloudera Manager到各个节点([root@node101 CDH-5.15.1]# ansible all -m copy -a 'src=/yinzhengjie/softwares/CDH-5.15.1/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz dest=/yinzhengjie/softwares/')
    [root@node101 CDH-5.15.1]# ansible all -m shell -a 'mkdir /opt/cloudera-manager'
     [WARNING]: Consider using the file module with state=directory rather than running mkdir.  If you need to use command because file is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    创建解压CM默认解压的目录,如果你想要使用别的解压目录别忘了修改配置文件哟([root@node101 CDH-5.15.1]# ansible all -m shell -a 'mkdir /opt/cloudera-manager')
    [root@node101 softwares]# ansible all -m shell -a 'tar -zxf /yinzhengjie/softwares/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz -C  /opt/cloudera-manager'
     [WARNING]: Consider using the unarchive module rather than running tar.  If you need to use command because unarchive is insufficient you can add warn=False to this
    command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 softwares]# 
    [root@node101 softwares]# ansible all -m shell -a 'ls -l /opt/cloudera-manager'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 8
    drwxr-xr-x. 4 1106 4001 4096 Jul 31 18:28 cloudera
    drwxr-xr-x. 9 1106 4001 4096 Jul 31 18:28 cm-5.15.1
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 8
    drwxr-xr-x. 4 1106 4001 4096 Jul 31 18:28 cloudera
    drwxr-xr-x. 9 1106 4001 4096 Jul 31 18:28 cm-5.15.1
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 8
    drwxr-xr-x. 4 1106 4001 4096 Jul 31 18:28 cloudera
    drwxr-xr-x. 9 1106 4001 4096 Jul 31 18:28 cm-5.15.1
    
    [root@node101 softwares]# 
    将CM解压到我们刚刚创建的目录([root@node101 softwares]# ansible all -m shell -a 'tar -zxf /yinzhengjie/softwares/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz -C /opt/cloudera-manager')
    [root@node101 softwares]# ansible all -m shell -a 'useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm'
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 softwares]# 
    [root@node101 softwares]# 
    [root@node101 softwares]# ansible all -m shell -a 'id cloudera-scm'                                                                                
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    uid=986(cloudera-scm) gid=981(cloudera-scm) groups=981(cloudera-scm)
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    uid=986(cloudera-scm) gid=981(cloudera-scm) groups=981(cloudera-scm)
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    uid=986(cloudera-scm) gid=981(cloudera-scm) groups=981(cloudera-scm)
    
    [root@node101 softwares]# 
    在所有的节点上创建clodera-scm用户([root@node101 softwares]# ansible all -m shell -a 'useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm')

    3>.配置CM的Agent端 

    [root@node101 softwares]# ansible all -m shell -a 'grep server_host /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-agent/config.ini'
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    server_host=localhost
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    server_host=localhost
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    server_host=localhost
    
    [root@node101 softwares]# 
    [root@node101 softwares]# ansible all -m shell -a 'sed -i 's/server_host=localhost/server_host=node101.yinzhengjie.org.cn/g' /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-agent/config.ini'
     [WARNING]: Consider using the replace, lineinfile or template module rather than running sed.  If you need to use command because replace, lineinfile or template is
    insufficient you can add warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 softwares]# 
    [root@node101 softwares]# ansible all -m shell -a 'grep server_host /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-agent/config.ini'                                    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    server_host=node101.yinzhengjie.org.cn
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    server_host=node101.yinzhengjie.org.cn
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    server_host=node101.yinzhengjie.org.cn
    
    [root@node101 softwares]# 
    我们指定CM的Server端([root@node101 softwares]# ansible all -m shell -a 'sed -i 's/server_host=localhost/server_host=node101.yinzhengjie.org.cn/g' /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-agent/config.ini')

    4>.初始化CM Server的数据库

    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'mkdir /usr/share/java'
     [WARNING]: Consider using the file module with state=directory rather than running mkdir.  If you need to use command because file is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    创建java环境目录([root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'mkdir /usr/share/java')
    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'ls -l /usr/share/java'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 0
    
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'mv /yinzhengjie/softwares/CDH-5.15.1/mysql-connector-java-5.1.26.jar /usr/share/java/mysql-connector-java.jar'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'ls -l /usr/share/java'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    total 836
    -rw-r--r--. 1 root root 855946 Jan 10 18:55 mysql-connector-java.jar
    
    [root@node101 CDH-5.15.1]# 
    将mysql的驱动拷贝到上一步创建的java环境目录,CM数据库初始化脚本默认会去该目录查找相应的驱动([root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'mv /yinzhengjie/softwares/CDH-5.15.1/mysql-connector-java-5.1.26.jar /usr/share/java/mysql-connector-java.jar')
    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a '/opt/cloudera-manager/cm-5.15.1/share/cmf/schema/scm_prepare_database.sh mysql cdh -h node101.yinzhengjie.org.cn -ucdh -pyinzhengjie --scm-host node101.yinzhengjie.org.cn scm scm scm'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    JAVA_HOME=/usr/java/jdk1.8
    Verifying that we can write to /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-server
    Creating SCM configuration file in /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-server
    Executing:  /usr/java/jdk1.8/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera-manager/cm-5.15.1/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
    [                          main] DbCommandExecutor              INFO  Successfully connected to database.
    All done, your SCM database is configured correctly!
    
    [root@node101 CDH-5.15.1]# 
    执行数据库初始化脚本([root@node101 CDH-5.15.1]# ansible namenode -m shell -a '/opt/cloudera-manager/cm-5.15.1/share/cmf/schema/scm_prepare_database.sh mysql cdh -h node101.yinzhengjie.org.cn -ucdh -pyinzhengjie --scm-host node101.yinzhengjie.org.cn scm scm scm'               #其格式为:数据库类型,数据库,数据库服务器,用户名,密码,CM服务器,后面的三个scm请不要改动!)

    5>.制作CDH本地源

    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'mkdir -p /opt/cloudera/parcel-repo'
     [WARNING]: Consider using the file module with state=directory rather than running mkdir.  If you need to use command because file is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    Server端创建Parcel目录([root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'mkdir -p /opt/cloudera/parcel-repo') 
    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/'
     [WARNING]: Consider using the file module with owner rather than running chown.  If you need to use command because file is insufficient you can add warn=False to this
    command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'ls -ld  /opt/cloudera/parcel-repo/'
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    drwxr-xr-x. 2 cloudera-scm cloudera-scm 4096 Jan 11 10:42 /opt/cloudera/parcel-repo/
    
    [root@node101 CDH-5.15.1]# 
    将上一步创建的目录所有者和所属组改为cloudera-scm用户([root@node101 CDH-5.15.1]# ansible namenode -m shell -a 'chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/')
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'mkdir -p /opt/cloudera/parcels'              
     [WARNING]: Consider using the file module with state=directory rather than running mkdir.  If you need to use command because file is insufficient you can add
    warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'ls -ld /opt/cloudera/parcels'  
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    drwxr-xr-x. 2 root root 4096 Jan 11 10:48 /opt/cloudera/parcels
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    drwxr-xr-x. 2 root root 4096 Jan 11 10:48 /opt/cloudera/parcels
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    drwxr-xr-x. 2 root root 4096 Jan 11 10:48 /opt/cloudera/parcels
    
    [root@node101 CDH-5.15.1]# 
    agent端创建parcels目录([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'mkdir -p /opt/cloudera/parcels' )
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'chown cloudera-scm:cloudera-scm /opt/cloudera/parcels'
     [WARNING]: Consider using the file module with owner rather than running chown.  If you need to use command because file is insufficient you can add warn=False to this
    command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'ls -ld /opt/cloudera/parcels'                         
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    drwxr-xr-x. 2 cloudera-scm cloudera-scm 4096 Jan 11 10:48 /opt/cloudera/parcels
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    drwxr-xr-x. 2 cloudera-scm cloudera-scm 4096 Jan 11 10:48 /opt/cloudera/parcels
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    drwxr-xr-x. 2 cloudera-scm cloudera-scm 4096 Jan 11 10:48 /opt/cloudera/parcels
    
    [root@node101 CDH-5.15.1]# 
    别忘了把parcels目录权限授权给我们之前创建的cloudera-scm用户!([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'chown cloudera-scm:cloudera-scm /opt/cloudera/parcels')
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# cp CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel /opt/cloudera/parcel-repo/
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# cp manifest.json /opt/cloudera/parcel-repo/                                        #别小瞧这个文件,尽管它不是很大,但是它却记录着CDH和Hadoop生态圈组件的版本依赖关系!
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# cp CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha                    #注意,我在拷贝到时候重命名该文件了!
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ll /opt/cloudera/parcel-repo/
    total 2070484
    -rw-r--r-- 1 root root 2120090032 Sep 13 07:40 CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel
    -rw-r--r-- 1 root root         41 Sep 13 07:41 CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha
    -rw-r--r-- 1 root root      73767 Sep 13 07:41 manifest.json
    [root@node101 CDH-5.15.1]# 
    
    
    
    温馨提示:
            如果你没有下载到“CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha”文件是,可以找到“manifest.json”文件中"parcelName": "CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel"对应的"hash": "deff00898e410a34cf0a1e66c5dbe87546608f0c"复制到该文件即可。这个方法也适用于其他的版本!

      

    五.启动集群

    1>.启动cloudera manager的Server 端

    [root@node101 CDH-5.15.1]# ansible namenode -m shell -a '/opt/cloudera-manager/cm-5.15.1/etc/init.d/cloudera-scm-server start'             
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Starting cloudera-scm-server: [  OK  ]
    
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# netstat  -untalp | grep 7180
    tcp        0      0 0.0.0.0:7180            0.0.0.0:*               LISTEN      30064/java          
    [root@node101 CDH-5.15.1]# 
    ............(信息会有很多,你会看到日志中启动了很多端口,如果7180默认端口启动成功,那么你就可以访问WebUI界面了,当然这个端口咱们是可以修改的!)
    2019-01-11 10:57:52,253 INFO WebServerImpl:com.cloudera.server.web.cmon.JobDetailGatekeeper: ActivityMonitor configured to allow job details for all jobs.
    2019-01-11 10:57:53,956 INFO ParcelUpdateService:com.cloudera.parcel.components.LocalParcelManagerImpl: Discovered parcel on CM server: CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel
    2019-01-11 10:57:53,957 INFO ParcelUpdateService:com.cloudera.parcel.components.LocalParcelManagerImpl: Created torrent file: /opt/cloudera/parcel-repo/CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.torrent
    2019-01-11 10:57:53,963 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent: Creating single-file torrent for CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel...
    2019-01-11 10:57:53,965 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent: Hashing data from CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel with 2 threads (4044 pieces)...
    2019-01-11 10:57:54,522 INFO WebServerImpl:com.cloudera.server.web.cmf.AggregatorController: AggregateSummaryScheduler started.
    2019-01-11 10:57:55,568 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   ... 10% complete
    2019-01-11 10:57:55,957 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: The server storage directory [/var/lib/cloudera-scm-server] doesn't exist.
    2019-01-11 10:57:55,965 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No read permission to the server storage directory [/var/lib/cloudera-scm-server]
    2019-01-11 10:57:55,965 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No write permission to the server storage directory [/var/lib/cloudera-scm-server]
    2019-01-11 10:57:57,025 INFO WebServerImpl:org.mortbay.log: jetty-6.1.26.cloudera.4
    2019-01-11 10:57:57,030 INFO WebServerImpl:org.mortbay.log: Started SelectChannelConnector@0.0.0.0:7180
    2019-01-11 10:57:57,030 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
    2019-01-11 10:57:57,297 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   ... 20% complete
    2019-01-11 10:57:58,330 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   ... 30% complete
    2019-01-11 10:57:59,348 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   ... 40% complete
    2019-01-11 10:58:00,082 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   ... 50% complete
    服务端启动时,我们应该查看相应的日志信息([root@node101 CDH-5.15.1]# tail -f /opt/cloudera-manager/cm-5.15.1/log/cloudera-scm-server/cloudera-scm-server.log)

    2>.启动cloudera manager的Agent 端

    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a '/opt/cloudera-manager/cm-5.15.1/etc/init.d/cloudera-scm-agent start'     
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Starting cloudera-scm-agent: [  OK  ]
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Starting cloudera-scm-agent: [  OK  ]
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Starting cloudera-scm-agent: [  OK  ]
    
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a '/opt/cloudera-manager/cm-5.15.1/etc/init.d/cloudera-scm-agent status'
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    cloudera-scm-agent (pid  25342) is running...
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    cloudera-scm-agent (pid  25506) is running...
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    cloudera-scm-agent (pid  31929) is running...
    
    [root@node101 CDH-5.15.1]# 

    3>.关闭防火墙和selinux

      温馨提示:

        在实际生产环境中,如果是内网环境咱们可以关闭防火墙和selinux,风向毕竟很小。而且很多公司都是有硬件防火墙的,如果咱们在开启防火墙会影响服务器性能。由于我是测试机环境,为了实验方便就直接禁用这2个服务了,实际生产中,根据你的需求选择是否开启防火墙,到时候你只需要定义一些列端口开放规则即可。

    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'systemctl status firewalld'                                          
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2019-01-10 17:58:21 HKT; 17h ago
     Main PID: 937 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─937 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    
    Jan 10 17:58:19 node101.yinzhengjie.org.cn systemd[1]: Starting firewalld - dynamic firewall daemon...
    Jan 10 17:58:21 node101.yinzhengjie.org.cn systemd[1]: Started firewalld - dynamic firewall daemon.
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2019-01-10 17:59:02 HKT; 17h ago
     Main PID: 952 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─952 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    
    Jan 10 17:59:01 node103.yinzhengjie.org.cn systemd[1]: Starting firewalld - dynamic firewall daemon...
    Jan 10 17:59:02 node103.yinzhengjie.org.cn systemd[1]: Started firewalld - dynamic firewall daemon.
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2019-01-10 17:58:22 HKT; 17h ago
     Main PID: 913 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─913 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    
    Jan 10 17:58:21 node102.yinzhengjie.org.cn systemd[1]: Starting firewalld - dynamic firewall daemon...
    Jan 10 17:58:22 node102.yinzhengjie.org.cn systemd[1]: Started firewalld - dynamic firewall daemon.
    
    [root@node101 CDH-5.15.1]# 
    检查集群的防火墙状态([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'systemctl status firewalld' ) 
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'systemctl stop firewalld'  
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    停用防火墙([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'systemctl stop firewalld' )
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'systemctl disable firewalld'
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    
    [root@node101 CDH-5.15.1]# 
    禁用防火墙开机自启动([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'systemctl disable firewalld')
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'setenforce 0'               
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    临时禁用selinux([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'setenforce 0' )
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'getenforce'  
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Permissive
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Permissive
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    Permissive
    
    [root@node101 CDH-5.15.1]# 
    查看selinux的状态([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'getenforce' )
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config'
     [WARNING]: Consider using the replace, lineinfile or template module rather than running sed.  If you need to use command because replace, lineinfile or template is
    insufficient you can add warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message.
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    
    
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# 
    [root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'cat /etc/selinux/config | grep SELINUX= | grep -v ^#'
    node103.yinzhengjie.org.cn | CHANGED | rc=0 >>
    SELINUX=disabled
    
    node101.yinzhengjie.org.cn | CHANGED | rc=0 >>
    SELINUX=disabled
    
    node102.yinzhengjie.org.cn | CHANGED | rc=0 >>
    SELINUX=disabled
    
    [root@node101 CDH-5.15.1]# 
    永久禁用selinux,重启操作系统后生效([root@node101 CDH-5.15.1]# ansible datanode -m shell -a 'sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config')

    4>.如下图所示,访问webUI界面(http://node101.yinzhengjie.org.cn:7180/)

       我们安装CM的过程通过WebUI的安装向导来进行安装,推荐使用谷歌浏览器,不要使用容易崩溃的浏览器,这样会影响你安装进度的!如果你也出现了以上界面,恭喜你CM部署成功,关于CDH的部署详情请参考:https://www.cnblogs.com/yinzhengjie/p/9638360.html

  • 相关阅读:
    java内存泄露
    hbase java api
    配置CRT远程登录
    kafka分区消费模型
    JAVA内存区域
    JVM分代和垃圾回收
    spring中bean的作用域
    分布式RPC
    session共享
    ZooKeeper实现分布式session
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/10250816.html
Copyright © 2011-2022 走看看