离线安装部署CDH6.3.2集群
今天用虚拟机离线安装CDH6集群,现在CDP7已经出了,但没有社区版了,CDP7装起来只能用个60天,相比于CDH6的组件只有hive和spark进行了大版本更新以及加入几个新的组件,所以这里还是装CDH6,主要还是因为好久以前就下好了parcel包。。。
目录
今天用虚拟机离线安装CDH6集群,现在CDP7已经出了,但没有社区版了,CDP7装起来只能用个60天,相比于CDH6的组件只有hive和spark进行了大版本更新以及加入几个新的组件,所以这里还是装CDH6,主要还是因为好久以前就下好了parcel包。。。
准备工作
下载地址:
CM:https://archive.cloudera.com/cm6/6.3.1/repo-as-tarball/
下载 cm6.3.1-redhat7.tar.gz
CDH:https://archive.cloudera.com/cdh6/6.3.2/parcels/
下载 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel 和 manifest.json
除此之外下面四个步骤也是要准备的:
三台虚拟机(略)
主节点安装MySQL5.7以及准备MYSQL5的connector jar包(略)
所有节点安装JDK1.8(略)
虚拟机互相免密登录且hosts中有彼此的域名(略)
虚拟机渣配置如下:
HostName | IP | cpu | memory | disk | 角色 | 系统 |
---|---|---|---|---|---|---|
node01 | 192.168.142.91 | 2 | 4G | 40 | server(主) | CentOS7 |
node02 | 192.168.142.92 | 2 | 2G | 40 | agent(从) | CentOS7 |
node03 | 192.168.142.93 | 2 | 2G | 40 | agent(从) | CentOS7 |
安装
关闭防火墙
每个节点上执行
systemctl stop firewalld && systemctl disable firewalld && iptables -F
#关闭集群selinux,修改成disabled之后 重启linux系统生效
vi /etc/selinux/config
SELINUX=disabled
时钟同步
#所有节点设置亚洲上海时区(三台都需要执行)
timedatectl set-timezone Asia/Shanghai
#所有节点安装ntp
yum install -y ntp
# 主节点
vi /etc/ntp.conf
#添加下面的内容
server 127.127.1.0 iburst local clock
restrict 192.168.142.0 mask 255.255.255.0 nomodify notrap
#然后主节点执行
systemctl start ntpd
systemctl status ntpd
ntpq -p
# 从节点
systemctl stop ntpd
systemctl disable ntpd
ntpdate node01
crontab -e
#添加下面的内容
# 分 时 日 月 周,每天00:00执行该脚本
00 00 * * * /usr/sbin/ntpdate cdh-server01
数据库准备
在准备好的mysql5数据上执行下面的内容:
create database cmf DEFAULT CHARACTER SET utf8;
create database amon DEFAULT CHARACTER SET utf8;
grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
flush privileges;
主节点部署JDBC
将提前准备好的mysql jar包上传到主节点并进行下面的操作
mkdir -p /usr/share/java
cp mysql-connector-java-5.1.47.jar /usr/share/java/
cd /usr/share/java/
mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar
安装CM
1. 上传并解压CM:
mkdir /opt/cloudera-manager
tar -zxf cm6.3.1-redhat7.tar.gz -C /opt/cloudera-manager
2. 在node01节点上安装cm server服务:
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
3. 在所有节点上安装cm agent服务:
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force #[主节点在上面执行过这句所以就不用重复执行了]
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
4. 所有节点上修改cm agent的配置,指向server节点为node01:
sed -i "s/server_host=localhost/server_host=node01/g" /etc/cloudera-scm-agent/config.ini
5. 修改node01主节点的cm server配置:
vim /etc/cloudera-scm-server/db.properties
-------------------------------------------------
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=node01
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=123456
com.cloudera.cmf.db.setupType=EXTERNAL
6. 启动cm server和cm agent:
#主节点启动server
systemctl restart cloudera-scm-server
#查看server运行状态
service cloudera-scm-server status
#查看server日志
tail /var/log/cloudera-scm-server/cloudera-scm-server.log
#所有节点启动agent
systemctl restart cloudera-scm-agent
#查看agent运行状态
service cloudera-scm-agent status
#查看agent日志
/var/log/cloudera-scm-agent/cloudera-scm-agent.log
错误解决:
(1). agent日志报错:
ERROR Error, CM server guid updated, expected 7cda865f-a833-40d1-9fa6-761631c74326, received e2678b78-7c5e-4703-91b6-c52e2875988c
解决办法: 产生的原因是服务器以前作为集群节点安装过agent服务,再次使用时没有卸载干净,配置中记录着之前用的uuid,将cm_guid目录删掉即可。
rm -rf /var/lib/cloudera-scm-agent/cm_guid
service cloudera-scm-agent restart
(2). server日志报错:
ERROR avro-servlet-hb-processor-0:com.cloudera.server.cmf.AgentProtocolImpl: Dropped heartbeat from a known host node91 with bad incoming host name node92 since 2020-09-02T05:38:27.024Z.
解决办法:将对应机器上的agent服务删掉,并且删除所有残留文件(必须要删残留文件)重新安装即可。
yum remove cloudera-manager-agent-6.3.1-1466458.el7.x86_64
find / -name cloudera-scm-agent
rm -rf /etc/cloudera-scm-agent
rm -rf /var/lib/cloudera-scm-agent
rm -rf /var/log/cloudera-scm-agent
#重新安装启动agent
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
sed -i "s/server_host=localhost/server_host=node01/g" /etc/cloudera-scm-agent/config.ini
systemctl restart cloudera-scm-agent
service cloudera-scm-agent status
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
(3). agent日志启动报错:
error: [Errno 111] Connection refused
ps -ef | grep supervisord
kill -9 该进程ID
启动完成后应该可以打开CM页面了,默认密码为admin/admin,地址为:http://node01:7180
7. 部署离线parcel源
CM先不管,我们既然要离线安装CDH,这时候parcel包该派上用场了吧,利用httpd将parcel放在上面由CM安装。
#安装httpd
yum install -y httpd
#部署离线parcel源
mkdir -p /var/www/html/cdh6_parcel
#将parcel包放在httpd的目录下
cp cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/cdh6_parcel/
mv cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH-6.3.1
mv cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
mv cdh/manifest.json /var/www/html/cdh6_parcel/
#启动httpd服务
systemctl start httpd
启动后可以在浏览器访问 http://node01/cdh6_parcel/
看到下面的内容表示成功部署parcel离线源
安装CDH
回到CM页面:
(1). 使用admin/admin登录CM,这里肯定是选择社区版:
(2). 选择所有主机,如果agent有问题的话这里是看不到那个机器的,必须要解决agent之后再来添加主机:
(3). 选择我们的离线parcel源,点击更多选项,将apache的那些都删掉,添加一个我们刚刚的源 http://node01/cdh6_parcel/ (注意这里是http不是https):
(4). 点击“继续”,等待解压,这一步很漫长需要静心等待。
这一步如果出现主机运行状态不良。
解决办法:
进入 /var/lib/cloudera-scm-agent下,把cm_guid文件 删除。然后重启代理服务节点
命令: service cloudera-scm-agent restart
重启之后 cloudera manager 等待片刻自动安装
(5). 检查集群,有问题就解决,没问题就下一步,或者点最后一项忽略风险。
(6). 选择安装的组件,CDH给提供了几个类型,可以按需选择,我这里是自定义的。
(7). 选择每个机器上的角色,默认了。
(8). 数据库配置,有些数据库在前面已经配置好了,直接填上就行,有的组件需要新增数据库,也需要在mysql端新增库和用户:
(9). 审核更改,配置全部默认了,下一步。
(10). 最后一步,等待安装完成即可。
尾巴
我的虚拟机配置太低了,内存和CPU都吃紧,安装不成功,我直接放弃,自己玩玩还是用apache的得了。
希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!
更多推荐
所有评论(0)