CDH大数据安装手册
操作系统要求CentOS7.4。
除了系统自带的OS源,我们会把其他安装包整合到一个独立的源。所有服务器都会使用该源,方便统一管理。
该源会包括
--Cloudera Manager 5.11.2
--CDH 5.11.2 Parcel
--Cloudera Manager所需依赖包
--mysql-connector-java-5.1.46.tar.gz
-]其他工具
在1号机 (host1)进行以下操作
--复制centos base,Cloudera Manager yum源和CDH parcel到apache httpd目录 (/var/www/html) 并建立yum源。这里CDH_install_repos为预先下载的yum源,依赖包,和parcel安装文件。/YOUR_BASE_YUM 为手动下载的CentOS源
--安装和启动所需服务和功能。
--配置源文件。(建议用hostname或fqdn)
cat>/etc/yum.repos.d/cloudera-manager.repo<<EOF
[cloudera-manager]
name= cloudera-manager
baseurl=http://host1/cm
gpgkey = http://host1/cm/RPM-GPG-KEY-cloudera
gpgcheck = 0
EOF
--查看httpd服务时否正常启动, 用浏览器打开以下连接。
http:// host1/cm
--确认每台机器/etc/hostname都有正确hostname
--确认/etc/hosts里面已正确配置所有机器的ip和hostname
--MySQL数据库(主)机器名暂定为mysql-host, ip地址为10.53.5.91 (host1), 故在/etc/hosts里面需为10.53.5.91增加以下信息
192.168.0.1 host1 mysql-host
--查看每台机器的时区,命令:timedatectl
--默认是美国时区,修改成中国时区,命令:timedatectl set-timezone Asia/Shanghai
--用date命令查看时间可以看到时区,但是没有timedatectl的信息全,所以尽量两个命令都用一下,安装cdh过程中,如果各个主机时区不一样会有提示;但是如果安装好了cdh,再改时区,不会有提示,所以先设置好时区再安装cdh,避免不必要的问题;
1)生成key
在主节点执行如下命令:
# cd ~
# ssh-keygen -t rsa
# cd .ssh
# cat *.pub > authorized_keys
在各分节点执行如下命令:
# cd ~
# ssh-keygen -t rsa
# ssh-copy-id -i 【主节点】
在主节点授权authorized_keys文件:
# chmod 600 authorized_keys
2)KEY分发
需要在主节点配置其他全部分节点,在主节点执行如下命令:
# scp /root/.ssh/authorized_keys 【分节点】:/root/.ssh/
# scp /root/.ssh/authorized_keys 【分节点】:/root/.ssh/
# scp /root/.ssh/authorized_keys 【分节点】:/root/.ssh/
3)SSH登录操作
配置好公钥后,需要分别用户主机名或ip地址互相 ssh 登录一下,确认是否可以免密登录。
登录命令如:
# ssh 【用户名】@【主机】
在yum源所在机器(1号机)上执行以下命令,把yum源配置发布到其他所有机器.
for i in {2..6}
do
sudo rm -f /etc/yum.repos.d/*.repo
sudo scp /etc/yum.repos.d/cloudera-manager.repo 192.168.1.${i}:/etc/yum.repos.d/
done
把mysql connector jar复制到所有机器。
假设jar所在路径为/YOUR_DOWNLOAD_PATH,
--在1号机上安装ntp server
yum install ntp -y #安装ntp
systemctl enable ntpd #配置开机自启动
systemctl start ntpd #启动ntp
修改/etc/ntp.conf,
--只留一句restrict 10.96.109.0 mask 255.255.255.0 nomodify notrap
--添加server 127.127.1.0 iburst
--添加fudge 127.127.1.0 stratum 8
--添加logfile /var/log/ntp.log
重启ntp: 执行service ntpd restart
测试:运行命令ntpq -p
--其他机器:
部署/etc/ntp.conf, 文件内容如下
restrict 10.96.109.0 mask 255.255.255.0 nomodify notrap
server 192.168.0.1 iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
#或者从2号机抄ntp.conf
#禁用timedatectl:
timedatectl set-ntp false
#同步ntp
ntpdate -q 192.168.0.1
ntpdate -d 192.168.0.1
#重启服务:
service ntpd restart
添加cronjob 每1小时运行一次ntpdate -q 192.168.0.1
在所有机器上执行
rpm -e java-1.8.0-openjdk --nodeps
rpm -e java-1.8.0-openjdk-headless --nodeps
在所有服务器执行以下操作:
Sudo权限:执行命令“visudo”并添加以下sudo rule
%cloudera-scm ALL=(ALL) NOPASSWD: ALL
修改swappiness参数。CDH建议值为1到10之间。执行以下命令,把该值设为1:
vm.swappiness=1
--禁止Transparent Huge Page Compaction。执行以下命令
cat >> /etc/rc.local << EOF
#!/bin/bash
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
EOF
chmod 755 /etc/rc.local
chmod 755 /etc/rc.d/rc.local
--关闭防火墙。
sudo service iptables stop
sudo chkconfig iptables off
sudo chkconfig iptables –list
#注意:需要清空iptables
iptables -F
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
--禁止selinux。执行以下命令:
if [ -f /etc/selinux/config.backup ]
then
echo "Skipping backup..."
else
cp /etc/selinux/config /etc/selinux/config.backup
fi
sed -e "s/^SELINUX.*/SELINUX=disabled/g" /etc/selinux/config.backup > /etc/selinux/config
--重启服务器。执行命令 “reboot”
--检查配置是否生效。
[root@ha-node1 ~]# getenforce
Disabled
[root@ha-node1 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
never
[root@ha-node1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
never
MySQL安装
--删除操作系统自带的mariadb组件的步骤如下:
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
--解压安装包
tar -vxf mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar
--安装MySQL,按以下顺序安装
rpm -ivh mysql-community-common-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.17-1.el7.x86_64.rpm
--编辑主、备节点的配置文件 /etc/my.cnf,编辑后重启MySQL
修改配置文件后,重新启动MySQL
#禁止MySQL开机自启动
systemctl disable mysqld
#手动启动MySQL
systemctl start mysqld
#查看初始管理员密码;
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
#随后输入密码,不提供回显
#允许内网登陆root用户
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
# 允许root用户从内网登陆,10.x.x.% 是假定的内网网段,其中百分号是通配符
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.x.x.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
--]新建用户和数据库。(预设密码为”password”)
到此,cdh基本环境配置好了,接下来继续讲如何安装cdh并做配置。