a.MySQL离线部署
b.CM离线部署 不开源 主从架构 server + 多个 agent
c.Parcel⽂件离线源部署 包裹文件 tar.gz->parcel(tar -xzvf xxx.parcel)
| 节点 | MySQL部署组件 | Parcel文件离线源 | CM服务进程 | 大数据组件 |
| node01 | MySQL | Parcel | Activity Monitor | NN RM DN NM |
| node02 | Alert Publisher Event Server | DN NM | ||
| node03 | Host Monitor Service Monitor | DN NM |
支持的版本:Cloudera Enterprise 6 要求和支持的版本|6.x |Cloudera Documentation
CDH 部署时,系统默认自带的 Python 不要更改,若需要其他版本,进行 Python 多版本控制。不使用官方默认的 postgresql,建议使用 MySQL 5.7。
二、集群节点初始化 1.服务器 1 台,虚拟机 2 台MySQL 离线部署:
mysql-5.7.11-linux-glibc2.5-x86_64.tar.gzCM:
cm6.3.1-redhat7.tar.gzParcel:
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1
manifest.json环境准备:
jdk-8u45-linux-x64.gz
mysql-connector-java-5.1.47.jar
CentOS 7.9 操作系统,4 核 20 G
2.当前笔记本或台式机配置 hosts 文件MAC:/etc/hosts
Window: C:windowssystem32driversetchosts
3.设置所有节点(三台机器)的 hosts 文件公⽹网地址 机器器名称:
172.16.16.238 node01
192.168.10.133 node02
192.168.10.134 node03
私有地址(内⽹网地址) 机器器名称: echo "172.16.16.238 node01">> /etc/hosts echo "192.168.10.133 node02">> /etc/hosts echo "192.168.10.134 node03">> /etc/hosts
hosts 文件是一个用于储存计算机网络中各节点信息的计算机文件,作用是将一些常用的网址域名与其对应的 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 hosts 文件中寻找对应的 IP 地址。
4.关闭所有节点的防火墙及清空规则停止并禁用防火墙 systemctl stop firewalld systemctl disable firewalld 清空规则 iptables -F5.关闭所有节点的 selinux
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能⽣生效
SELinux 全称是 Security Enhanced Linux,旨在提高 Linux 系统的安全性,主要作用是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
6.设置所有节点的时区一致及时钟同步 6.1 时区# 所有节点设置亚洲上海海时区 timedatectl set-timezone Asia/Shanghai6.2 时间同步
6.2.1 主从 主节点和互联网同步时间 ,从节点与主节点同步(优先)
# 所有节点安装ntp yum install -y ntp # 选取 node01 为 ntp 的主节点 vi /etc/ntp.conf
# 当外部时间不不可⽤用时,可使⽤用本地硬件时间 server 127.127.1.0 iburst local clock # 允许哪些⽹网段的机器器来同步时间 restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap # 开启 ntpd 及查看状态 systemctl start ntpd systemctl status ntpd # 验证 ntpq -p # 其他从节点停⽌止禁⽤用ntpd服务 systemctl stop ntpd systemctl disable ntpd ntpdate 172.16.16.238
报错了,查了许多方法未曾解决,就用了 IP 地址......
# 每天凌晨同步 172.16.16.238 节点时间 crontab -e 00 00 * * * /usr/sbin/ntpdate 172.16.16.238
6.2.2 主主 每一台都和互联网同步时间 hbase
6.2.3 互联网 -> 公司内部时钟服务器 maven 仓库中心 yum 仓库中心
7.每个节点部署JDKmkdir /usr/java
tar -xzvf jdk-8u181-linux-x64.gz -C /usr/java/
# 切记必须修正所属⽤用户及⽤用户组
chown -R root:root /usr/java/jdk1.8.0_181
# 修改环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=${JAVA_HOME}/bin:${PATH}
# 验证
source /etc/profile
which java
8.node01节点离线部署 MySQL5.7(若困难,自行选择RPM部署)
文档链接:https://github.com/Hackeruncle/MySQL(MySQL 5.7.11)
视频链接:https://pan.baidu.com/s/1jdM8WeIg8syU0evL1-tDOQ 密码:whic
1.解压及创建目录 [root@node01 local]# tar xzvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ [root@node01 local]# mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql [root@node01 local]# cd mysql [root@noce01 mysql]# mkdir arch data tmp
2.创建my.cnf vi /etc/my.cnf [client] port = 3306 socket = /usr/local/mysql/data/mysql.sock default-character-set=utf8mb4 [mysqld] port = 3306 socket = /usr/local/mysql/data/mysql.sock skip-slave-start skip-external-locking key_buffer_size = 256M sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 4M query_cache_size= 32M max_allowed_packet = 16M myisam_sort_buffer_size=128M tmp_table_size=32M table_open_cache = 512 thread_cache_size = 8 wait_timeout = 86400 interactive_timeout = 86400 max_connections = 600 # Try number of CPU's*2 for thread_concurrency #thread_concurrency = 32 #isolation level and default engine default-storage-engine = INNODB transaction-isolation = READ-COMMITTED server-id = 1739 basedir = /usr/local/mysql datadir = /usr/local/mysql/data pid-file = /usr/local/mysql/data/hostname.pid #open performance schema log-warnings sysdate-is-now binlog_format = ROW log_bin_trust_function_creators=1 log-error = /usr/local/mysql/data/hostname.err log-bin = /usr/local/mysql/arch/mysql-bin expire_logs_days = 7 innodb_write_io_threads=16 relay-log = /usr/local/mysql/relay_log/relay-log relay-log-index = /usr/local/mysql/relay_log/relay-log.index relay_log_info_file= /usr/local/mysql/relay_log/relay-log.info log_slave_updates=1 gtid_mode=OFF enforce_gtid_consistency=OFF # slave slave-parallel-type=LOGICAL_CLOCK slave-parallel-workers=4 master_info_repository=TABLE relay_log_info_repository=TABLE relay_log_recovery=ON #other logs #general_log =1 #general_log_file = /usr/local/mysql/data/general_log.err #slow_query_log=1 #slow_query_log_file=/usr/local/mysql/data/slow_log.err #for replication slave sync_binlog = 500 #for innodb options innodb_data_home_dir = /usr/local/mysql/data/ innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend innodb_log_group_home_dir = /usr/local/mysql/arch innodb_log_files_in_group = 4 innodb_log_file_size = 1G innodb_log_buffer_size = 200M #根据生产需要,调整pool size innodb_buffer_pool_size = 2G #innodb_additional_mem_pool_size = 50M #deprecated in 5.6 tmpdir = /usr/local/mysql/tmp innodb_lock_wait_timeout = 1000 #innodb_thread_concurrency = 0 innodb_flush_log_at_trx_commit = 2 innodb_locks_unsafe_for_binlog=1 #innodb io features: add for mysql5.5.8 performance_schema innodb_read_io_threads=4 innodb-write-io-threads=4 innodb-io-capacity=200 #purge threads change default(0) to 1 for purge innodb_purge_threads=1 innodb_use_native_aio=on #case-sensitive file names and separate tablespace innodb_file_per_table = 1 lower_case_table_names=1 [mysqldump] quick max_allowed_packet = 128M [mysql] no-auto-rehash default-character-set=utf8mb4 [mysqlhotcopy] interactive-timeout [myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
3.创建用户组及用户 [root@node01 local]# groupadd -g 101 dba [root@node01 local]# useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin
4.copy 环境变量配置文件至mysqladmin用户的home目录中,为了以下步骤配置个人环境变量(.为隐藏文件) [root@node01 local]# cp /etc/skel/.* /usr/local/mysql
5.配置环境变量
[root@node01 mysql]# vi .bashrc
export MYSQL_BASE=/usr/local/mysql
export PATH=${MYSQL_BASE}/bin:$PATH
6.赋权限和用户组,切换用户 mysqladmin,安装 [root@node01 mysql]# chown mysqladmin:dba /etc/my.cnf [root@node01 mysql]# chmod 640 /etc/my.cnf [root@node01 mysql]# chown -R mysqladmin:dba /usr/local/mysql [root@node01 mysql]# chmod -R 755 /usr/local/mysql
7.配置服务及开机自启动 # 将服务文件拷贝到init.d下,并重命名为 mysql [root@node01 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysql # 赋予可执行权限 [root@node01 mysql]# chmod +x /etc/rc.d/init.d/mysql # 添加服务 [root@node01 mysql]# chkconfig --add mysql # 初始化 [root@node01 mysql]# bin/mysqld --defaults-file=/etc/my.cnf --user=mysqladmin --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize
[root@node01 mysql]# cd data [root@node01 data]# cat hostname.err |grep password 2022-05-03T03:08:01.112084Z 1 [Note] A temporary password is generated for root@localhost: yJfl0zstMw&h [root@node01 data]# su - mysqladmin 上一次登录:二 5月 3 11:03:45 CST 2022pts/0 上 [mysqladmin@node01 ~]$ service mysql start Starting MySQL.. SUCCESS! [mysqladmin@node01 ~]$ mysql -uroot -p Enter password: (yJfl0zstMw&h--不显示) Welcome to the MySQL monitor... mysql> alter user root@localhost identified by '123456'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; mysql> flush privileges;
部署完成后,登录 [mysqladmin@node01 ~]$ mysql -uroot -p123456卸载MySQL5.7
起初登陆不成功,重新安装就成功了....
关闭MySQL服务 systemctl stop mysqld 使用 rpm 命令查看已安装的安装包 rpm -qa|grep mysql
mysql-community-libs-5.7.29-1.el7.x86_64
mysql-community-common-5.7.29-1.el7.x86_64
mysql-community-client-5.7.29-1.el7.x86_64
mysql-community-server-5.7.29-1.el7.x86_64
mysql57-community-release-el7-11.noarch
使用yum卸载安装的mysql yum remove mysql mysql-server mysql-libs mysql-server 查询剩余的安装包 rpm -qa|grep mysql
mysql-community-common-5.7.29-1.el7.x86_64
mysql57-community-release-el7-11.noarch
移除掉这些安装包 rpm -ev mysql-community-common-5.7.29-1.el7.x86_64 rpm -ev mysql57-community-release-el7-11.noarch 检查残余安装包 mysql57-community-release-el7-11.noarch.rpm Python-3.7.1.tar.xz.1 wget-log mysql80-community-release-el7-3.noarch.rpm usr mysql80-community-release-el7-3.noarch.rpm.1 vim 删除残余的安装包 rm -rf mysql* 继续查找是否还有残留文件 find / -name mysql 移除这些残留文件 rm -rf /var/lib/mysql rm -rf /var/lib/mysql/mysql rm -rf /usr/share/mysql 最后的检查,如果有的话继续执行删除就行 直到删干净为止 rpm -qa|grep mysql find / -name mysql9.创建CDH的元数据库和⽤用户、amon服务的数据库及⽤用户
10.ruozedata001节点部署mysql jdbc jarcreate database cmf DEFAULT CHARACTER SET utf8;
create database amon DEFAULT CHARACTER SET utf8;
grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY 'www.ruozedata.com';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'www.ruozedata.com';
flush privileges;
三、CDH部署mkdir -p /usr/share/java/
重命名不不能带版本号
cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
2.ruozedata001节点部署离线parcel源1.1.所有节点创建⽬目录及解压
mkdir /opt/cloudera-manager
tar -xzvf cm6.3.1-redhat7.tar.gz -C /opt/cloudera-manager/
1.2.选择ruozedata001为cm server,不不下载依赖包直接部署
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
1.3.所有节点(包含ruozedata001)为cm agent,不不下载依赖包直接部署
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
1.4.所有节点修改agent的配置,指向server的节点ruozedata001
sed -i "s/server_host=localhost/server_host=ruozedata001/g" /etc/cloudera-scm-agen
t/config.ini
1.5.主节点修改server的配置:
vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=ruozedata001
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=www.ruozedata.com
com.cloudera.cmf.db.setupType=EXTERNAL
3.ruozedata001节点启动Server2.1.安装httpd服务
yum install -y httpd
2.2.部署离线parcel源
$ mkdir -p /var/www/html/cdh6_parcel
[root@ruozedata001 CDH6.3.1]# cp CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/
www/html/cdh6_parcel/
[root@ruozedata001 CDH6.3.1]# mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 /
var/www/html/cdh6_parcel/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
[root@ruozedata001 CDH6.3.1]# mv manifest.json /var/www/html/cdh6_parcel/
$ ll
total 3081664
-rw-r--r-- 1 root root 2083878000 Oct 23 13:44 CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7
.parcel
-rw-r--r-- 1 root root 40 Oct 23 13:44 CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7
.parcel.sha1
-rw-r--r-- 1 root root 1411444147 Oct 23 13:43 cm6.3.1-redhat7.tar.gz
-rw-r--r-- 1 root root 173271626 Oct 23 13:43 jdk-8u45-linux-x64.gz
-rw-r--r-- 1 root root 33887 Oct 23 13:43 manifest.json
-rw-r--r-- 1 root root 548193637 Oct 23 13:42 mysql-5.7.11-linux-glibc2.5-x86_64.
tar.gz
-rw-r--r-- 1 root root 1007502 Sep 1 12:31 mysql-connector-java-5.1.47.jar
$ mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/cdh6_parcel/
$ mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH
-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
$ mv manifest.json /var/www/html/cdh6_parcel/
sha1名称⽂文件时,重命名去掉1,不不然在部署过程CM认为如上⽂文件下载未完整,会持续下载
2.3.启动httpd,window查看
systemctl start httpd
3.1.启动server
systemctl start cloudera-scm-server
查看⽇日志:
cd /var/log/cloudera-scm-server/
$ ll
total 20
-rw-r----- 1 cloudera-scm cloudera-scm 18265 Oct 23 15:37 cloudera-scm-server.log
-rw-r----- 1 cloudera-scm cloudera-scm 0 Oct 23 15:37 cmf-server-nio.log
-rw-r----- 1 cloudera-scm cloudera-scm 0 Oct 23 15:37 cmf-server-perf.log
$ tail -F cloudera-scm-server.log
有错误就根据错误解决,没有错误,等待1min,出现7180端⼝口,表明是成功的。
4.所有节点启动Agent3.2.阿⾥里里云web界⾯面,设置该ruozedata001节点防⽕火墙放开7180端⼝口
3.3.等待1min,打开 http://ruozedata001:7180 账号密码:admin/admin
3.4.假如打不不开,去看server的log,根据错误仔细排查错误
5.接下来,全部Web界⾯面操作systemctl start cloudera-scm-agent
http://ruozedata001:7180/
账号密码:admin/admin



