部署练习的环境有六台主机,主机的配置是4核心4G内存(内存还是低了,建议8G起步):

主机名

IP地址

Elephant

192.168.174.184

Lion

192.168.174.185

Horse

192.168.174.186

Monkey

192.168.174.187

Tiger

192.168.174.188

环境准备

  1. 主机环境配置

按照各个主机配置修改相应值,下面以elephant为例:

[root@localhost ~]# nmcli c m ens33 ipv4.method manual ipv4.addresses 192.168.174.184/24 ipv4.gateway 192.168.174.2 ipv4.dns 192.168.174.2
[root@localhost ~]# nmcli c d ens33 && nmcli c u ens33
[root@localhost ~]# hostnamectl set-hostname elephant
  1. 文件复制 将离线部署CDH6.3.1的文件复制到每一台主机上。其中包括:
sujx@legion7000:/mnt/d/$ ls Cloudera
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
jdk-8u202-linux-x64.rpm
manifest.json
mysql-connector-java-5.1.39-bin.jar

sujx@legion7000:/mnt/d/$ tar zcvf Cloudera cloudera.tar.gz
sujx@legion7000:/mnt/d/$ scp cloudera.tar.gz root@lion:/root/
  1. 免密登录设置

在lion主机上设置免密:

ssh-keygen -t rsa
ssh-copy-id {elephant\lion\horse\monkey\tiger}

# 使用ansible分发和管理文件,省略配置文件的建立
yum install -y ansible

ansible -m copy -a 'src=/root/cloudera.tar.gz dest=/root'
  1. 主机配置 建立主机执行文件进行相关配置。
#!/bin/bash

# 安装必要组件
yum update -y
yum install -y mutt net-tools mlocate telnet curl wget ping vim open-vm-tools

systemctl disable firewalld.service --now
sed -i ':s/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
updatedb && sync && ldconfig

# 配置时间服务器
cat >/etc/chrony.conf<<EOF
server ntp.aliyun.com iburst

driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

EOF

systemctl enable chronyd --now
timedatectl 

# 优化
# 修改swap配置
echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p

# 修改大页内存的使用
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

# 安装JAVA
tar zxvf cloudera.tar.gz
yum localinstall -y Cloudera/jdk-8u202-linux-x64.rpm

java -version
echo $JAVA_HOME

# 建立安装文件源
wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera
rpm --import RPM-GPG-KEY-cloudera
wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/cloudera-manager.repo -O /etc/pki/rpm-gpg/RPM-GPG-KEY-cloudera
yum update -y

mkdir /usr/share/java/
cp Cloudera/mysql-connector-java-5.1.39-bin.jar  /usr/share/java/mysql-connector-java.jar

yum localinstall -y Cloudera/cloudera-manager-daemons* 
yum localinstall -y Cloudera/cloudera-manager-agent*

# 修改cloudera-scm客户端的服务器目标地址
sed -i ':s/localhost/lion/g' /etc/cloudera-scm-agent/config.ini
systemctl enable cloudera-scm-agent
systemctl restart cloudera-scm-agent

# 客户端配置完成

数据库安装

数据库将部署在Lion主机之上。 1. 数据库安装

yum install -y mariadb mariadb-server

# 增加MySQL配置文件
vim /etc/my.cnf.d/server.cnf
[mysqld]
key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

# 启动数据库服务
systemctl enable mariadb --now

2. 建立数据库配置文件
vim /root/cdh.sql
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'passwd';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'passwd';

mysql -uroot -p < /root/cdh.sql
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

### 管理节点安装
```shell
yum localinstall -y Clouder/cloudera-manager-server.6*
cp Cloudera/CDH* /opt/cloudera/parcel-repo
cp Cloudera/main* /opt/cloudera/parcel-repo
cd /opt/cloudera/parcel-repo
# wget https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el6.parcel -P /opt/cloudera/parcel-repo
# wget https://archive.cloudera.com/cdh6/6.3.2/parcels/manifest.json -P /opt/cloudera/parcel-repo
sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel  awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
systemctl enable cloudera-scm-server --now
cd

群集配置

访问Lion主机的7180端口,然后使用web-gui界面进行配置。 start start start start start start start start start start start start start start start start start start start start start