在Cloudera Quickstart VM(5.10)中安装Spark 2.2失败,求可行步骤
我之前部署Cloudera Spark2的时候也踩过类似的坑,给你梳理下排查步骤和完整的Express安装流程:
一、先排查Cloudera SCM Server重启失败的原因
重启失败别慌,日志是最靠谱的排查工具,先去看Cloudera Manager Server的核心日志:
tail -n 100 /var/log/cloudera-scm-server/cloudera-scm-server.log
从日志里找ERROR或者FATAL级别的信息,大概率是下面几个常见问题:
1. Parcel文件放错了路径
你提到把.parcel文件放到了/opt/cloudera/csd/,但这个目录是放CSD(Custom Service Definition)服务定义文件(一般是.jar格式)的,而Parcel安装包应该放到/opt/cloudera/parcel-repo/目录下!
赶紧把.parcel文件移过去,同时要确保这个目录下还有对应的.sha校验文件(如果没有的话,手动生成或者从下载源获取),然后给目录和文件设置正确的权限:
mv /opt/cloudera/csd/SPARK2-2.1.0.cloudera2-1.cdh5.7.0.p0.171658-el5.parcel /opt/cloudera/parcel-repo/ chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/
2. 文件权限问题
如果路径没错,那可能是Cloudera SCM的运行用户(cloudera-scm)没有访问Parcel文件的权限,执行下面的命令修复权限:
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/SPARK2-2.1.0.cloudera2-1.cdh5.7.0.p0.171658-el5.parcel chmod 644 /opt/cloudera/parcel-repo/SPARK2-2.1.0.cloudera2-1.cdh5.7.0.p0.171658-el5.parcel
3. 依赖缺失
如果日志里提到缺少某个依赖包,比如Java或者其他系统库,先确认你的CDH集群已经安装了对应版本的依赖(Spark2 2.1.0对应CDH5.7.0,所以要确保集群是CDH5.7的基础环境)。
二、Cloudera Express完整安装步骤(单节点示例)
我之前搭过Express环境,按照这个步骤来基本没问题,前提是你的机器满足至少8GB内存、2个虚拟CPU的要求:
1. 前置环境准备
- 关闭防火墙和SELinux:
systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 设置主机名和hosts解析(确保机器能解析自己的主机名):
hostnamectl set-hostname cdh-node1 echo "192.168.1.100 cdh-node1" >> /etc/hosts
- 配置时间同步(避免集群时间不一致导致问题):
yum install -y ntp systemctl start ntpd && systemctl enable ntpd
2. 安装Cloudera Manager
- 先解压Cloudera Manager安装包(假设你已经下载好了):
tar -zxvf cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz -C /home/cloudera/
- 安装Cloudera Manager Server和Agent:
cd /home/cloudera/cloudera-manager/cm-5.7.0/etc/init.d/ ./cloudera-scm-server start ./cloudera-scm-agent start
3. 切换到Express模式
停止当前运行的Cloudera Manager服务,然后启动Express模式:
service cloudera-scm-server stop service cloudera-scm-agent stop sudo /home/cloudera/cloudera-manager --express
启动后,打开浏览器访问http://你的主机IP:7180,用默认账号admin/admin登录。
4. 部署Spark2 Parcel
- 把Spark2的.parcel和对应的.sha文件放到
/opt/cloudera/parcel-repo/,设置好权限(前面已经提过); - 登录Cloudera Manager web界面,进入主机 > Parcels,点击刷新 Parcels;
- 找到Spark2的Parcel,点击分配,分配完成后点击激活;
- 激活完成后,就可以在服务里添加Spark2 On Yarn服务了。
如果按照上面的步骤还是有问题,把cloudera-scm-server.log里的错误信息贴出来,能更精准地定位问题。
内容的提问来源于stack exchange,提问作者user3858193

