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
如下图
vi /et/hosts
192.168.1.13 cdhcm01.yifan.com
192.168.1.14 cdhmaster01.yifan.com
192.168.1.15 cdhmaster02.yifan.com
192.168.1.16 cdhdata01.yifan.com
192.168.1.17 cdhdata02.yifan.com
192.168.1.18 cdhdata03.yifan.com
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 #一直回车就行
查看公钥,并将公钥内容追加到其他节点的/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
selinux关闭
关闭selinux,临时生效
setenforce 0
查看selinux状态
getenforce
修改selinux配置文件永久生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
查看配置是否修改成功
cat /etc/selinux/config
删除虚拟网卡
由于有些操作系统没有安装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
卸载自带的mariadb
rpm -qa | grep mariadb | xargs -I {} yum remove -y {}
安装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
2.2 通过cloudera manager 安装cdh
通过浏览器访问http://ip:7180
选择60天试用期
设定集群名称
写入节点ip地址
设定私有cm源
设定私有cdh源
选择和cm版本适配CDH版本
安装jdk
由于已经手动安装,所以不需要在cm页面安装。如果没有安装,在红框处选定
输入密码进行安装
等待安装agent
安装CDH
检测主机和hosts
等待全部完成
由于自己虚拟机的网络问题,可以忽略掉
选择自定义(基础组件hdfs,zookeeper,yarn,hive)
Custom Services
选择组件分配到那个节点
配置数据库
修改组件配置(可以关注下data目录和namenode的目录)
等待部署和启动
安装完成