主頁 >  其他 > 【CentOS7離線ansible-playbook自動化安裝CDH5.16(內附離線安裝包地址,及自動化腳本)】

【CentOS7離線ansible-playbook自動化安裝CDH5.16(內附離線安裝包地址,及自動化腳本)】

2022-02-16 17:37:17 其他

CentOS7 離線環境 使用ansible自動部署CDH5.16

前言

本文介紹如何使用作者開發的自動化腳本,離線部署cdh集群,只需要簡單的配置下yum源和cdh集群節點IP等幾個引數,就可實作一鍵部署cdh集群,省去配置mysql、ntp服務、主機配置、cdh檔案分發等繁雜操作,安裝程序快速便捷,我自己測驗,三個節點的集群,cdh安裝不超過15分鐘,

注意: 主機配置邏輯存盤卷并不在自動化范圍內,如您已配置邏輯卷或不需要邏輯卷,請繼續往下,(建議先做邏輯卷,以后好擴容存盤,以后有時間,我會把配置邏輯卷也加到腳本里,筆者使用的磁盤由ceph的塊存盤服務提供,可自由擴容,)

簡介

整個cdh集群的部署由anible-palybook的劇本完成,其中mysql采用docker的部署方式,ntp服務使用chrony搭建,

下載安裝包

下載地址:https://pan.baidu.com/s/1yosjmPLZHngL1QFbxV095g
提取碼:w4uf
檔案大小:3.74GB
安裝包包含軟體:cdh5.16、ansible2.9.21、docker20.10.7、chrony、mysql5.7、vim等基礎工具包以及作者開發的相關自動化腳本,

安裝并配置ansible

將安裝包發送至目標主機(scm-server節點)/root目錄下,并解壓

[root@cdh-auto-deploy-test-1 ~]# tar -xvf cdh.5.16.tar
[root@cdh-auto-deploy-test-1 ~]# ll cdh5.16
total 2984412
-rw-r--r--. 1 root root 2127506677 Jun  9 10:14 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel
-rw-r--r--. 1 root root         41 Jun  9 10:13 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha
-rw-r--r--. 1 root root  841524318 Jun  9 10:14 cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz
drwxr-xr-x. 4 root root        153 Jun 25 15:17 deployfiles
-rw-r--r--. 1 root root       5670 Jun  9 10:14 KAFKA-1.2.0.jar
-rw-r--r--. 1 root root   85897902 Jun  9 10:14 KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel
-rw-r--r--. 1 root root         41 Jun  9 10:14 KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel.sha
-rw-r--r--. 1 root root      66538 Jun  9 10:14 manifest.json
-rw-r--r--. 1 root root       5356 Jun  9 10:14 manifestkafka.json
-rw-r--r--. 1 root root    1007502 Jun  9 10:14 mysql-connector-java-5.1.47.jar

修改yum源指向解壓的安裝包中的目錄

[root@cdh-auto-deploy-test-1 ~]# mkdir /etc/yum.repos.d/back
[root@cdh-auto-deploy-test-1 ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/back/
[root@cdh-auto-deploy-test-1 ~]# cp /root/cdh5.16/deployfiles/yumPackages/software.repo /etc/yum.repos.d/
[root@cdh-auto-deploy-test-1 ~]# vi /etc/yum.repos.d/software.repo

[software]
name=software
## 修改`baseurl`的值,使其指向軟體包,
baseurl=file:///root/cdh5.16/deployfiles/yumPackages/rpmPackages/
enabled=1
gpgcheck=0
[vim]
name=vim
## 修改`baseurl`的值,使其指向解壓出的檔案,
baseurl=file:///root/cdh5.16/deployfiles/yumPackages/vim/
enabled=1
gpgcheck=0

使用yum安裝ansible

[root@cdh-auto-deploy-test-1 ~]# yum install -y ansible vim perl 
[root@cdh-auto-deploy-test-1 ~]# ansible --version
ansible 2.9.21
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Apr  9 2019, 14:30:50) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
[root@cdh-auto-deploy-test-1 ~]#

修改ansible.cfg,關閉ssh密鑰檢查,

[root@cdh-auto-deploy-test-1 ~]# vim /etc/ansible/ansible.cfg

 host_key_checking = False

修改ansible的hosts檔案,配置ansible主機,替換主機IP和密碼,

[root@cdh-auto-deploy-test-1 ~]# vim /etc/ansible/hosts

[scm_server]
10.0.5.77 ansible_host=10.0.5.77 hostname=cdh1 ansible_user=root ansible_ssh_pass=12345 ansible_connection=local

[scm_agent]
10.0.5.74 ansible_host=10.0.5.74 hostname=cdh2 ansible_user=root ansible_ssh_pass=12345

[cdh:children]
scm_server
scm_agent

[db:children]
scm_server

測驗主機通信,ping所有節點:

[root@cdh-auto-deploy-test-1 ~]# ansible all -m ping
cdh1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
cdh2 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
[root@cdhdeploytest-2 yumPackages]#

安裝cdh5.16

修改/root/cdh5.16/deployfiles/vars.yaml,配置引數:

##變數存盤檔案
#

#vm_type代表ansible節點的虛擬機型別,
#當前版本有效值為“centos7”,
vm_type: "centos7"

#當有可用的ntp服務器時填寫服務器的ip,沒有不填,不填(為空)時,將同步scm-server所在節點的時間同步至其它節點,
ntp_server:

#安裝包(解壓后)所在目錄,
cdh_packages_dir: "/root"

#資料盤目錄,docker的持久卷、cdh的scm等將存放在此目錄下,
cdh_data_dir: "/opt"

使用ansible-playbook自動安裝cdh5.16

[root@cdh-auto-deploy-test-1 ~]# ansible-playbook /root/cdh5.16/deployfiles/deploy-cdh.yaml

注意:
  /root/cdh5.16/deployfiles/deploy-cdh.yaml是自動化部署cdh的ansible腳本,
  可以自行修改此腳本,定制部署自己的cdh,
  mysql用戶密碼、docker卷目錄都在此檔案中修改,

當腳本結束后,執行 tail -200f /opt/cloudera-manager/cm-5.16.1/log/cloudera-scm-server/cloudera-scm-server.log查看scn-server的日志,大約幾分鐘后出現如下內容表示sever啟動完成:

Started SelectChannelConnector@0.0.0.0:7180
Started Jetty server.
ScmActive completed successfully.
Discovered parcel on CM server: CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel
Created torrent file: /opt/cloudera/parcel-repo/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.torrent
 Creating single-file torrent for CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel...
 Hashing data from CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel with 4 threads (4058 pieces)...
   ... 10% complete
   ... 20% complete
   ... 30% complete
   ... 40% complete
   ... 50% complete
   ... 60% complete
   ... 70% complete
   ... 80% complete
   ... 90% complete
 Hashed 1 file(s) (2127506677 bytes) in 4058 pieces (4058 expected) in 6605.6ms.
 Single-file torrent information:
   Torrent name: CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel
   Announced at: Seems to be trackerless
   Created on..: Fri Jun 25 16:49:59 CST 2021
   Created by..: cm-server
   Pieces......: 4058 piece(s) (524288 byte(s)/piece)
   Total size..: 2,127,506,677 byte(s)
calParcelManagerImpl: Discovered parcel on CM server: KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel
calParcelManagerImpl: Created torrent file: /opt/cloudera/parcel-repo/KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel.torrent
 Creating single-file torrent for KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel...
 Hashing data from KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel with 4 threads (164 pieces)...
   ... 10% complete
   ... 20% complete
   ... 30% complete
   ... 40% complete
   ... 50% complete
   ... 60% complete
   ... 70% complete
   ... 80% complete
   ... 90% complete
 Hashed 1 file(s) (85897902 bytes) in 164 pieces (164 expected) in 277.9ms.
 Single-file torrent information:
   Torrent name: KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel
   Announced at: Seems to be trackerless
   Created on..: Fri Jun 25 16:50:06 CST 2021
   Created by..: cm-server
   Pieces......: 164 piece(s) (524288 byte(s)/piece)
   Total size..: 85,897,902 byte(s)

現在可以登錄cdh1:7180部署集群了,用戶:admin 密碼:admin

備注

/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent status 查看agent狀態
/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server status 查看server狀態

附:安裝包中的自動化腳本

時間倉促,腳本不夠優雅,歡迎評論區留言優化!

deploy-cdh.yaml

---
- hosts: all

 vars_files: 
   - ./vars.yaml

 tasks:

   - name: send centos7init to all node
     synchronize:
       src: "{{cdh_packages_dir}}/cdh5.16/deployfiles/centos7init.sh"
       dest: "{{cdh_data_dir}}/"

   - name: init all node with centos7init
     shell: bash "{{cdh_data_dir}}/centos7init.sh"
     register: initinfo
     ignore_errors: yes

   - name: initinfo
     debug:
       msg:
         - "return code is {{initinfo.rc}}"
         - "{{initinfo.stdout_lines}}"
 
   - name: set hostname
     shell: hostnamectl set-hostname "{{hostname|quote}}"

## 此任務禁用,請使用下面同名的任務,因為blockfile模塊可以避免重復插入,
#    - name: set hosts
#      shell: echo "{{item.key}} {{item.value.hostname}}" >> /etc/hosts
#      with_dict:
#        - "{{hostvars}}"

   - name: set hosts
     blockinfile:
       path: /etc/hosts
       block: |
         {% for item in hostvars %}
         {{hostvars[item]['ansible_host']}} {{hostvars[item]['hostname']}}
         {% endfor %}
       state: present

   - name: disable selinux
     shell: setenforce 0
     ignore_errors: yes

   - name: set selinux config
     shell: sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config
     ignore_errors: yes

   - name: shutdown firewalld
     shell: systemctl stop firewalld
     ignore_errors: yes

   - name: disable firewall
     shell: systemctl disable firewalld
     ignore_errors: yes
     
   - name: send yum packages to all node
     synchronize:
       src: "{{cdh_packages_dir}}/cdh5.16/deployfiles/yumPackages"
       dest: /root/

   - name: check yum repo
     shell: ls /etc/yum.repos.d | grep software.repo
     register: repos
     ignore_errors: yes
 
   - name: make back repo
     shell: mkdir -p /etc/yum.repos.d/back
     ignore_errors: yes

   - name: back yum repo
     shell: mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/back/
     when: repos.rc != 0
     ignore_errors: yes 

   - name: set yum repo
     synchronize:
       src: /root/yumPackages/software.repo
       dest: /etc/yum.repos.d/software.repo
     when: repos.rc != 0

   - name: install openjdk1.8 chrony psmisc use yum
     yum: 
       name: 
         - perl
         - psmisc
         - chrony
         - java-1.8.0-openjdk.x86_64
       state: present

   - name: set openjdk ssl
     shell: sed -i 's/jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4/jdk.tls.disabledAlgorithms=RC4/g' /usr/lib/jvm/jre-1.8.0-openjdk/lib/security/java.security 

   - name: set chrony.conf
     template:
       src: chrony.conf.j2
       dest: "/etc/chrony.conf"
     when: vm_type == "centos7"

   - name: sync time
     shell: systemctl {{item}}
     with_items:
       - "enable chronyd"
       - "restart chronyd"

- hosts: db

 vars_files:
   - ./vars.yaml
 
 tasks:

   - name: install docker-ce
     yum:
       name: 
         - docker-ce
       state: present

   - name: enable docker
     shell: systemctl enable docker

   - name: check docker status
     shell: systemctl status docker
     register: dockerstat
     ignore_errors: yes

   - name: check mysql status
     shell: docker ps -a | grep mysql
     register: mysqlstat
     ignore_errors: yes

   - name: print mysqlstat.rc
     debug:
       msg: 
         - "{{mysqlstat.rc}}"
         - "{{mysqlstat.stdout_lines}}"

   - name: start docker-ce
     shell: service docker restart
     when: dockerstat.rc != 0 

   - name: send mysql.tar 
     synchronize:
       src: "{{cdh_packages_dir}}/cdh5.16/deployfiles/mysql.tar"
       dest: "{{cdh_data_dir}}/mysql.tar"
     when: mysqlstat.rc != 0
   
   - name: load mysql image
     shell: docker load < "{{cdh_data_dir}}"/mysql.tar
     when: mysqlstat.rc != 0

   - name: make dir for mysql volume
     command:
       cmd: mkdir -p {{item}}
     with_items:
     - "{{cdh_data_dir}}/mysql/mysql-config"
     - "{{cdh_data_dir}}/mysql/mysql-data"
     when: mysqlstat.rc != 0

   - name: set my.cnf
     template:
       src: my.cnf.j2
       dest: "{{cdh_data_dir}}/mysql/mysql-config/my.cnf"

   - name: docker restart mysql
     shell: docker restart mysql
     when: mysqlstat.rc == 0

   - name: docker run mysql
     shell: docker run -it -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD="1qaz2wsx" -v "{{cdh_data_dir}}"/mysql/mysql-config:/etc/mysql -v "{{cdh_data_dir}}"/mysql/mysql-data:/var/lib/mysql mysql:5.7.34
     register: result
     when: mysqlstat.rc != 0

   - name: wart for mysql ready
     wait_for:
       timeout: 300
       port: 3306
       delay: 60
       state: drained

   - name: copy init_cdhmsyql.sh
     synchronize:
       src: "{{cdh_packages_dir}}/cdh5.16/deployfiles/init-cdh-server-mysql.sh"
       dest: "{{cdh_data_dir}}/mysql/mysql-config/"
     when: mysqlstat.rc != 0

   - name: create databases and user
     shell: docker exec mysql /bin/bash /etc/mysql/init-cdh-server-mysql.sh
#      when: result.rc == 0  mysqlstat.rc == 0
     ignore_errors: yes


- hosts: cdh

 vars_files:
   - ./vars.yaml
 
 tasks:
   - name: mkdir java
     shell: mkdir -p /usr/share/java

   - name: copy mysql-connector-java
     synchronize:
      src: "{{cdh_packages_dir}}/cdh5.16/mysql-connector-java-5.1.47.jar"
      dest: /usr/share/java/mysql-connector-java.jar

- hosts: scm_server

 vars_files:
   - ./vars.yaml
 
 tasks:       
   - name: create dir
     shell: mkdir -p "{{cdh_data_dir}}/{{item}}"
     with_items:
       - cloudera-manager
       - cloudera/parcel-repo
       - cloudera/parcels

   - name: extract cloudera manager
     shell: tar -zxvf "{{cdh_packages_dir}}"/cdh5.16/cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C "{{cdh_data_dir}}"/cloudera-manager/

   - name: cp parcel-repo
     shell: cp "{{cdh_packages_dir}}/cdh5.16/{{item}}" "{{cdh_data_dir}}/cloudera/parcel-repo/"
     with_items:
       - "CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel"
       - "CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha"
       - "KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel"
       - "KAFKA-4.0.0-1.4.0.0.p0.1-el7.parcel.sha"
       - "manifest.json"
       - "manifestkafka.json"
       - "KAFKA-1.2.0.jar"

   - name: fix agent file
     shell: sed -i "s/server_host=localhost/server_host={{hostname}}/g" "{{cdh_data_dir}}"/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini

   - name: set scm-server dbproperties
     shell: sed -i "s/^.*com.cloudera.cmf.db.{{ item.name }}=.*$/com.cloudera.cmf.db.{{ item.name }}={{ item.value }}/" "{{cdh_data_dir}}"/cloudera-manager/cm-5.16.1/etc/cloudera-scm-server/db.properties
     with_items:
       - { name: 'type', value: 'mysql' }
       - { name: 'host', value: 'cdh1' }
       - { name: 'name', value: 'cmf' }
       - { name: 'user', value: 'cmf' }
       - { name: 'password', value: '1qaz2wsx' }
       - { name: 'setupType', value: 'EXTERNAL' }
     ignore_errors: yes
       
- hosts: scm_agent

 vars_files:
   - ./vars.yaml
 
 tasks:
   - name: cp files
     synchronize:
       src: "{{cdh_data_dir}}/{{ item }}"
       dest: "{{cdh_data_dir}}/"
     with_items:
       - "cloudera"
       - "cloudera-manager"


- hosts: cdh

 vars_files:
   - ./vars.yaml

 tasks:
   - name: del cloudera-scm
     user:
       name: cloudera-scm
       state: absent

   - name: add user
     shell: useradd --system --home="{{cdh_data_dir}}"/cloudera-manager/cm-5.16.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

   - name: change owner of file
     shell: chown -R cloudera-scm:cloudera-scm "{{cdh_data_dir}}/{{item}}"
     with_items:
       - "cloudera"
       - "cloudera-manager"

- hosts: scm_server

 vars_files:
   - ./vars.yaml

 tasks:
   - name: copy scm-server
     synchronize:
       src: "{{cdh_data_dir}}/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server"
       dest: "/etc/init.d/"

   - name: set scm-server enable
     shell: "chkconfig {{item}}"
     with_items:
       - "--add cloudera-scm-server"
       - "cloudera-scm-server on"

   - name: set scm-server env prameters
     shell: sed -i 's?CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}?CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cloudera-manager/cm-5.16.1/etc/default}?g' /etc/init.d/cloudera-scm-server

   - name: start server
     shell: "{{cdh_data_dir}}/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server restart"

- hosts: cdh

 vars_files:
   - ./vars.yaml

 tasks:
   - name: copy scm-agent
     synchronize:
       src: "{{cdh_data_dir}}/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent"
       dest: "/etc/init.d/"

   - name: set scm-agent enable
     shell: "chkconfig {{item}}"
     with_items:
       - "--add cloudera-scm-agent"
       - "cloudera-scm-agent on"

   - name: set scm-agent env prameters
     shell: sed -i 's?CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}?CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cloudera-manager/cm-5.16.1/etc/default}?g' /etc/init.d/cloudera-scm-agent

   - name: wait for scm-server
     wait_for:
       timeout: 300
       port: 7182
       delay: 60
       state: drained

   - name:  start agent
     shell: "{{cdh_data_dir}}/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent restart"

centos7init.sh

#!/bin/bash
cat << EOF
+--------------------------------------------------------------+
|             === Welcome to CentOS  System init ===           |
+--------------------------------------------------------------+
EOF

#set transparent_hugepage
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local


#set limits
cat > /etc/security/limits.conf << EOF
root soft nproc 65535
root hard nproc 65535
* soft nofile 1024000
* hard nofile 1024000
EOF

cat << EOF
+-------------------set limits success-----------------+
EOF


#set sysctl
cat > /etc/sysctl.conf << EOF
fs.file-max = 1024000
vm.swappiness = 0
kernel.sysrq = 0 
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_announce=2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
EOF

/sbin/sysctl -p

cat << EOF
+-------------------set sysctl success-----------------+
EOF

init-cdh-server-myusql.sh

#!/bin/bash

creat_cmf="create database cmf DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_hive="create database hive DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_oozie="create database oozie DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_hue="create database hue DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_amon="create database amon DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_activity="create database activity DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_reports="create database reports DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_audit="create database audit DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"
creat_metadata="create database metadata DEFAULT CHARACTER SET utf8 COLLATE 'utf8_general_ci';"

access_auth_cmf="grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_hive="grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_oozie="grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_hue="grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_amon="grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_activity="grant all on activity.* TO 'activity'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_reports="grant all on reports.* TO 'reports'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_audit="grant all on audit.* TO 'audit'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_metadata="grant all on metadata.* TO 'metadata'@'%' IDENTIFIED BY '1qaz2wsx';"
access_auth_remote="grant all PRIVILEGES on *.* to 'root'@'%' identified by '1qaz2wsx' with grant option;"
flush="flush privileges;"

sqls=("${creat_cmf}" "${creat_hive}" "${creat_oozie}" "${creat_hue}" "${creat_amon}" "${access_auth_cmf}" "${access_auth_hive}" "${access_auth_oozie}" "${access_auth_hue}" "${access_auth_amon}" "${access_auth_remote}" "${flush}")

for i in "${sqls[@]}"
do
  mysql -uroot -p1qaz2wsx -e "${i}";
done

mysql組態檔的ansible模板:my.cnf.j2

[mysqld]

skip-name-resolve
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=1
log-bin=mysql-bin
binlog_format = ROW
binlog_row_image = full
max_binlog_size = 1G
max_allowed_packet = 2G
log_timestamps=SYSTEM
wait_timeout=2880000
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=6442450944
max_allowed_packet =67108864

default-time_zone = '+8:00'
character-set-server=utf8
character-set-server=utf8
max_connections = 3000
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#[client]
#default-character-set=utf8

[mysql]
#default-character-set=utf8

chrony組態檔的ansible模板:chrony.conf.j2

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
{% if ntp_server is none or not ntp_server %}
server {{groups['scm_server'][0]}} iburst
{% else %}
server {{ntp_server}} iburst
{% endif %}
# Record the rate at which the system clock gains/losses time.

driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16
{% if ntp_server is none or not ntp_server %}
{% if ansible_host == groups['scm_server'][0] %}
{% set list1 = ansible_host.split('.') %}
allow {{list1[0]}}.{{list1[1]}}.{{list1[2]}}.0/24
local stratum 10
{% endif %}
{% endif %}

# Serve time even if not synchronized to a time source.
#local stratum 10
# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

部署服務

登錄首頁后可以按如下操作部署一個示例集群,

步驟:

  • 勾選接受許可條款,點擊繼續
    勾選接受許可條款,點擊繼續

  • 選擇免費,點擊繼續
    在這里插入圖片描述

  • 點擊繼續
    在這里插入圖片描述

  • 輸入節點IP,以逗號分割,點擊搜索
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mSZU3R97-1644827636714)(pictures/Snap2.jpg)]

  • 勾選主機,點擊繼續
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-U0RjQD1P-1644827636715)(pictures/Snap3.jpg)]
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IDQ0wLYT-1644827636716)(pictures/Snap4.jpg)]

  • 其它parcel勾選kafka,點擊繼續
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Fczd79vB-1644827636717)(pictures/Snap5.jpg)]
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ndJxg5Rz-1644827636717)(pictures/Snap6.jpg)]

  • 待parcel安裝完畢,檢查主機完成后,點擊完成
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-0MrzzABW-1644827636718)(pictures/Snap7.jpg)]
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-tGtJKfht-1644827636718)(pictures/Snap8.jpg)]
    在這里插入圖片描述

  • 集群安裝勾選自定義服務、選擇服務(如圖),點擊繼續
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rVs0mDcE-1644827636720)(pictures/Snap10.jpg)]
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-D3Gb9X8E-1644827636720)(pictures/Snap-csum.jpg)]

  • 在集群設定中,選擇服務將要分發的節點,圖中以6個節點做示范,
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-77mFRAgS-1644827636721)(pictures/hadoopServers1.jpg)]
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yxhDQEwD-1644827636722)(pictures/hadoopServers2.jpg)]

  • 輸入相關資料庫和用戶名稱(其中navigation的服務都使用cmf資料庫,
    用戶是cmf,其它服務的用戶和資料庫如圖),測驗連接,點擊繼續
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rX8VGKZY-1644827636723)(pictures/Snap14.jpg)]

  • 將所有資料目錄修改到掛載的資料卷下,此處是/opt目錄下,
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-71gGWbm4-1644827636723)(pictures/Snap15.jpg)]
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bvmsrTMP-1644827636724)(pictures/Snap16.jpg)]
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LxplMaex-1644827636724)(pictures/Snap17.jpg)]

  • 點擊繼續,然后查看部署結果,
    如果部署中止或失敗,查看錯誤報告解決相關問題,

本文屬作者原創,轉載請注明出處,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/424075.html

標籤:其他

上一篇:Spark Day06:Spark Core之Spark 內核調度和SparkSQL快速入門

下一篇:通過按PHP表單中的提交按鈕在MySQL表中輸入多行

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more