文章目录
- 前言
- 一、系统环境准备(所有服务器)
- 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
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
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
继续以后选择库:更多选项和自定义库
最后达到这个界面点击继续,集群就搭建好了,接下来可以根据业务的需要去添加组件了。