1. 准备集群
本文档使用的是三台虚拟机,IP和主机名自行修改,三台虚拟机需要能联网,并且能够免密登录,这些网上都能找到详细的教程,有问题也可以底部留言交流。
ip | 名称 | 内存 |
---|---|---|
xxx.xx.x.169 | node169 | 16G |
xxx.xx.x.170 | node170 | 16G |
xxx.xx.x.171 | node171 | 16G |
2.安装JDK(3台)
百度网盘 链接:https://pan.baidu.com/s/1eR-ZAZNLBZwSLgUSmmlfEQ
提取码:95yu
2.1 创建目录:mkdir /software/
2.2 将上面下载的JDK压缩包放入该目录下
2.3 解压:tar -zxvf jdk-8u131-linux-x64.tar.gz
2.4 将文件夹名称修改为:jdk1.8
2.5 修改系统配置:vi /etc/profile 添加如下配置
2.6 刷新系统配置:source /etc/profile
2.7 查看是否成功 javac -version java -version
3.安装NTP(3台)
3.1 yum install -y ntp
3.2 修改主节点的ntp.conf 配置文件,添加红框的内容
vi /etc/ntp.conf
3.3 三个节点修改:vi /etc/sysconfig/ntpd,加上 SYNC_CLOCK=yes
3.4 启动ntp 服务
systemctl start ntpd.service
systemctl enable ntpd.service
systemctl status ntpd.service
sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
5. 安装httpd
yum -y install httpd
systemctl start httpd
systemctl status httpd
直接用ip地址登录,验证一下,出现下面这个页面即为安装成功
6.下载第三方依赖包
yum -y install bind-utils
yum -y install chkconfig
yum -y install cyrus-sasl-gssapi
yum -y install cyrus-sasl-plain
yum -y install fuse
yum -y install fuse-libs
yum -y install gcc
yum -y install libxslt
yum -y install mod_ssl
yum -y install MySQL-python
yum -y install openssl
yum -y install openssl-devel
yum -y install perl
yum -y install portmap
yum -y install postgresql-server
yum -y install psmisc
yum -y install python-devel
yum -y install python-psycopg2
yum -y install python-setuptools
yum -y install sed
yum -y install sqlite
yum -y install swig
yum -y install zlib
7.安装Mysql
7.1 首先查看自己的集群中是否安装了mysql数据库
rpm -qa | grep mysql
如果安装了,可以通过 yum -y remove mysql
进行卸载(这里的mysql就是上面命令的运行结果)
7.2 Mysql5.7的rpm包下载地址(阿里云盘速度更快哦):
阿里云盘:https://www.aliyundrive.com/s/p8H3DCYK6Uf
百度网盘:https://pan.baidu.com/s/1NFSrYgeYpHKJMGlss2XiFA
提取码:zo2o
下载完成后上传至主机对应位置
7.3 依次执行以下6个命令进行安装
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm --nodeps --force
7.4 启动mysql
systemctl start mysqld
7.5 设置mysql开机自启
systemctl enable mysqld
7.6 安装成功后,首先将数据库设置成无密码状态,修改配置
vi /etc/my.cnf
添加 skip-grant-tables 可保证为无密码状态
7.7 重启mysql服务器,使配置生效
systemctl restart mysqld
7.8 进入数据库
mysql -u root -p
按enter 键进入,使用mysql数据库
7.9 修改mysql的登录密码为:123456
update user set authentication_string=password("123456") where user='root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
就执行以下命令:
mysql> set global validate_password_policy =0;
Query OK, 0 rows affected (0.04 sec)
mysql> set global validate_password_length = 6;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
7.10 创建相关数据库
create database cmf default character set = 'utf8';
create database amon default character set = 'utf8';
create database hue default character set = 'utf8';
create database oozie default character set = 'utf8';
7.11 对数据库进行授权
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
7.12 设置允许外网访问mysql
之前上面的步骤关闭了防火墙,先打开
systemctl start firewalld
firewall-cmd --list-all
查看3306端口是否开放:firewall-cmd --query-port=3306/tcp
no表示未开放,我们需要开放3306端口:firewall-cmd --permanent --add-port=3306/tcp
,重启防火墙: systemctl restart firewalld
再次查看3306端口是否开放:firewall-cmd --query-port=3306/tcp
、firewall-cmd --list-all
7.13 上传mysql-connector-java-5.1.39 jar包
阿里云盘:https://www.aliyundrive.com/s/aLXcNfH6rZq
百度网盘:https://pan.baidu.com/s/1aV3_jmS6Souc0JUxPnG1Kg
提取码:a7zb
在三台虚拟机执行以下命令:
8.CM组件安装
阿里云盘:https://www.aliyundrive.com/s/HhwYhr3WFMH
百度网盘:https://pan.baidu.com/s/1S_vyC4NLzue2Oj1JT2rd7Q
提取码:tgv2
8.1 node169 上传全部的包,node170、node171 集群只上传 agent 和 daemons 的rpm包
8.2 node169执行
yum install -y cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
yum localinstall -y cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
yum localinstall -y cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
node170、node171执行
yum localinstall -y cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
yum localinstall -y cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
9. 安装CDH6.2.0
9.1 下载安装包并上传安装包至主节点node169
百度网盘(阿里云盘限制了文件类型…)
链接:https://pan.baidu.com/s/1S1CawZa6I6lZnteuORVjwg
提取码:uy4k
9.2 将上传的资源移动到相应的目录下
mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel* /opt/cloudera/parcel-repo/
mv PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel* /opt/cloudera/parcel-repo/
mv manifest.json /opt/cloudera/parcel-repo/
mv PHOENIX-1.0.jar /opt/cloudera/csd/
进入到/opt/cloudera/parcel-repo/ 目录下,验证文件上传是否正确
两次的值都一样说明上传正确
9.3 node169修改配置文件,下面红框位置的内容
vi /etc/cloudera-scm-server/db.properties
9.4 node169、node170、node171修改配置文件,下面红框位置的内容(node170和node171上面的server_host也是node169)
vi /etc/cloudera-scm-agent/config.ini
systemctl stop firewalld
systemctl disable firewalld
10.2 在node169上启动server和agent
systemctl start cloudera-scm-server
systemctl start cloudera-scm-agent
查看server日志有没有报错
tail -200f /var/log/cloudera-scm-server/cloudera-scm-server.log
如果报错如下:
而且没有任何更多的日志,包括/var/log/cloudera-scm-server/目录也没有任何文件,可以通过 命令journalctl -xe 查找报错日志,如果提示JAVA_HOME找不到的话,使用下面的命令即可:
mkdir -p /usr/java
ln -s /software/jdk1.8/ /usr/java/default
再执行 systemctl start cloudera-scm-server
重新启动。
10.3 在node170和node171上启动agent
systemctl start cloudera-scm-agent
11. 开始安装CDH集群
输入IP:7180登录页面,用户名密码都是 admin
点击继续
选择第一个,点击继续
点击继续
给集群起个名称,点击继续
选择当前管理的主机,三台都勾选
一直下一步,这里选择自定义服务
先安装一个zookeeper
Activity Monitor 选择的是node169节点,server 三个节点都选上
数据库之前是装在node169上,数据库选择amon,用户名root,密码123456,选择测试连接,通过后一直点击下一步,直到完成。
至此,CDH集群就已安装成功,这里再提供一个安装Hive的例子:
选择Hive,点击继续
HiveServer2选择三个节点,点击继续
数据库选择hive,测试连接,通过后点击继续
不用修改,点击继续,等待添加完成
其他服务根据需要自行添加即可,如有疑问,欢迎评论区交流。