1.环境准备
1.1.安装包
下载地址:https://archive.cloudera.com/cdh6/6.0.1/parcels/
https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/
安装包清单:
系统和iso镜像:
1.2.物理机或虚拟机
cdh集群至少三台物理机或虚拟机,各主机内存在16G以上;
使用虚拟机搭建集群要求:windows宿主机关闭防火墙,不休眠;三台虚拟机桥接;
1.3.远端操作软件推荐xshell
2.安装准备
2.1.更改系统语言(不推荐)
修改文件vim /etc/locale.conf【重新登录Xshell生效】【centos6:vim /etc/sysconfig/i18n】
LANG=“en_US.UTF-8” 或 LANG=“zh_CN.UTF-8” 或 LANG=“zh_CN.GB2312”
只是让时间显示中文:env LANG=en_US.UTF-8 date
2.2.主机名和集群映射
①各主机设置不同主机名:
vim /etc/hostname【推荐设置为master slave1 slave2】
【7.0的/etc/hostname,对应6.0的/etc/sysconfig/network】
注意:修改后需重启生效;若不想重启并立即生效可执行hostname master后重连 Xshell 即可;
②各主机设置主机名映射:【不推荐添加192.168.1.161 archive.cloudera.com】
127.0.0.1 localhost
192.168.1.161 master
192.168.1.162 slave1
192.168.1.163 slave2
2.3.禁用透明大页面压缩
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
2.4.优化交换分区
修改文件vim /etc/sysctl.conf 【追加一行】
vm.swappiness = 10
执行生效:sysctl -p /etc/sysctl.conf
2.5.文件限制ulimit
修改文件限制vim /etc/security/limits.conf:【重新登录生效】
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
2.6.制作本地yum源
请参照本人另一篇博客:2.1 服务器rhel6和rhel7配置本地或网络yum源
- ①备份原yum仓库:
cp -r /etc/yum.repos.d /etc/yum.repos.d.bak rm -rf /etc/yum.repos.d/*
- ②虚拟机制作yum源:【制作较快,但不推荐】
【确保vmware软件右下角“光盘”“已连接”】
清除yum缓存:yum clean allmkdir /mnt/cdrom-yum mount /dev/sr0 /mnt/cdrom-yum【每次开机需执行】 df -h 【查看挂载】 vim /etc/yum.repos.d/yum.repo [yum] name=cdrom-yum baseurl=file:///mnt/cdrom-yum enabled=1 gpgcheck=0
本地yum是否成功:yum list
可使用仓库:yum repolist - ③物理机或虚拟机制作本地yum源:【推荐】
上传iso镜像并挂载:
将cdrom-yum1发送到每台主机并改名/mnt/cdrom-yum;【其他步骤同上】mkdir /mnt/cdrom-yum1 mount /dev/centos7.iso /mnt/cdrom-yum1
- ④物理机或虚拟机制作网络yum源:【可联网时推荐】
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo yum clean all yum list yum repolist
- ⑤特殊情况:外网yum安装保留rpm包,然后传递到内网
备份cp /etc/yum.conf{,.date +%F
}
修改vim /etc/yum.conf中:keepcache=1
yum安装后的包在/var/cache/yum目录下,便于以后移动安装;
【移动安装包到指定目录后可建立本地源:createrepo .】
2.7.network、httpd、防火墙和selinux
- ①设置network开机启动,
确认网卡配置文件:ifconfig 或 ip addr
修改vim /etc/sysconfig/network-scripts/ifcfg-ens32:ONBOOT=yes - ②安装启动httpd,
yum -y install httpd systemctl restart httpd chkconfig httpd on - ③关闭防火墙,
systemctl stop firewalld systemctl disable firewalld
【yum -y install iptables-services service iptables stop chkconfig iptables off】 - ④关闭selinux,
修改vim /etc/sysconfig/selinux:SELINUX=disabled 【重启生效】
sestatus -v 【查看状态】
2.8.时间和时区修正
保证时区和时间准确,
date -R 【查看时区】
ll /etc/localtime 【查看链接文件】
date +%s 【查看时间】
- ①报错一:链接文件不正确,
处理:rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
并修改/usr/share/zoneinfo/Asia/Shanghai末尾UTC-8为CTS-8; - ②报错二:时区不正确,
修改时区:tzselect ;依次选5 9 1 1;
修改vim /etc/profile添加内容:
export TZ=‘Asia/Shanghai’
生效:source /etc/profile - ③报错三:修改系统时间,并保证与硬件时间一致,
date -s “2019-1-7 16:25:40” 【从机推荐ntpdate master】
同步到硬件时间hwclock --systohc
查看硬件时间hwclock --show ;以下报错需重试:
- ④补充:检查硬件时间CMOS:clock -r; 将系统时间写入CMOS:clock -w;
2.9.时钟同步ntp
-
①各节点安装yum -y install ntp
-
②chrony与ntp冲突
systemctl disable chronyd systemctl is-enabled chronyd -
③主节点配置vim /etc/ntp.conf
##server 0.centos.pool.ntp.org iburst
##server 1.centos.pool.ntp.org iburst
##server 2.centos.pool.ntp.org iburst
##server 3.centos.pool.ntp.org iburst
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10启动服务:systemctl restart ntpd
查看状态:systemctl status ntpd
开机启动:systemctl enable ntpd
是否同步:ntpstat【需等待10分钟左右】 ntpq -p
-
④从节点配置vim /etc/ntp.conf
##server 0.centos.pool.ntp.org iburst
##server 1.centos.pool.ntp.org iburst
##server 2.centos.pool.ntp.org iburst
##server 3.centos.pool.ntp.org iburst
server master prefer
server slave1启动服务前手动同步:ntpdate master
启动服务:systemctl restart ntpd
查看状态:systemctl status ntpd
开机启动:systemctl enable ntpd
是否同步:ntpstat【需等待10分钟左右】 ntpq -p
-
⑤虚拟机ntp同步缓慢时可ntpdate master后,全部配置为:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10
2.10.安装jdk1.8(可选择oracle-j2sdk1.8)
- ①查看并卸载原生openjdk
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
- ②mkdir /fhzz/soft上传并安装:(可选择oracle-j2sdk1.8)
rpm -ivh jdk-8u111-linux-x64.rpm
安装后java -version
确认; - ③若安装oracle-j2sdk1.8需配置环境变量
vim /etc/profile【或~/.bash_profile】修改内容:保持各主机jdk版本一致
source /etc/profileJAVA_HOME=/usr/java/jdk1.8.0_141-cloudera export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
- ④保持各主机jdk版本一致,否则报错:
- ⑤source后java环境只在一个终端生效:
解决:vim /etc/bashrc删除里面的JAVA_HOME配置;
source /etc/profile就可以啦;
2.11.免密互信
- ①ssh-keygen一路回车;
- ②ssh-copy-id root@cdh01发送秘钥;【三台之间均需相互免密互信并验证】
- ③免密报错处理
方法一:复制虚拟机产生的故障,ssh-keygen -R cdh03清除缓存;
方法二(推荐):清空/root/.ssh/known_hosts文件,重新生成并发送秘钥;
3.主节点安装mysql
3.1.卸载后安装mysql
①卸载centos7自带mariadb,在/fhzz/soft目录上传mysql安装包;
②tar -xvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar
rpm -ivh MySQL-*.rpm
3.2.安装文件冲突报错
现象:file /usr/share/mysql/charsets/README from install of MySQL-server-5.6.27-1.el6.x86_64 conflicts with file from package mariadb
解决:yum remove mysql-libs
3.3.error: Header V3 DSA signature: BAD, key ID 0352860f
rpm -ivh MySQL-server-5.6.27-1.el6.x86_64.rpm --nosignature
3.4.mysql配置文件
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
修改文件vim /etc/my.cnf:
[mysqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
3.5.启动mysql报错
Starting MySQL… ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)
cat /var/lib/mysql/localhost.localdomain.err–》发现Cannot open…table ‘mysql.user’ does not exist;
mysql_install_db --user=mysql --ldata=/var/lib/mysql/
3.6.初始化、修改密码和开机启动
- ①初始化:/usr/bin/mysql_install_db
service mysql restart
cat /root/.mysql_secret 【查看复制初始化密码】 - ②修改密码:mysql -u root -p 【复制初始密码】
SET PASSWORD=PASSWORD(‘Fhzz123.’);
update mysql.user set host=‘%’ where user=‘root’ and host=‘localhost’; 【允许远程访问】
flush privileges; - ③开机启动:chkconfig mysql on
3.7.FATAL ERROR: please install the following Perl modules before executing /usr/bin/mysql_install_db:Dumper
yum -y install autoconf
mysql_install_db --user=mysql --ldata=/var/lib/mysql/…
3.8.上传连接包并改名
cd /usr/share/java 【上传mysql连接包】
mv mysql-connector-java-5.1.38-bin.jar mysql-connector-java.jar
无mysql连接包的报错:
3.9.Mysql新建库表和权限
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database nav DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
~~==create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;(导致5.2异常)==~~
create user 'scm'@'master' identified by 'Fhzz123.';
grant all on *.* to root@"%" Identified by "Fhzz123.";
grant all privileges on *.* to 'root'@"%" Identified by "Fhzz123." with grant option;
flush privileges;
修改:update mysql.user set host="master" where user="scm" and host="cdh01";
检查:select user,host from mysql.user;
3.10.卸载mysql
rpm -ev --nodeps mysql-libs-5.1.71-1.el6.x86_64
rm -rf /var/lib/mysql
rm -rf /usr/my*
4.安装cm
4.1.主节点cm仓库
- ①新建目录/opt/cm 上传包(5个rpm和allkeys.asc文件),缺少allkeys后续报错:
- ②当前目录制作cm仓库:createrepo .
- ③软链接并查看:
ln -s /opt/cm /var/www/html/
网页查看:http://192.168.1.161/cm/ 【浏览器无法访问可能http服务未开启】
- ④制作cm的yum源:
vim /etc/yum.repos.d/cm.repo[cmrepo] name=cm_repo baseurl=http://192.168.1.161/cm/ enabled=true gpgcheck=false
4.2.节点服务安装
-
①主节点安装daemon/server/agent/serverdb:
yum -y install lsb mod_ssl openssl-devel python-psycopg2 MySQL-python postgresql-server
rpm -ivh cloudera-manager-*.rpm -
②从节点安装daemon/agent:新建目录/opt/cm上传包和安装
yum -y install lsb mod_ssl openssl-devel python-psycopg2 MySQL-python postgresql-server
rpm -ivh cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm -
③从节点配置从节点agent指向:
修改/etc/cloudera-scm-agent/config.ini文件server_host=master
4.3.Auto-TLS(暂跳过)
4.4.主节点parcel仓库
- ①新建目录上传和改名:
mkdir -p /opt/cloudera/parcel-repo进入目录
mv CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256 CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha - ②查看manifest.json文件最后面el7对应版本hash值,替换sha文件中密钥:
echo 2e650f1f1ea020a3efc98a231b85c2df1a50b030 > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha - ③制作parcel仓库和软链接并查看:
createrepo .
ln -s /opt/cloudera/parcel-repo /var/www/html/
网页查看:http://192.168.1.161/parcel-repo/ 【浏览器无法访问可能http服务未开启】
4.5.设置cm数据库及报错处理
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h master -uroot -pFhzz123. --scm-host master scm scm Fhzz123. ##执行成功显示:
报错一:root权限问题
解决:grant all privileges on . to ‘root’@“master” Identified by “Fhzz123.” with grant option; flush privileges;
报错二:《3.5mysql新建库表和权限》提前建scm表,导致的异常
解决:删除表drop database scm;
4.6.启动scm服务
- ①主节点:systemctl restart cloudera-scm-server
查看启动日志:tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
【第一次启动要5分钟左右,看到下图后需观察2分钟看后续有无报错!】
停止服务:systemctl stop cloudera-scm-server
查看状态:systemctl status cloudera-scm-server - ②三个从节点:systemctl restart cloudera-scm-agent
查看启动日志:tailf /var/log/cloudera-scm-agent/cloudera-scm-agent.log
停止服务:systemctl stop cloudera-scm-agent
查看状态:systemctl status cloudera-scm-agent
未启动agent或启动失败,安装时有如下报错:
4.7.启动scm-server报错一
现象:java.net.UnknownHostException: archive.cloudera.com: 未知的名称或服务
原因:archive.cloudera.com主机名未配置
解决:systemctl stop cloudera-scm-server
修改/etc/hosts文件追加一行:127.0.0.1 archive.cloudera.com【不推荐,可忽略】
重启systemctl restart cloudera-scm-server
tailf /var/log/cloudera-scm-server/cloudera-scm-server.log
5.cdh集群安装
5.1.web登陆
网址http://192.168.1.161:7180 用户和密码:admin/admin
5.2.群集安装
全部清除后,可添加远程parcel-repo源:
5.3.群集设置
5.4.cm管理界面
5.5.补充安装sentry
https://www.cnblogs.com/xiaodf/p/5968248.html
http://www.aboutyun.com/thread-23816-1-1.html