文章目录

  • 前言
  • 一、系统环境准备(所有服务器)
  • 1.关闭防火墙
  • 2.关闭selinux
  • 3.修改系统资源限制
  • 4.制作本地yum源(离线环境)
  • 5.同步主机名
  • 6.同步服务器时间与时区
  • 7.内核参数调优
  • 8.安装JDK
  • 二、主节点服务器环境准备
  • 1.安装CDH软件仓库
  • 2.部署MariaBD
  • 3.部署cloudera manager
  • 三、从节点服务器环境准备
  • 四、CDH创建集群



前言

最近公司要进行大数据平台CDH的搭建,所以特意进行了学习,将经验分享出来。本文是CDH5.16forCentos7的搭建过程。需要注意的是CDH6以前的版本不再免费了,而且官网下架了CDH6以下版本的下载地址,所以现在搭建只能进行CDH6以下版本的搭建,而且需要在网上找离线资源进行部署。
注意:cdh集群至少需要3台机器,我们以3台为例。



一、系统环境准备(所有服务器)

1.关闭防火墙

systemctl stop firewalld		#停止防火墙
systemctl disable firewalld		#禁止防火墙开机自启
systemctl status firewalld		#查看防火墙状态

2.关闭selinux

setenforce 0						#关闭selinux(临时)
getenforce							#查看selinux状态
sed -i 's/SELINUX=enforcing/SELKINUX=disabled/g' /etc/selinux/config					#关闭selinux(永久)

3.修改系统资源限制

vim /etc/security/limits.conf

在配置文件中最后添加以下两行:

*       soft    nofile  65536
*       hard    nofile  65536

修改完系统资源限制以后,必须进行重启机器才能生效。

4.制作本地yum源(离线环境)

mkdir -p /etc/yum.repos.d/bak/&&mv /etc/yum.repos.d/* /etc/yum.repos.d/bak/				#备份原有yum源
mount -t iso9660 -o loop CentOS-7-x86.iso /mnt/
mkdir -p /centos
cp -a /mnt /centos
umount /mnt
vim /etc/yum.repos.d/CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///centos/
gpgcheck=0
enabled=1
yum clean all
yum repolist

5.同步主机名

vim /etc/sysconfig/network
HOSTNAME=cdh1					#根据不同机器命名cdh1/2/3
vim /etc/hostname
cdh1							#根据不同机器命名cdh1/2/3
vim /etc/hosts
ip cdh1
ip cdh2
ip cdh3							#配置主机名映射
hostnamectl set-hostname cdh1	#根据不同机器命名

6.同步服务器时间与时区

安装ntp服务

yum -y install ntp
systemctl enable ntpd

修改配置文件

>/etc/ntp.conf 
vim /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
server 127.127.1.0   				#其它机器此IP改为设置的ntpdate server服务器IP
fudge  127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

查看系统时间,如果与北京时间不一致,手动进行更改,并写入硬件

date 
date -s "00:00:00"
hwclock -w

启动NTP服务

systemctl start ntpd
systemctl status ntpd

查看时间同步状态,remote节点ip前是*为正常

ntpdc -np

cdh 集群 hive权限管理 cdh集群搭建_mysql

7.内核参数调优

vim /etc/rc.local
# 关闭THP
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
# 优化SWP使用,从而优化IO
if test -f /proc/sys/vm/swappiness; then
    echo 1 > /proc/sys/vm/swappiness
fi
bash /etc/rc.local
chmod +x /etc/rc.d/rc.local
vim /etc/sysctl.conf
vm.swappiness = 1
vm.max_map_count = 262144
sysctl -p

8.安装JDK

将系统自带的openjdk卸载

rpm -e --nodeps `rpm -qa|grep -i jdk`

安装已经下载好的JDK

rpm -ivh jdk-linux-x64.rpm
 java -version

二、主节点服务器环境准备

1.安装CDH软件仓库

安装并启动httpd

yum -y install openssh-clients
yum -y install httpd
systemctl enable httpd
systemctl start httpd

解压下载好的CDH包放到对应目录下

mkdir -p /web/
tar -zxvf cdh5.16.2.tgz -C /web/
tar -zxvf cm5.16.2.tgz -C /web/
tar -zxvf cdk3.1.1.2.tgz -C /web/		#kafka资源
tar -zxvf SPARK2.3.0.tgz -C /web/		#spark2资源

配置cdh软件仓库

ln -s /web /var/www/html/

配置cdh的yum源

vim /etc/yum.repos.d/cdh.repo
[cdh-repo]
name=cdh repo
baseurl=http://主节点ip/web/cm5.16.2
enabled=1
gpgcheck=0
yum repolist

cdh 集群 hive权限管理 cdh集群搭建_cdh 集群 hive权限管理_02

2.部署MariaBD

安装MariaDB

yum -y install mariadb-server

部署JDBC(cdh需要JDBC驱动才能连接mysql)

mkdir -p /usr/share/java
cp /mysql-connector-java-5.1.29.jar /usr/share/java
ln -s /usr/share/java/mysql-connector-java-5.1.29.jar /usr/share/java/mysql-connector-java.jar

更改MYsql数据目录

rmdir /var/lib/mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
ln -s /data/mysql /var/lib/mysql

自定义配置文件

>/etc/my.cnf
vim /etc/my.cnf
#####################################################################
[client]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
[mysqld]
character-set-server=utf8
lower_case_table_names=1
max_connect_errors=1000
# bind-address  = 0.0.0.0
port            = 3306
transaction-isolation = READ-COMMITTED
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
skip-external-locking
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 = 1000
#expire_logs_days = 10
#max_binlog_size = 100M
slow_query_log = 1
long_query_time = 2
log-queries-not-using-indexes
log_bin=/var/lib/mysql/mysql_binary_log
server-id = 1
binlog_format = mixed
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 2G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
sql_mode=STRICT_ALL_TABLES
[mysqldump]
quick
quote-names
max_allowed_packet = 32M

启动mariadb

chown -R mysql:mysql /var/lib/mysql
systemctl enable mariadb
systemctl start mariadb

MariaDB安全加固

mysql_secure_installation

Enter---->设置root密码(y)---->删除匿名用户(y)---->不允许远程登录(n)---->删除测试库及其登录方式(y)---->重新加载权限表(y)

3.部署cloudera manager

安装Cloudera Manager软件包

yum -y install cloudera-manager-daemons cloudera-manager-server

准备Cloudera Manager数据库

/usr/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p数据库密码 scm scm scm

启动Cloudera Manager Server服务(启动需要三到五分钟左右的时间,需耐心等待,启动成功后7180端口就会打开)

systemctl start cloudera-scm-server
netstat -tnlp|grep 7180

三、从节点服务器环境准备

配置从节点的cdh安装yum源

vim /etc/yum.repos.d/cdh.repo
[cdh-repo]
name=cdh repo
baseurl=http://主节点ip/web/cm5.16.2
enabled=1
gpgcheck=0
yum repolist

四、CDH创建集群

用chrome登录(其他浏览器可能不兼容)

http://主节点ip:7180
用户名密码都是admin

cdh 集群 hive权限管理 cdh集群搭建_vim_03


cdh 集群 hive权限管理 cdh集群搭建_vim_04


cdh 集群 hive权限管理 cdh集群搭建_大数据_05


cdh 集群 hive权限管理 cdh集群搭建_大数据_06


cdh 集群 hive权限管理 cdh集群搭建_mysql_07


继续以后选择库:更多选项和自定义库

cdh 集群 hive权限管理 cdh集群搭建_mysql_08


cdh 集群 hive权限管理 cdh集群搭建_大数据_09


cdh 集群 hive权限管理 cdh集群搭建_vim_10


cdh 集群 hive权限管理 cdh集群搭建_java_11


cdh 集群 hive权限管理 cdh集群搭建_mysql_12


cdh 集群 hive权限管理 cdh集群搭建_cdh 集群 hive权限管理_13


cdh 集群 hive权限管理 cdh集群搭建_mysql_14


cdh 集群 hive权限管理 cdh集群搭建_java_15


最后达到这个界面点击继续,集群就搭建好了,接下来可以根据业务的需要去添加组件了。

cdh 集群 hive权限管理 cdh集群搭建_mysql_16