• CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)


    一、环境准备

    1、服务器配置和角色规划

    IP 地址主机名硬件配置操作系统安装步骤
    10.168.168.1cm-server8C16GCentos7新建
    10.168.168.2agent018C16GCentos7新建
    10.168.168.3agent028C16GCentos7新建
    10.168.168.4agent038C16GCentos7新建
    10.168.168.5agent048C16GCentos7扩容

    2、修改主机名

    1. # 在跳板机执行如下ssh,或在各服务器上执行hostnamectl
    2. ssh 10.168.168.1 "hostnamectl set-hostname cm-server"
    3. ssh 10.168.168.2 "hostnamectl set-hostname agent01"
    4. ssh 10.168.168.3 "hostnamectl set-hostname agent02"
    5. ssh 10.168.168.4 "hostnamectl set-hostname agent03"

    3、修改 cm-server 节点/etc/hosts

    1. [root@cm-server ~]# vim /etc/hosts
    2. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    3. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    4. # CDN cluster
    5. 10.168.168.1   cm-server
    6. 10.168.168.2   agent01
    7. 10.168.168.3   agent02
    8. 10.168.168.4   agent03

    4、在 cm-server 节点生成密钥

    1. # 生成密钥,直接回车完成
    2. [root@cm-server ~]# ssh-keygen -t rsa
    3. Generating public/private rsa key pair.
    4. Enter file in which to save the key (/root/.ssh/id_rsa):
    5. Enter passphrase (empty for no passphrase):
    6. Enter same passphrase again:
    7. Your identification has been saved in /root/.ssh/id_rsa.
    8. Your public key has been saved in /root/.ssh/id_rsa.pub.
    9. The key fingerprint is:
    10. SHA256:cKlZT6epE6gSsONUfkMut0bJB7d/Xaz0G5i96IpPdOk root@cm-server
    11. The key's randomart image is:
    12. +---[RSA 2048]----+
    13. |                 |
    14. |         .       |
    15. |.  . o..+ . .    |
    16. | oo + +B.o +  o  |
    17. |o..o O+oS +. + o |
    18. |o. .=.+ .o. = B  |
    19. | .. .o  o. o E + |
    20. |   ..    .+   . +|
    21. |         ..ooo o |
    22. +----[SHA256]-----+

    5、分发 cm-server 节点密钥实现免密

    1. # 分发密钥
    2. [root@cm-server ~]# ssh-copy-id 10.168.168.1
    3. 输入密码
    4. [root@cm-server ~]# ssh-copy-id 10.168.168.2
    5. 输入密码
    6. [root@cm-server ~]# ssh-copy-id 10.168.168.3
    7. 输入密码
    8. [root@cm-server ~]# ssh-copy-id 10.168.168.4
    9. 输入密码
    10. # 或者通过
    11. 将cm-server节点的 ~/.ssh/id_rsa.pub 公钥文件内容 --> 追加到agent节点~/.ssh/authorized_keys文件中,实现免密。

    6、检查配置验证免密

    1. # 检查内存
    2. for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "free -g";done
    3. #####10.168.168.1 节点结果如下:#####
    4.               total        used        free      shared  buff/cache   available
    5. Mem:             15           2           6           0           6          12
    6. Swap:             9           0           9
    7. #####10.168.168.2 节点结果如下:#####
    8.               total        used        free      shared  buff/cache   available
    9. Mem:             15           1          12           0           2          13
    10. Swap:             9           0           9
    11. #####10.168.168.3 节点结果如下:#####
    12.               total        used        free      shared  buff/cache   available
    13. Mem:             15           1           9           0           4          13
    14. Swap:             9           0           9
    15. #####10.168.168.4 节点结果如下:#####
    16.               total        used        free      shared  buff/cache   available
    17. Mem:             15           1           8           0           5           3
    18. Swap:             9           0           9
    19. # 检查CPU核数
    20. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "lscpu | head -4 | tail -1";done
    21. #####10.168.168.1 节点结果如下:#####
    22. CPU(s):                8
    23. #####10.168.168.2 节点结果如下:#####
    24. CPU(s):                8
    25. #####10.168.168.3 节点结果如下:#####
    26. CPU(s):                8
    27. #####10.168.168.4 节点结果如下:#####
    28. CPU(s):                8
    29. # 查看系统版本号
    30. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cat /etc/redhat-release";done
    31. #####10.168.168.1 节点结果如下:#####
    32. CentOS Linux release 7.3.1611 (Core)
    33. #####10.168.168.2 节点结果如下:#####
    34. CentOS Linux release 7.3.1611 (Core)
    35. #####10.168.168.3 节点结果如下:#####
    36. CentOS Linux release 7.3.1611 (Core)
    37. #####10.168.168.4 节点结果如下:#####
    38. CentOS Linux release 7.3.1611 (Core)

    7、分发 cm-server 节点/etc/hosts

    1. # 备份/etc/hosts
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/hosts /etc/hosts_cdhbak$(date +%Y%m%d)";done
    3. # 分发/etc/hosts
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/hosts $ip:/etc/hosts;done
    5. #####10.168.168.1 节点结果如下:#####
    6. hosts                                                     100%  263   661.3KB/s   00:00
    7. #####10.168.168.2 节点结果如下:#####
    8. hosts                                                     100%  263   630.2KB/s   00:00
    9. #####10.168.168.3 节点结果如下:#####
    10. hosts                                                     100%  263   547.2KB/s   00:00
    11. #####10.168.168.4 节点结果如下:#####
    12. hosts                                                     100%  263   543.0KB/s   00:00

    8、在 cm-server 节点准备安装包

    记住你安装包在 cm-server 节点存放的路径,等会分发安装包的时候要用。

    1. [root@cm-server CDHsoftware]# pwd
    2. /opt/CDHsoftware
    3. [root@cm-server CDHsoftware]# ll
    4. total 3412036
    5. -rw-r--r-- 1 root root      14041 Aug 30 19:32 allkeys.asc
    6. -rw-r--r-- 1 root root 2082186246 Aug 30 23:53 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
    7. -rw-r--r-- 1 root root         40 Aug 30 19:32 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
    8. -rw-r--r-- 1 root root   10483568 Aug 30 19:46 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
    9. -rw-r--r-- 1 root root 1203832464 Aug 31 00:44 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
    10. -rw-r--r-- 1 root root      11488 Aug 30 19:41 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
    11. -rw-r--r-- 1 root root  194990602 Aug 30 20:45 jdk-8u211-linux-x64.tar.gz
    12. drwxr-xr-x 2 root root        312 Aug 30 21:50 mysql
    13. -rw-r--r-- 1 root root    2385601 Aug 30 19:47 mysql-connector-java-8.0.20.jar

    9、关闭防火墙

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl disable firewalld";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl stop firewalld";done

    10、关闭 SELINUX

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "setenforce 0";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config";done

    11、永久关闭 swap

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "swapoff -a";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i '/.*swap*/s/^/#/' /etc/fstab"|grep 'swap';done
    3. #####10.168.168.1 节点结果如下:#####
    4. #/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0
    5. #####10.168.168.2 节点结果如下:#####
    6. #/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0
    7. #####10.168.168.3 节点结果如下:#####
    8. #/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0
    9. #####10.168.168.4 节点结果如下:#####
    10. #/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0

    12、关闭透明大页面

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/defrag";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/enabled";done
    3. # 在cm-server节点将同一命令添加到 /etc/rc.local 等初始化脚本中
    4. grep -q 'never' /etc/rc.d/rc.local
    5. if [ "$?" == "1" ] ; then
    6. cat >> /etc/rc.d/rc.local << EOF
    7. if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
    8.         echo never > /sys/kernel/mm/transparent_hugepage/enabled
    9. fi
    10. if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
    11.         echo never > /sys/kernel/mm/transparent_hugepage/defrag
    12. fi
    13. EOF
    14. fi
    15. # 分发cm-server节点的 /etc/rc.d/rc.local到各个节点
    16. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/rc.d/rc.local $ip:/etc/rc.d/rc.local;done

    13、安装 python2.7.5

    Centos7 默认已经安装了 Python 2.7.5 版本

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "python -V";done
    2. #####10.168.168.1 节点结果如下:#####
    3. Python 2.7.5
    4. #####10.168.168.2 节点结果如下:#####
    5. Python 2.7.5
    6. #####10.168.168.3 节点结果如下:#####
    7. Python 2.7.5
    8. #####10.168.168.4 节点结果如下:#####
    9. Python 2.7.5
    10. #如果系统没有安装,或者没有安装则使用以下命令安装
    11. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y python275";done

    14、安装 jdk1.8

    1. # 新建/usr/java/目录
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/java/";done
    3. # 分发jdk-8u211-linux-x64.tar.gz安装包到/usr/java/目录下
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/jdk-8u211-linux-x64.tar.gz $ip:/usr/java/;done
    5. #####10.168.168.1 节点结果如下:#####
    6. jdk-8u211-linux-x64.tar.gz                 100%  186MB  92.9MB/s   00:02
    7. #####10.168.168.2 节点结果如下:#####
    8. jdk-8u211-linux-x64.tar.gz                 100%  186MB  93.0MB/s   00:02
    9. #####10.168.168.3 节点结果如下:#####
    10. jdk-8u211-linux-x64.tar.gz                 100%  186MB  93.0MB/s   00:02
    11. #####10.168.168.4 节点结果如下:#####
    12. jdk-8u211-linux-x64.tar.gz                 100%  186MB  99.9MB/s   00:01
    13. # 在/usr/java/目录下解压jdk-8u211-linux-x64.tar.gz安装
    14. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;tar -xf jdk-8u211-linux-x64.tar.gz";done
    15. # 删除jdk安装包
    16. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;rm -f jdk-8u211-linux-x64.tar.gz";done
    17. # 生成软链。此处我就踩了一个坑,导致agent安装完成后起不来。cdh启用时, 默认会从/usr/java/default路径读取java环境, 所以此处需要做个软链
    18. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;ln -nsf jdk1.8.0_211 /usr/java/default";done
    19. # 备份/etc/profile
    20. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/profile /etc/profile_cdhbak$(date +%Y%m%d)";done
    21. # 增加环境变量参数
    22. [root@cm-server ~]# vim /etc/profile
    23. # JAVA_HOME
    24. export JAVA_HOME=/usr/java/default
    25. export CLASSPATH=./:$JAVA_HOME/lib
    26. export PATH=$JAVA_HOME/bin:$PATH
    27. # 分发/etc/profile文件到各个节点上
    28. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/profile $ip:/etc/profile;done
    29. # 引用变量参数,使profile文件生效,并验证java版本
    30. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "source /etc/profile;java -version";done
    31. #####10.168.168.1 节点结果如下:#####
    32. java version "1.8.0_211"
    33. Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    34. Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
    35. #####10.168.168.2 节点结果如下:#####
    36. java version "1.8.0_211"
    37. Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    38. Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
    39. #####10.168.168.3 节点结果如下:#####
    40. java version "1.8.0_211"
    41. Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    42. Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
    43. #####10.168.168.4 节点结果如下:#####
    44. java version "1.8.0_211"
    45. Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    46. Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

    15、在 cm-server 节点安装 MySQL5.7

    如果自己有 mysql 库,可以跳过这一步骤。

    1. # 进入mysql安装包目录
    2. [root@cm-server ~]# cd /opt/CDHsoftware/mysql
    3. # 【注意】 安装mysql过程中可能会出现报错失败,大多都是因lib冲突,或者小版本依赖等问题。为了保证安装顺利进行,此处我选择了先解决mysql依赖的问题。
    4. # 以下是常用的解决办法。
    5. # 库冲突:清理mysql-libs库
    6. [root@cm-server mysql]# yum remove mysql-libs
    7. 输入y继续
    8. # 缺少依赖:安装libaio autoconf
    9. [root@cm-server mysql]# yum install -y libaio autoconf
    10. # 提示mariadb相关的报错:删除mariadb的lib库
    11. [root@cm-server mysql]# rpm -qa | grep mariadb
    12. mariadb-libs-5.5.56-2.el7.x86_64
    13. [root@cm-server mysql]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
    14. # 安装mysql依赖
    15. [root@cm-server mysql]# rpm -ivh 01_mysql-community-common-5.7.29-1.el7.x86_64.rpm
    16. [root@cm-server mysql]# rpm -ivh 02_mysql-community-libs-5.7.29-1.el7.x86_64.rpm
    17. [root@cm-server mysql]# rpm -ivh 03_mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
    18. # 安装mysql-client
    19. [root@cm-server mysql]# rpm -ivh 04_mysql-community-client-5.7.29-1.el7.x86_64.rpm
    20. # 安装mysql-server
    21. [root@cm-server mysql]# rpm -ivh 05_mysql-community-server-5.7.29-1.el7.x86_64.rpm
    22. # 启动mysql并设置开机自启
    23. [root@cm-server mysql]# systemctl start mysqld && systemctl enable mysqld
    24. # 查看新装mysql密码
    25. [root@cm-server mysql]# cat /var/log/mysqld.log | grep password
    26. 2023-09-08T09:17:17.0833631 [Note] A temporary password is generated for root@localhost: SqY+aPJoZ5Qh
    27. # 通过日志获取到初始密码  SqY+aPJoZ5Qh
    28. # 用刚刚查到的密码进入mysql(初始密码中可能会有各种符号,命令行登录如果报错,给密码加单引号)
    29. [root@cm-server mysql]# mysql -uroot -p'SqY+aPJoZ5Qh'
    30. mysql: [Warning] Using a password on the command line interface can be insecure.
    31. Welcome to the MySQL monitor.  Commands end with ; or \g.
    32. Your MySQL connection id is 2
    33. Server version: 5.7.29
    34. Copyright (c) 20002020, Oracle and/or its affiliates. All rights reserved.
    35. Oracle is a registered trademark of Oracle Corporation and/or its
    36. affiliates. Other names may be trademarks of their respective
    37. owners.
    38. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    39. # 设置复杂密码(由于mysql密码策略,此密码必须足够复杂)
    40. mysql> set password=password("Cola@2023");
    41. Query OK, 0 rows affected, 1 warning (0.00 sec)
    42. # 更改mysql密码策略
    43. mysql> set global validate_password_length=4;
    44. Query OK, 0 rows affected (0.00 sec)
    45. mysql> set global validate_password_policy=0;
    46. Query OK, 0 rows affected (0.00 sec)
    47. # 设置简单好记的密码
    48. mysql> set password=password("123456");
    49. Query OK, 0 rows affected, 1 warning (0.00 sec)
    50. # 切到msyql系统库
    51. mysql> use mysql
    52. Reading table information for completion of table and column names
    53. You can turn off this feature to get a quicker startup with -A
    54. Database changed
    55. # 查询user表
    56. mysql> select user, host from user;
    57. +---------------+-----------+
    58. | user          | host      |
    59. +---------------+-----------+
    60. | mysql.session | localhost |
    61. | mysql.sys     | localhost |
    62. | root          | localhost |
    63. +---------------+-----------+
    64. 3 rows in set (0.00 sec)
    65. # 修改user表,把Host表内容修改为% , 扩大数据库登录范围
    66. mysql> update user set host="%" where user="root";
    67. Query OK, 1 row affected (0.00 sec)
    68. Rows matched: 1  Changed: 1  Warnings: 0
    69. # 刷新更改配置
    70. mysql> flush privileges;
    71. Query OK, 0 rows affected (0.00 sec)
    72. # 退出MySQL
    73. mysql> exit
    74. Bye
    75. # 查看MySQL版本
    76. [root@cm-server mysql]# mysql -V
    77. mysql  Ver 14.14 Distrib 5.7.29for Linux (x86_64using  EditLine wrapper
    78. # 尝试使用新密码123456,重新登陆MySQL
    79. [root@cm-server mysql]# mysql -uroot -p123456
    80. mysql: [Warning] Using a password on the command line interface can be insecure.
    81. Welcome to the MySQL monitor.  Commands end with ; or \g.
    82. Your MySQL connection id is 3
    83. Server version: 5.7.29 MySQL Community Server (GPL)
    84. Copyright (c) 20002020, Oracle and/or its affiliates. All rights reserved.
    85. Oracle is a registered trademark of Oracle Corporation and/or its
    86. affiliates. Other names may be trademarks of their respective
    87. owners.
    88. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    89. # 导入cdh_db.sql文件;一些服务的库、用户名和密码,可以先自行修改密码再执行
    90. mysql> source cdh_db.sql
    91. Query OK, 1 row affected (0.00 sec)
    92. mysql> quit;
    93. Bye

    16、拷贝 JDBC 驱动包到指定目录

    1. # 新建/usr/share/java/目录
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/share/java/";done
    3. # 分发jdbc启动包到各个节点
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/mysql-connector-java-8.0.20.jar $ip:/usr/share/java/mysql-connector-java.jar;done
    5. #####10.168.168.1 节点结果如下:#####
    6. mysql-connector-java-8.0.20.jar        1002330KB  87.5MB/s   00:00
    7. #####10.168.168.2 节点结果如下:#####
    8. mysql-connector-java-8.0.20.jar        1002330KB  48.4MB/s   00:00
    9. #####10.168.168.3 节点结果如下:#####
    10. mysql-connector-java-8.0.20.jar        1002330KB  30.7MB/s   00:00
    11. #####10.168.168.4 节点结果如下:#####
    12. mysql-connector-java-8.0.20.jar        1002330KB  30.7MB/s   00:00

    17、配置 NTP 时间同步服务

    大部分公司都会在安装系统时统一做好时间同步服务,所以不需要的可以跳过这一步骤。

    1. # 安装NTP
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "myum install ntp";done
    3. # 启动
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "chkconfig ntpd on";done
    5. # 从NTP服务器同步时间。如果没有就将 NTP服务器IP 配置为 cm-server节点的IP。
    6. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "ntpdate -u NTP服务器IP";done
    7. #####10.168.168.1 节点结果如下:#####
    8.  8 Sep 17:45:23 ntpdate[10673]: adjust time server NTP服务器IP offset 0.015031 sec
    9. #####10.168.168.2 节点结果如下:#####
    10.  8 Sep 17:45:30 ntpdate[15808]: adjust time server NTP服务器IP offset -0.004186 sec
    11. #####10.168.168.3 节点结果如下:#####
    12.  8 Sep 17:45:36 ntpdate[9624]: adjust time server NTP服务器IP offset 0.014731 sec
    13. #####10.168.168.4 节点结果如下:#####
    14.  8 Sep 17:45:42 ntpdate[23049]: adjust time server NTP服务器IP offset 0.017200 sec
    15. # 每个节点分别添加crontab任务
    16. */30 * * * * /usr/sbin/ntpdate -u NTP服务器IP >> /dev/null 2>&1

    二、安装 CDH 服务

    1、安装 Clouder Manager Server( cm-server )

    1. # 进入安装包所在目录
    2. [root@cm-server CDHsoftware]# cd /opt/CDHsoftware
    3. # 安装cm-server服务
    4. [root@cm-server CDHsoftware]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
    5. [root@cm-server CDHsoftware]# yum install -y cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

    2、安装 Clouder Manager Agent( agent )

    1. # server上分发agent安装包
    2. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
    3. #####10.168.168.1 节点结果如下:#####
    4. cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB 120.5MB/s   00:00
    5. #####10.168.168.2 节点结果如下:#####
    6. cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB  98.6MB/s   00:00
    7. #####10.168.168.3 节点结果如下:#####
    8. cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB  99.0MB/s   00:00
    9. #####10.168.168.4 节点结果如下:#####
    10. cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB  71.8MB/s   00:00
    11. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
    12. #####10.168.168.1 节点结果如下:#####
    13. cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     1001148MB 114.8MB/s   00:10
    14. #####10.168.168.2 节点结果如下:#####
    15. cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     1001148MB  82.0MB/s   00:14
    16. #####10.168.168.3 节点结果如下:#####
    17. cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     1001148MB  76.5MB/s   00:15
    18. #####10.168.168.4 节点结果如下:#####
    19. cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     1001148MB  94.2MB/s   00:12
    20. # 所有agent节点都需要安装agent服务。grep -E记得去掉cm-server。
    21. #注意:(如果你的集群小,cm-server节点其实也可以装agent服务。我这里主要考虑将cm-server独立部署,虽然浪费了资源,但方便以后出现多集群维护时出现的性能问题。)
    22. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done
    23. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done
    24. # 修改所有agent节点的配置文件,将server_host的配置改为server的主机名 [ 主机名是自己环境的server的host主机名 ]
    25. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/server_host=localhost/server_host=cm-server/g' /etc/cloudera-scm-agent/config.ini";done
    26. # 删除安装包
    27. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done
    28. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done

    3、初始化 Clouder Manager 数据库表

    1. [root@cm-server CDHsoftware]# ls -l /opt/cloudera/cm/schema/scm_prepare_database.sh
    2. -rwxr-xr-x 1 root root 12450 Sep 25  2019 /opt/cloudera/cm/schema/scm_prepare_database.sh
    3. # 注意替换ip地址,如果创建时,cdh_db.sql的密码改过这里需要对应改密码
    4. [root@cm-server CDHsoftware]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h 10.168.168.1 mysql scm scm 123456
    5. JAVA_HOME=/usr/java/default
    6. Verifying that we can write to /etc/cloudera-scm-server
    7. Creating SCM configuration file in /etc/cloudera-scm-server
    8. Executing:  /usr/java/default/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/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
    9. Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
    10. [                          main] DbCommandExecutor              INFO  Successfully connected to database.
    11. All done, your SCM database is configured correctly! # 到这一步,输出相同,就代表初始化成功了

    4、复制 parcel 文件到/opt/cloudera/parcel-repo/

    文件放置在/opt/cloudera/parcel-repo/目录下以后,在后续的界面安装各个服务时,在目录中找到版本文件,可以自动匹配到安装文件,无需连外网下载。

    1. [root@cm-server CDHsoftware]# cp /opt/CDHsoftware/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/
    2. [root@cm-server CDHsoftware]# cp /opt/CDHsoftware/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/

    5、启动 Clouder Manager Server

    1. # 启动cm-server节点的cm-server服务
    2. [root@cm-server CDHsoftware]# systemctl start cloudera-scm-server
    3. [root@cm-server CDHsoftware]# systemctl enable cloudera-scm-server

    6、启动 Clouder Manager Agent

    1. # 启动所有节点agent节点的agent服务
    2. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl start cloudera-scm-agent";done
    3. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl enable cloudera-scm-agent";done

    三、访问 Cloudera Manager 页面

    1、Cloudera Manager 登录

    http://cm-serverIP:7180/cmf/login (Username:admin Password:admin)

    #注意:7180 在高版本 linux 系统和阿里腾讯华为等公有云可能会出现端口为开放的情况,需要在系统上把对应的端口策略打开,才可以访问。

    cdh01

    2、欢迎使用 Cloudera Manager

    cdh02

    cdh02

    3、接受许可条款

    cdh03

    cdh03

    4、选择 CDH 版本

    cdh04

    cdh04

    四、集群安装

    1、进入集群安装流程

    cdh05

    cdh05

    2、设置集群名

    cdh06

    cdh06

    3、勾选管理节点

    一般安装正确,在当前管理的主机中都会自动带出 agent 安装好的节点。如果你的页面没有带出来,最好检查一下 agent 安装或者配置出现了错误。

    cdh07

    4、选择存储库

    cdh08

    cdh08

    Parcel 存储仓库设置

    Parcel 我用的是默认值,此处什么都没有改动。如果你还有印象,应该发现了前面步骤中新建过/opt/cloudera/parcel-repo/目录,并放置了两个 parcel 安装包。

    如果你有需要,可以在自己的服务器上,配置一下本地的远程 Parcel 存储库 URL,此处不做介绍。

    cdh09

    5、Install Parcels

    Clouder Manager Server 会将 parcel 解压,分发,安装到每一台选择 Clouder Manager Agent 的服务器。节点越多,速度越慢,需要耐心等待进度完成后才可点击下一步。

    cdh10

    6、Inspect Cluster

    cdh11

    cdh11

    五、群集设置

    1、选择大数据服务

    cdh12

    cdh12

    2、agent 节点角色分配

    角色默认分配

    cdh13

    cdh13

    角色手动分配

    建议所有人都手动分配一下角色分布,CDH 自动分配的角色在实际测试中会有一些性能问题。特别是 Hue/HiveServer2/Flume 的负载特别高,zk>hdfs 主节点>yarn 的主节点重要程度比较高,尽量不要和 Hue/HiveServer2/Flume 部署在同一台节点上。

    Cloudera Management Service:建议独立放在 agent01 上,有条件的环境,这台机器不要放置其他角色的服务;

    HiveServer2(或 Hue/Flume ):这些角色非常吃 CPU 和内存,建议不要和 CM 服务放在同一天机器上;例如红框的 HiveServer2 服务是放在 agent03 上。

    NN、SNN、RM、JHS:这些都是主节点相关的服务,为了稳定性,建议角色独立分布或者交叉分布,不要放在同一个节点上;例如绿框的 NN\SNN\RN\JHS 服务是交叉放在 agent02 和 agent03 上。

    DN、NM:建议所有节点都部署,能最大化分布式架构的有点;例如黄框中的 DN 和 NM,是所有节点都部署。

    zookeeper:建议最少防止三台,如果是生产环境,建议划分到 5 台的规模;例如黄框中的 zookeeper 的 server 服务,因为本次我们只有三个节点,最小节点数和所有 agent 节点数量重合。

    cdh14

    3、集群数据库设置

    cdh15

    cdh15

    如果测试不通过,发现需要的数据库、用户名、密码不存在,可以参照执行的 sql 文件格式,新增库和用户名等。

    1. CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    2. CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    3. CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    4. CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    5. CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    6. CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    7. CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    8. CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    9. CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    10. CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    11. GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
    12. GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
    13. GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
    14. GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
    15. GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY '123456';
    16. GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';
    17. GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';
    18. GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';
    19. GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
    20. GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY '123456';

    4、集群数据目录设置

    使用默认分配即可。但也要检查一下,看一下自动分配的数据目录有没有问题,CDH 会自动识别检测你的挂载目录。我的数据盘挂载目录是/data01,希望数据目录全部挂载在此目录下。如果你有多个数据盘,一般会自动出现多个数据目录,也可以自己手动添加。

    cdh16

    5、集群组件安装部署

    节点越多,安装时间越长,喝口水等一会,别急。

    cdh17

    6、集群设置完成

    cdh18

    cdh18

    7、完成自动登陆 Clouder Manager 管理界面

    没想到搭建完成全是感叹号,满屏告警。我的因为是测试环境,磁盘空间都很小。所以大家就当看不见感叹号,我看了我的告警,都与配置安装无关。我的文档大家放心,都是自己测试验证过的。

    cdh19

    六、Clouder Manager 管理界面使用指南

    1、检查状态

    在这里可以点击相关的告警,打开后可以根据告警优化。如果遇到需要修改配置的,需要重启相关服务或者整个集群的服务。

    cdh20

    2、按大数据组件检查

    CDH 支持按照组件维度进行检查,另外也可以查看主机和集群的角色分布情况。如果觉得集群分布不合理,可以合理利用主机和角色这两个功能辅助你分析问题。

    cdh21

    3、添加新服务

    可以在现有集群上安装 kafka 等服务,可以按需添加,cdh 即便是新手操作起来也很简单。

    cdh22

    七、集群扩容添加 agent 新节点

    1、修改 agent04 的主机名

    1. # 在跳板机执行如下ssh,或在各服务器上执行hostnamectl
    2. ssh 10.168.168.5 "hostnamectl set-hostname agent04"

    2、修改 cm-server 节点/etc/hosts

    1. [root@cm-server ~]# vim /etc/hosts
    2. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    3. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    4. # CDN cluster
    5. 10.168.168.1   cm-server
    6. 10.168.168.2   agent01
    7. 10.168.168.3   agent02
    8. 10.168.168.4   agent03
    9. 10.168.168.5   agent04

    3、分发 cm-server 节点密钥实现免密

    1. # 分发密钥
    2. [root@cm-server ~]# ssh-copy-id 10.168.168.5
    3. 输入密码
    4. # 或者通过
    5. 将cm-server节点的 ~/.ssh/id_rsa.pub 公钥文件内容 --> 追加到agent节点~/.ssh/authorized_keys文件中,实现免密。

    4、检查配置验证免密

    1. # 检查内存
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "free -g";done
    3. #####10.168.168.5 节点结果如下:#####
    4.               total        used        free      shared  buff/cache   available
    5. Mem:             15           1          12           0           1           6
    6. Swap:             9           0           9
    7. # 检查CPU核数
    8. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "lscpu | head -4 | tail -1";done
    9. #####10.168.168.5 节点结果如下:#####
    10. CPU(s):                8
    11. # 查看系统版本号
    12. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cat /etc/redhat-release";done
    13. #####10.168.168.5 节点结果如下:#####
    14. CentOS Linux release 7.3.1611 (Core)

    5、分发 cm-server 节点/etc/hosts

    这次分发是需要分发到整个集群所有节点上,不仅仅是扩容节点。

    1. # 备份所有节点/etc/hosts
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/hosts /etc/hosts_cdhbak$(date +%Y%m%d)";done
    3. # 分发/etc/hosts到所有节点
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/hosts $ip:/etc/hosts;done
    5. #####10.168.168.1 节点结果如下:#####
    6. hosts                                                     100%  285   769.2KB/s   00:00
    7. #####10.168.168.2 节点结果如下:#####
    8. hosts                                                     100%  285   353.4KB/s   00:00
    9. #####10.168.168.3 节点结果如下:#####
    10. hosts                                                     100%  285   286.2KB/s   00:00
    11. #####10.168.168.4 节点结果如下:#####
    12. hosts                                                     100%  285   407.7KB/s   00:00
    13. #####10.168.168.5 节点结果如下:#####
    14. hosts                                                     100%  285   299.0KB/s   00:00

    6、关闭防火墙

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl disable firewalld";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl stop firewalld";done

    7、关闭 SELINUX

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "setenforce 0";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config";done

    8、永久关闭 swap

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "swapoff -a";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i '/.*swap*/s/^/#/' /etc/fstab"|grep 'swap';done
    3. #####10.168.168.5 节点结果如下:#####
    4. #/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0

    9、关闭透明大页面

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/defrag";done
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/enabled";done
    3. # 分发cm-server节点的 /etc/rc.d/rc.local到各个节点
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/rc.d/rc.local $ip:/etc/rc.d/rc.local;done

    10、安装 python2.7.5

    Centos7 默认已经安装了 Python 2.7.5 版本

    1. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "python -V";done
    2. #####10.168.168.5 节点结果如下:#####
    3. Python 2.7.5
    4. #如果系统没有安装,或者没有安装则使用以下命令安装
    5. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y python275";done

    11、安装 jdk1.8

    1. # 新建/usr/java/目录
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/java/";done
    3. # 分发jdk-8u211-linux-x64.tar.gz安装包到/usr/java/目录下
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/jdk-8u211-linux-x64.tar.gz $ip:/usr/java/;done#####10.168.168.5 节点结果如下:#####
    5. jdk-8u211-linux-x64.tar.gz    100%  186MB  95.8MB/s   00:01
    6. # 在/usr/java/目录下解压jdk-8u211-linux-x64.tar.gz安装
    7. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;tar -xf jdk-8u211-linux-x64.tar.gz";done
    8. # 删除jdk安装包
    9. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;rm -f jdk-8u211-linux-x64.tar.gz";done
    10. # 生成软链。此处我就踩了一个坑,导致agent安装完成后起不来。cdh启用时, 默认会从/usr/java/default路径读取java环境, 所以此处需要做个软链
    11. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;ln -nsf jdk1.8.0_211 /usr/java/default";done
    12. # 备份/etc/profile
    13. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/profile /etc/profile_cdhbak$(date +%Y%m%d)";done
    14. # 分发cm-server节点的/etc/profile文件到各个节点上
    15. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/profile $ip:/etc/profile;done
    16. # 引用变量参数,使profile文件生效,并验证java版本
    17. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "source /etc/profile;java -version";done
    18. #####10.168.168.5 节点结果如下:#####
    19. java version "1.8.0_211"
    20. Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    21. Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

    12、拷贝 JDBC 驱动包到指定目录

    1. # 新建/usr/share/java/目录
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/share/java/";done
    3. # 分发jdbc启动包到各个节点
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/mysql-connector-java-8.0.20.jar $ip:/usr/share/java/mysql-connector-java.jar;done
    5. #####10.168.168.5 节点结果如下:#####
    6. mysql-connector-java-8.0.20.jar     1002330KB  19.2MB/s   00:00

    13、配置 NTP 时间同步服务

    大部分公司都会在安装系统时统一做好时间同步服务,所以不需要的可以跳过这一步骤。

    1. # 安装NTP
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "myum install ntp";done
    3. # 启动
    4. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "chkconfig ntpd on";done
    5. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "ntpdate -u 10.47.222.240";done
    6. #####10.168.168.5 节点结果如下:#####
    7. 12 Sep 11:03:08 ntpdate[12770]: adjust time server 10.47.222.240 offset -0.006283 sec
    8. # 每个节点分别添加crontab任务
    9. */30 * * * * /usr/sbin/ntpdate -u NTP服务器IP >> /dev/null 2>&1

    14、安装 Clouder Manager Agent( agent )

    1. # server上分发agent安装包
    2. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
    3. #####10.168.168.5 节点结果如下:#####
    4. cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm     100%   10MB  39.9MB/s   00:00
    5. [root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
    6. #####10.168.168.5 节点结果如下:#####
    7. cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm    1001148MB  95.7MB/s   00:12
    8. # 扩容节点都需要安装agent服务,不然cdh页面安装时可能监测不到节点。
    9. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done
    10. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done
    11. # 修改所有agent节点的配置文件,将server_host的配置改为server的主机名 [ 主机名是自己环境的server的host主机名 ]
    12. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/server_host=localhost/server_host=cm-server/g' /etc/cloudera-scm-agent/config.ini";done
    13. # 删除安装包
    14. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done
    15. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done

    15、启动 Clouder Manager Agent

    1. # 启动所有节点agent节点的agent服务
    2. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl start cloudera-scm-agent";done
    3. [root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl enable cloudera-scm-agent";done

    16、管理界面点击 Add Hosts

    cdh23

    cdh23

    17、Add Hosts 选择现有集群

    cdh24

    cdh24

    18、向集群添加管理节点

    如果之前在 agent04 上安装 agent 没有问题,这里都会自动带出来当前管理的主机。如果没有去检查一下 linux 相关的配置是否有问题,在检查一下 agent 服务是否正常启动。

    cdh25

    19、Install Parcels

    这里没什么可介绍的了,如果你是自己安装前面步骤搭建的,到这里就会发现很熟悉,按照引导继续走就可以了。

    cdh26

    20、选择主机模板

    选择主机模板,如果长期使用的集群,一般都会有模板的,主要是节点的角色,创建好直接有哪些服务的 node 等等;没有则可以直接选择无,代表加入集群后,手动添加服务实例。

    cdh27

    21、等待部署客户端配置

    cdh28

    cdh28

    22、在扩容节点添加角色实例

    例如在 HDFS 上添加角色实例

    cdh29

    23、在角色实例中自定义部署

    cdh30

    cdh30

    24、角色实例选中要部署的节点

    cdh31

    cdh31

    25、确认数据目录

    cdh32

    cdh32

    26、查看组件扩容的角色

    由此可以看到 DN 角色已经存在 HDFS 组件中,但是状态未启动,需要自己启动一下。至此扩容就结束了。

    cdh33

  • 相关阅读:
    [Java安全]—Mybatis注入
    Hibernate JPA中的N+1 选择问题以及如何避免它
    实践案例:同程艺龙网的 Dubbo 升级经验总结
    分享一个使用MoviePy库编写的实用脚本示例
    《2023中国企业数智化转型升级服务全景图/产业图谱2.0版》重磅发布
    vulhub struts2 s2-001漏洞复现
    工具清单 - 项目管理
    go的netpoll学习
    多进程multiprocessing
    openEuler快速入门-openEuler系统安装&openGauss数据库安装
  • 原文地址:https://blog.csdn.net/qq_43005694/article/details/132838771