centos7 cdh manager5.14.2集群安装(完全离线)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014589856/article/details/80981001

最近因工作需要在一个完全离线的模式下安装一个CDH集群,在安装的过程中遇到许多问题,在此做个简单的记录。

首先在安装之前有几点问题需要注意

1建议使用root用户进行安装,因为在安装过程中CDH默认安装的时候,会创建各种用户,hdfs,hive,spark,impala,sqoop等等的用户,但往往我们在做一些操作的时候往往权限不够,导致各种各样的问题。我在尝试使用非root用户安装过程中没有成功。

2在使用root用户安装的过程中其实ssh免密并不是必须的。(我得到的权限只能使用sudo -s切换到root用户,实际测试没有完全切换到root用户环境不能配置ssh免密,但是并不影响后续正常运行)但是在安装过程中有些步骤有需要手动分发包的情况,只要能把包分发过去就行

3安装前需要配置本地ntp时钟同步

以下是实际安装步骤:

一、在主节点离线安装mysql

直接去官网下载mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar包进行安装:https://dev.mysql.com/downoads/mysql/

特别说明,我开始下载的是最新的mysql-8.0.11但是发现cdh似乎并不兼容最新的mysql会报错,不得不重新安装mysql-5.7.21。

1、首先删除系统中存在的mysql相关依赖

使用以下查询系统是否有相关依赖

rpm -qa | grep mariadb-libs

rpm -qa | grep  mysql

使用以下相关命令删除相关依赖

rpm -e mariadb-libs-1:5.5.56-2.el7.x86_64 --nodeps

2、解压mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar,里边有多个rpm包,直接依次安装,具体如下

rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

3、启动服务修改密码

1)启动服务

2)service mysqld start

3)查询初始密码

cat /var/log/mysqld.log |grep "passw"

如果无法查询到密码,也可以使用以下方式修改初始密码:

vim /etc/my.cnf

接下来加入一句代码即可空密码登录mysql:

# Disabling symbolic-links is recommended to prevent assorted security risks
skip-grant-tables     #添加这句话,这时候登入mysql就不需要密码
symbolic-links=0

service mysqld restart

4)修改密码和设置远程登录

 set global validate_password_policy=0;//修改密码安全策略

set global validate_password_length=1;//修改密码长度限制

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

FLUSH PRIVILEGES;

创建后续cdh manager可能会使用到的数据库,具体需要创建哪些和你选择安装的组件有关

#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#Oozie
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#hue

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

二、正式开始集群的安装

1、下载相关包

http://archive.cloudera.com/cdh5/parcels下载

manifest.json(该文件是集群版本验证文件,要和集群的实际版本一致)

CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel

CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1 

从http://archive.cloudera.com/cm5/cm/5下载cdh manager

cloudera-manager-centos7-cm5.14.2_x86_64.tar.gz

2、安装

首先确定一个安装的主节点,将上述包都传到该节点下。

1).首先将cloudera-manager-centos7-cm5.14.2_x86_64.tar.gz移动到/opt目录下,解压会得到cloudera 和cm-5.14.2 两个目录。

2).在主节点初始化CM5的数据库

 sudo /opt/cm-5.14.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm

3).修改/opt/cm-5.14.2/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名

4).上传mysql-connector-java-8.0.11.jar (从官网上驱动该驱动向前兼容,所以最新的驱动包也是可以用的)MySQL的驱动包到 /opt/cm-5.14.2/share/cmf/lib

后续初始化启动hive和oozie的时候发现会报错,排查之后发现是缺少mysql驱动,解决方式是:

cp /opt/cm-5.14.2/share/cmf/lib/mysql-connector-java-8.0.11.jar /opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/hive/lib
cp /opt/cm-5.14.2/share/cmf/lib/mysql-connector-java-8.0.11.jar /opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/oozie/lib
cp /opt/cm-5.14.2/share/cmf/lib/mysql-connector-java-8.0.11.jar /opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/oozie/libserver

cp /opt/cm-5.14.2/share/cmf/lib/mysql-connector-java-8.0.11.jar /opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/oozie/libtools

所以如果不怕多余,可以提前将mysql驱动jar包复制到相关目录下,该操作非必须

5).分发包

1>将/opc/cm-5.14.2目录打包分发到所有子节点上的/opt目录下

2>将从官网下载的CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel,CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1和manifest.json移动到/opt/cloudera/parcel-repo目录下

6).在所有节点创建cloudera-scm用户

sudo useradd --system --home=/opt/cm-5.14.2/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

7).启动cdh manager

在主节点启动cloudera-scm-server:

/opt/cm-5.14.2/etc/init.d/cloudera-scm-server start

在所有节点启动cloudera-scm-agent 

/opt/cm-5.14.2/etc/init.d/cloudera-scm-agent start

该步骤可能会出现以下问题:

1、无法请求manifest.json

java.util.concurrent.ExecutionException:java.net.ConnectException:Connectionrefused to https://archive.cloudera.com/cdh5/parcels/5.14/manifest.json

        at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:297)
        at com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:104)
        at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:399)

        at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:390)

该问题是因为我们的集群处于和外网隔绝的情况下,无法访问外网的该验证文件。我们可以在本地模拟该网址。

1) httpd安装 

yum install httpd 
2) 启动httpd服务 
service httpd start 
chkconfig httpd on 
3) 配置manifest.json的路径 
为/var/www/html授权 
chmod 775 /var/www/html/ 
在/var/www/html/下创建cdh5/parcels/5.14/ 
cd /var/www/html 
mkdir -p cdh5/parcels/5.14/ 
cd cdh5/parcels/5.14/ 
ln /opt/cloudera/parcel-repo/manifest.json manifest.json 
4)修改/etc/hosts文件 
echo “127.0.0.1 archive.cloudera.com” >>/etc/hosts 
配置完后测试一下 
curl archive.cloudera.com/cdh5/parcels/5.14/manifest.json 

如果打印出manifest.json文件的内容,那就是配置好了,就可以重启CDH了

2、jdk一直报错,无法查询jdk的位置。

为了解决该问题我做了以下尝试

1)/opt/cm-5.14.2/etc/default/cloudera-scm-server中追加JAVA_HOME

2)在环境变量中追加JAVA_HOME并设置PAHT

3)如果该问题还无法解决,我当时将jdk移动到cdh manager查询的默认路径/usr/java/jdk1.8.0_171

3、一些莫名其妙的权限问题,可能需要手动创建以下目录

mkdir -p /var/log/cloudera-scm-headlamp
mkdir -p /var/log/cloudera-scm-firehose
mkdir -p /var/log/cloudera-scm-alertpublisher
mkdir -p /var/log/cloudera-scm-eventserver
mkdir -p /var/lib/cloudera-scm-headlamp
mkdir -p /var/lib/cloudera-scm-firehose
mkdir -p /var/lib/cloudera-scm-alertpublisher
mkdir -p /var/lib/cloudera-scm-eventserver
mkdir -p /var/lib/cloudera-scm-server
mkdir -p /var/lib/cloudera-host-monitor
mkdir -p /var/lib/cloudera-service-monitor
mkdir -p /var/log/hive

chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-headlamp
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-firehose
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-alertpublisher
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-eventserver
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-headlamp
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-firehose
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-alertpublisher
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-eventserver
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor

chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor

如果经历以上步骤之后cdh manager正常启动,则可以访问http://主机IP:7180/cmf/home对集群组件进行配置和启动

参考文章:

CentOS7离线安装MySQL:https://www.cnblogs.com/Orange42/p/8432185.html

离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程:https://www.cnblogs.com/jasondan/p/4011153.html

猜你喜欢

转载自blog.csdn.net/u014589856/article/details/80981001