CDH 6.3.1 rpm+http安装部署

一、准备工作

1.离线部署主要分为三块:

  • a.MySQL离线部署
  • b.CM离线部署
  • c.Parcel⽂件离线源部署

2.规划

节点 MySQL部署组件 Parcel文件离线源 CM进程 大数据组件
cdh001 Parcel Activity Monitor NN RM DN NM
cdh002 MySql Alert Publisher
Event Server
DN NM
cdh003 Host Monitor
Service Monitor
DN NM

3.下载源

支持的版本:requirements_supported_versions

  • CM
    cm6.3.1-redhat7.tar.gz
  • Parcel
    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
    https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
    下载jdk-8u181-linux-x64.tar.gz
  • MySQL https://dev.mysql.com/downloads/mysql/5.7.html#downloads
    下载mysql-5.7.26-el7-x86_64.tar.gz
  • MySQL jdbc jar
    下载完成后要重命名去掉版本号:
    mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar

二.集群节点初始化

1.安装三台虚拟机

参考:https://www.jianshu.com/p/482cbff461bf

2.当前笔记本或台式机配置hosts文件

  • MAC: /etc/hosts
  • Window: C:\windows\system32\drivers\etc\hosts
地址 机器名称:
192.168.174.141 cdh001
192.168.174.142 cdh002
192.168.174.143 cdh003

3.设置所有节点的hosts文件

echo "192.168.174.141 cdh001" >> /etc/hosts
echo "192.168.174.142 cdh002" >> /etc/hosts
echo "192.168.174.143 cdh003" >> /etc/hosts

4.关闭所有节点的防火墙及清空规则

systemctl stop firewalld
systemctl disable firewalld
iptables -F

5.关闭所有节点的selinux

vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能生效

6.设置所有节点的时区⼀致及时钟同步

  • 设置时区
[root@cdh001 ~]# timedatectl
      Local time: Mon 2019-10-28 15:44:50 CST
  Universal time: Mon 2019-10-28 07:44:50 UTC
        RTC time: Mon 2019-10-28 07:44:44
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
#查看哪些时区
[root@cdh001 ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
#所有节点设置亚洲上海时区
[root@cdh001 ~]# timedatectl set-timezone Asia/Shanghai
[root@cdh002 ~]# timedatectl set-timezone Asia/Shanghai
[root@cdh003 ~]# timedatectl set-timezone Asia/Shanghai
  • 设置时间
#所有节点安装ntp
[root@cdh001 ~]# yum install -y ntp
[root@cdh002 ~]# yum install -y ntp
[root@cdh003 ~]# yum install -y ntp

#选取cdh001为ntp的主节点
[root@cdh001 ~]# vi /etc/ntp.conf
#time
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
#当外部时间不可用时,可使用本地硬件时间
server 127.127.1.0 iburst local clock
#允许哪些网段的机器来同步时间
restrict 192.168.174.0 mask 255.255.255.0 nomodify notrap

#开启ntpd及查看状态
[root@cdh001 ~]# systemctl start ntpd
[root@cdh001 ~]# systemctl status ntpd
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-10-28 16:00:30 CST; 2min 47s ago
  Process: 17074 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 17075 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─17075 /usr/sbin/ntpd -u ntp:ntp -g

Oct 28 16:00:30 cdh001 ntpd[17075]: Listen and drop on 1 v6wildcard :: UDP 123
Oct 28 16:00:30 cdh001 ntpd[17075]: Listen normally on 2 lo 127.0.0.1 UDP 123
Oct 28 16:00:30 cdh001 ntpd[17075]: Listen normally on 3 ens33 192.168.174.141 UDP 123
Oct 28 16:00:30 cdh001 ntpd[17075]: Listen normally on 4 lo ::1 UDP 123
Oct 28 16:00:30 cdh001 ntpd[17075]: Listen normally on 5 ens33 fe80::53ee:12c5:2ca5:3356...123
Oct 28 16:00:30 cdh001 ntpd[17075]: Listening on routing socket on fd #22 for interface ...tes
Oct 28 16:00:52 cdh001 ntpd[17075]: 0.0.0.0 c016 06 restart
Oct 28 16:00:52 cdh001 ntpd[17075]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
Oct 28 16:00:52 cdh001 ntpd[17075]: 0.0.0.0 c011 01 freq_not_set
Oct 28 16:00:57 cdh001 ntpd[17075]: 0.0.0.0 c514 04 freq_mode
Hint: Some lines were ellipsized, use -l to show in full.

#验证
[root@cdh001 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 LOCAL(0)        .LOCL.           5 l   94   64   16    0.000    0.000   0.000

#其他从节点停止禁用ntpd服务
[root@cdh002 ~]# systemctl stop ntpd
[root@cdh002 ~]# systemctl disable ntpd
[root@cdh003 ~]# systemctl stop ntpd
[root@cdh003 ~]# systemctl disable ntpd

#每10分钟同步cdh001节点时间
[root@cdh002 ~]# /usr/sbin/ntpdate cdh001
28 Oct 16:07:41 ntpdate[9993]: adjust time server 192.168.174.141 offset 0.147138 sec
[root@cdh003 ~]# /usr/sbin/ntpdate cdh001
28 Oct 16:08:02 ntpdate[9993]: step time server 192.168.174.141 offset 1.997036 sec
[root@cdh002 ~]# crontab -e
no crontab for root - using an empty one
*/10 * * * * /usr/sbin/ntpdate cdh001
[root@cdh003 ~]# crontab -e
no crontab for root - using an empty one
*/10 * * * * /usr/sbin/ntpdate cdh001

7.每个节点部署JDK

mkdir -p /usr/java/
tar -zxvf jre-8u181-linux-x64.tar.gz -C /usr/java/
#切记必须修正所属用户及用户组
chown -R root:root /usr/java/jre1.8.0_181

echo "export JAVA_HOME=/usr/java/jre1.8.0_181" >> /etc/profile
source /etc/profile
echo "export PATH=${JAVA_HOME}/bin:${PATH}" >> /etc/profile
source /etc/profile

which java

8.cdh002节点离线部署MySQL5.7

1.解压及创建目录
[root@cdh002 cdh6.3.1]# tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@cdh002 local]# mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql
[root@cdh002 local]# mkdir mysql/arch mysql/data mysql/tmp

2.创建my.cnf(见文件)
[root@cdh002 local]# 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@cdh002 local]# groupadd -g 101 dba
[root@cdh002 local]# useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@cdh002 local]# id mysqladmin
uid=514(mysqladmin) gid=101(dba) groups=101(dba),0(root)

4.copy 环境变量配置文件至mysqladmin用户的home目录中,为了以下步骤配置个人环境变量
[root@cdh002 local]# cp /etc/skel/.* /usr/local/mysql

5.配置环境变量
[root@cdh002 local]# vi mysql/.bashrc 
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

export MYSQL_BASE=/usr/local/mysql
export PATH=${MYSQL_BASE}/bin:$PATH


6.赋权限和用户组,切换用户mysqladmin,安装
[root@cdh002 local]# chown  mysqladmin:dba /etc/my.cnf
[root@cdh002 local]# chmod  640 /etc/my.cnf

[root@cdh002 local]# chown -R mysqladmin:dba /usr/local/mysql
[root@cdh002 local]# chmod -R 755 /usr/local/mysql

7.配置服务及开机自启动
[root@cdh002 local]# cd /usr/local/mysql
#将服务文件拷贝到init.d下,并重命名为mysql
[root@cdh002 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysql
#赋予可执行权限
[root@cdh002 mysql]# chmod +x /etc/rc.d/init.d/mysql
#删除服务
[root@cdh002 mysql]# chkconfig --del mysql
#添加服务
[root@cdh002 mysql]# chkconfig --add mysql
[root@cdh002 mysql]# chkconfig --level 345 mysql on

8.安装libaio及安装mysql的初始db
[root@cdh002 mysql]# yum -y install libaio
[root@cdh002 mysql]# su - mysqladmin

[mysqladmin@cdh002 ~]$ bin/mysqld \
> --defaults-file=/etc/my.cnf \
> --user=mysqladmin \
> --basedir=/usr/local/mysql/ \
> --datadir=/usr/local/mysql/data/ \
> --initialize

9.查看临时密码
[mysqladmin@cdh002 ~]$ cat data/hostname.err |grep password
2019-10-28T08:50:20.942526Z 1 [Note] A temporary password is generated for root@localhost: /dt>edx-u0qM

10.启动
[mysqladmin@cdh002 ~]$ /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

11.登录及修改用户密码
[mysqladmin@cdh002 ~]$ mysql -uroot -p'/dt>edx-u0qM'
mysql> alter user root@localhost identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit

12.重启
[mysqladmin@cdh002 ~]$ service mysql restart

[mysqladmin@cdh002 ~]$ mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.11-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, 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>

9.创建CDH的元数据库和用户、 amon服务的数据库及用户

create database cmf DEFAULT CHARACTER SET utf8;
create database amon DEFAULT CHARACTER SET utf8;
grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
flush privileges;

10.cdh002节点部署mysql jdbc jar

[root@cdh002 mysql]# mkdir -p /usr/share/java/
重命名不能带版本号
cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

三、CDH部署

1.离线部署cm server及agent

1.1.所有节点创建⽬录及解压
mkdir /opt/cloudera-manager
tar -xzvf cm6.3.1-redhat7.tar.gz -C /opt/cloudera-manager/
tar -zxvf cm6.3.1-redhat7.tar.gz -C /opt/cloudera-manager/

1.2.选择cdh001为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.所有节点(包含cdh001)为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的节点cdh001
sed -i "s/server_host=localhost/server_host=cdh001/g" /etc/cloudera-scm-agent/config.ini

1.5.主节点修改server的配置:
vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=cdh002
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=123456
com.cloudera.cmf.db.setupType=EXTERNAL

2.cdh001节点部署离线parcel源

2.1.安装httpd服务
yum install -y httpd

2.2.部署离线parcel源
mkdir -p /var/www/html/cdh6_parcel
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/

window/mac: http://cdh001/cdh6_parcel/ 查看是否可以访问

3.cdh001节点启动Server

3.1.启动server
systemctl start cloudera-scm-server

查看⽇志:
cd /var/log/cloudera-scm-server/
tail -F cloudera-scm-server.log
有错误就根据错误解决,没有错误,等待1min,出现7180端⼝,表明是成功的

3.2.等待1min,打开 http://cdh001:7180 账号密码:admin/admin
3.3.假如打不开,去看server的log,根据错误仔细排查错误

4.所有节点启动Agent

systemctl start cloudera-scm-agent

5.接下来,全部Web界面操作

六、常见问题

  • Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 30。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。您可以继续进行安装,但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良
cat /proc/sys/vm/swappiness
#临时修改
sysctl -w vm.swappiness=0
永久修改
echo "vm.swappiness=0" >> /etc/sysctl.conf
  • 已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置
#临时修改
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

#永久修改
vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
chmod +x /etc/rc.d/rc.local
  • Starting with CDH 6, PostgreSQL-backed Hue requires Psycopg2 version to be at least 2.5.4(可以忽略)
yum install python-pip

pip install --upgrade psycopg2

你可能感兴趣的:(CDH 6.3.1 rpm+http安装部署)