1、基础环境配置

1、1 设计主机名及ip对应关系

IP 主机 功能
192.168.1.13 cdhcm01.yifan.com cm server节点
192.168.1.14 cdhmaster01.yifan.com namenode节点
192.168.1.15 cdhmaster02.yifan.com namenode节点
192.168.1.16 cdhdata01.yifan.com data节点
192.168.1.17 cdhdata02.yifan.com data节点
192.168.1.18 cdhdata03.yifan.com data节点

注:
以下内容需要在每台主机上都进行执行
本文档在centos 7.6 部署并测试,jdk版本为1.8 181
cdh版本和cm版本都为6.2.0版本
组织对应关系的hosts
如下图

  1. vi /et/hosts
  2. 192.168.1.13 cdhcm01.yifan.com
  3. 192.168.1.14 cdhmaster01.yifan.com
  4. 192.168.1.15 cdhmaster02.yifan.com
  5. 192.168.1.16 cdhdata01.yifan.com
  6. 192.168.1.17 cdhdata02.yifan.com
  7. 192.168.1.18 cdhdata03.yifan.com

image.png

1、2 部署jdk

一般情况使用oracle jdk 1.8 181 以上版本,因为在jdk 1.8 161以下的版本在开启kerberos后,使用aes加密时需要添加2个jar
具体请参考cdh官网
https://docs.cloudera.com/documentation/enterprise/5-12-x/topics/cm_sg_s2_jce_policy.html
在官方网站下载jdk 1.8 181的rpm包,上传至cdhcm01.yifan.com服务器

卸载openjdk
yum remove  -y `rpm -qa | grep openjdk`
安装oracle jdk
rpm -ivh jdk-8u181-linux-x64.rpm

1、3 修改主机名

根据上方的表单,按照对应关系在每台机器上修改主机名

hostnamectl set-hostname  cdhcm01.yifan.com

1、4 ssh免密

免密是指免密码登录,用作cdhcm01.yifan.com到其他节点ssh登录不用输入密码

在cdhcm01.yifan.com上生成公钥及私钥

ssh-keygen -t rsa  #一直回车就行

image.png

查看公钥,并将公钥内容追加到其他节点的/root/.ssh/authorized_keys中

#将公钥分发到每个节点
ssh-copy-id root@192.168.1.14
ssh-copy-id root@192.168.1.15
ssh-copy-id root@192.168.1.16
ssh-copy-id root@192.168.1.17
ssh-copy-id root@192.168.1.18

1、5 操作系统环境基本设置

防火墙关闭

清理防火墙规则
iptables -F
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
查看防火墙规则
iptables -L

image.png

selinux关闭

关闭selinux,临时生效
setenforce 0
查看selinux状态
getenforce 
修改selinux配置文件永久生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
查看配置是否修改成功
cat /etc/selinux/config

image.png

删除虚拟网卡

由于有些操作系统没有安装virsh命令,会导致虚拟网卡删除失败,必须先安装virsh命令

#安装virsh及其命令
yum install -y qumu-kvm* libvirt* virt-install* bridge-utils

删除虚拟网卡
virsh net-destroy default
取消定义虚拟网卡
virsh net-undefine default

禁止透明大页

#临时设置
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
#永久设置
vim /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

减少交换内存的使用(但是不能关闭,高负载情况下可能会导致服务器宕机)

sysctl -w vm.swappiness=1
echo 'vm.swappiness=1' >> /etc/sysctl.conf
sysctl -p

1.6 数据库安装(一般安装在cm server节点安装)

下载mysql5.7安装包

官方下载地址
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar

上传安装包到服务器,并解压安装

tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
ll *.rpm

image.png

卸载自带的mariadb

rpm -qa | grep mariadb | xargs -I {} yum remove -y {}

image.png

安装mysql数据库

按照以下依赖关系安装MySQL
rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm
开启mysql服务

systemctl start mysqld
systemctl enable mysqld

设定初始化密码

#获取初始化密码
grep 'temporary password' /var/log/mysqld.log
#设定初始密码
mysql -uroot -p 输入上面获取到的密码
alter user root@localhost identified by '密码';
flush privileges;

根据cdh安装文档,修改mysql配置文件
#参考文档地址
https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_ig_mysql.html#cmig_topic_5_5

#停止mysql
systemctl stop mysqld
#备份老的配置文件
mv /etc/my.cnf /etc/my.cnf.bak
#编辑新的
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0

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
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
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

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES

#################################################################################
##重启mysql
systemctl start mysqld

创建所需数据库并授权
创建各个组件所需的数据库,并授权,密码需要替换成自己设置的密码

mysql -u root --password='root密码' -e 'create database metastore default character set utf8;'
mysql -u root --password='root密码' -e "create user 'hive'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database hive default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on hive.* to 'hive'@'%'";
mysql -u root --password='root密码' -e "grant all privileges on metastore.* to 'hive'@'%'";
mysql -u root --password='root密码' -e "create user 'amon'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database amon default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on amon.* to 'amon'@'%'";
mysql -u root --password='root密码' -e "create user 'rman'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database rman default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on rman.* to 'rman'@'%'";
mysql -u root --password='root密码' -e "create user 'sentry'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database sentry default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on sentry.* to 'sentry'@'%'";
mysql -u root --password='root密码' -e "create user 'nav'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database nav default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on nav.* to 'nav'@'%'";
mysql -u root --password='root密码' -e "create user 'navms'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database navms default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on navms.* to 'navms'@'%'";
mysql -u root --password='root密码' -e "create user 'cm'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database cm default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on cm.* to 'cm'@'%'";
mysql -u root --password='root密码' -e "create user 'oos'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database oos default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on oos.* to 'oos'@'%'";
mysql -u root --password='root密码' -e "create user 'hue'@'%' identified by '密码'";
mysql -u root --password='root密码' -e 'create database hue default character set utf8';
mysql -u root --password='root密码' -e "grant all privileges on hue.* to 'hue'@'%'";

2 安装cloudera-server

2.1 下载配置cloudera-server

cloudera-server下载地址
https://archive.cloudera.com/cm6.2/
CDH下载地址
https://archive.cloudera.com/cdh6.2/
在下载时需要下载allkeys.asc文件,否则无法进行安装
初始化cloudera-server数据库

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm cm 数据库密码

启动cloudera-server
systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server
等待启动成功
netstat -tunlp | grep 7180
image.png

2.2 通过cloudera manager 安装cdh

通过浏览器访问http://ip:7180
image.png
image.png
选择60天试用期
image.png
image.png
设定集群名称
image.png
写入节点ip地址
image.png
设定私有cm源
image.png

设定私有cdh源
image.png
image.png
选择和cm版本适配CDH版本
image.png
安装jdk
由于已经手动安装,所以不需要在cm页面安装。如果没有安装,在红框处选定
image.png
输入密码进行安装
image.png
等待安装agent
image.png
安装CDH
image.png
检测主机和hosts
image.png
等待全部完成
由于自己虚拟机的网络问题,可以忽略掉
image.png
选择自定义(基础组件hdfs,zookeeper,yarn,hive)
Custom Services
image.png
选择组件分配到那个节点
image.png
配置数据库image.png
image.png
修改组件配置(可以关注下data目录和namenode的目录)
image.png
等待部署和启动

image.png
安装完成
image.png