概述
CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
公司最近新搭建了一套CDH的集群,记录一下。
CM安装步骤
1. 下载资源
现在官网不让下了,后续有需要我把离线包传上来。
2. 安装依赖环境
2.1 安装JDK
官方推荐使用jdk_1.8.0_181,建议直接使用安装包里带的cloudera版本
2.2 MySQL
主节点安装MySQL
使用5.7版本
在MySQL中创建所需库
CDH元数据库用来管理元数据
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;
主节点安装MySQL数据库驱动
mkdir -p /usr/share/java/
重命名为不带版本号
cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
3. 各节点创建目录并解压
sudo mkdir /opt/cloudera-manager
sudo tar -zxvf cm6.3.1-redhat7.tar.gz -C /opt/cloudera-manager/
4. 主节点部署
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64
部署server服务
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
修改server配置
vim /etc/cloudera-scm-server/db.properties
配置数据库信息
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=noed1
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=123456
com.cloudera.cmf.db.setupType=EXTERNAL
5. 所有节点部署
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64
部署agent服务
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
所有节点修改agent的配置
指向server节点
sed -i "s/server_host=localhost/server_host=vplc01/g" /etc/cloudera-scm-agent/config.ini
6. 主节点部署parcel源
两种安装方法,一种是使用数据包,一种是使用httpd部署离线parcel源
使用数据包
复制 parcel 文件到 /opt/cloudera/parcel-repo 目录
cp CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /opt/cloudera/parcel-repo
离线parcel源
安装httpd服务
yum install -y httpd
部署离线parcel源
mkdir -p /var/www/html/cdh6_parcel
cp CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/cdh6_parcel/
cp CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha /var/www/html/cdh6_parcel/
cp manifest.json /var/www/html/cdh6_parcel/
注意:
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1
要改名为CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
启动httpd
systemctl start httpd
浏览器访问测试
http://172.16.5.90/cdh6_parcel/
7. 启动服务
启动server服务
启动服务
systemctl start cloudera-scm-server
查看日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
出现7180端口,表示成功
启动agent服务
所有节点启动agent服务
sudo systemctl restart cloudera-scm-agent
8. 访问主节点7180端口登录
admin/admin
9.安装集群
登录后安装提示一步一步走即可。
到选择存储库
这一步时,需要将Parcel地址更改为本地搭建的Parcel源
等待安装完成即可。
此次若出现“主机运行状况不良”,说明之前有过安装失败的情况。
解决方法:
删除有问题节点下的
/var/lib/cloudera-scm-agent/cm_guid
文件,然后重启agent
Q&A
1.找不到JDK
问题描述
clouderamanager-server启动时会报类似于以下的错误:
| Error: Unable to find a compatible version of Java on this host, |
| either because JAVA_HOME has not been set or because a |
| compatible version of Java is not installed. |
±---------------------------------------------------------------------+
| Please install either: |
| - a supported version of the Oracle JDK from the Oracle Java web |
| site: |
| > http://www.oracle.com/technetwork/java/javase/index.html < |
| OR |
| - a supported version of the OpenJDK from your OS vendor. Help for |
| some OSes are available at: |
| > http://openjdk.java.net/install/ < |
| |
| Cloudera Manager requires Oracle JDK or OpenJDK 1.8 or later. |
| NOTE: Cloudera Manager will find the Oracle JDK when starting, |
| regardless of whether you installed the JDK using a binary |
| installer or the RPM-based installer. |
解决方案
对于以上问题,是CM对当前JDK不支持,或者找不到JAVA_HOME环境变量。
- 确认jdk版本
通过官方文档我们得知,CM6.3.1版本推荐使用jdk_1.8.0_181版本,查看本地版本是否正确。
- 确认jdk安装路径
CM会去/usr/java
目录下加载jdk,对于使用yum/rpm安装的jdk,/usr/java
是默认路径,不会有问题。但对于使用二进制文件手动安装的jdk,可能不在这个路径下,解决方法是使用软连接将java路径连接到/usr/java
下。
ln /export/jdk_1.8.0_131/ /usr/java/
注: 如果没有/usr/java
这个路径,可以手动创建,但要注意目录权限,要设置为755或更高。
2.找不到mysql驱动
问题描述
CM-server启动失败,查看日志发现找不到MySQL驱动。
JDBC driver cannot be found. Unable to find the JDBC database jar on host
解决方案
MySQL驱动jar包要放在/usr/share/java
目录下,并将jar包重命名,去掉版本号。
mv mysql-connector-java-5.1.33-bin.jar mysql-connector-java.jar
然后注意/usr/share/java
各级目录的权限,注意每一级目录是否都是755或以上的权限,否则权限不足也是会报cannot be found的。
3.agent启动时报错No supervisor config present
问题描述
在agent启动失败,报错:
MainThread supervisor ERROR Failed! trying again in 2 second(s): No supervisor config present
解决方案
通过ps -ef | grep supervisord
查找supervisord进程,找到/usr/bin/python2 /opt/cloudera/cm-agent/bin/../bin/supervisord -n
进程号,通过kill -9 进程号
杀死进程后,重启agent:systemctl restart cloudera-scm-agent
。