离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

     今天介绍一下:在linux系统下,如何通过CDH搭建集群.

1.1Cloudera Manager简介

 

Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,

运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

Cloudera Manager有四大功能:
   (1)管理:对集群进行管理,如添加、删除节点等操作。
   (2)监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。
   (3)诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。
  (4)集成:对hadoop的多组件进行整合

1.2 CDH简介

 

CDH全称 Cloudera's Distribution, including Apache Hadoop

• 是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建

• 提供了Hadoop的核心
– 可扩展存储
– 分布式计算
• 基于Web的用户界面

 

1.3 系统环境

1)操作环境:linux系统,CentOS 6.5 x64

2)所需软件:ClouderaManager版本5.7.5

下载地址:http://archive.cloudera.com/cm5/cm/5/

             CDH版本:5.7.5

3)安装方式:

方共给出了3种安装方式:

第一种要求所有机器都能连网,但是由于连接的是外网~~你们懂得,问题很多,成功安装记录很低

第二种需要下载很多包。

第三种离线安装    该方法对系统侵入性最小,最大优点可实现全离线安装,而且重装非常方便。后期的集群统一包升级也非常好。

基于以上原因,我们选择第三种安装方式

1.4 用户配置

   Linux系统对于用户的权限管控是很严格管理员root用户具有最大的权限,为了保障系统稳定性和减少误操作而导致系统奔溃的问题,root用户一般不作为常规的用户。

因此对于cdh平台的搭建,我们需要单独创建用户,可以方便权限的管控

      这里我们创建用户:hmaster密码:matercom168

1.5网络配置

  1)修改主机名:

假定我们发现我们的机器的主机名不是我们想要的,通过对"/etc/sysconfig/network"文件修改其中"HOSTNAME"后面的值,改成我们规划的名称。

输入命令:# vi /etc/sysconfig/network 将主机名修改为:gp-master

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

从节点的名字:从go-node01开始类推。

通过service network restart使之生效。

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

2)修改ip地址

使用 ifconfig命令查看本机的ip地址,如果和理想的有出入,就要重新设置本机的ip地址

使用 vi /etc/sysconfig/network-scripts/ifcfg-eth0 命令对ip地址进行修改

 

3)在/etc/hosts文件里配置集群里的所有节点的ip地址和主机名

   输入命令:# vi /etc/hosts 配置好集群里的所有节点的ip地址和主机名

注意:本机的也要写进去!

192.168.137.128 gp-master

192.168.137.129 gp-node01

   

1.6 配置ssh免密登录

通过ssh免密登录,我们在集群的各个节点之间进行操作不必频繁的输入密码,会很大程度的提供开发的效率。

首先,通过ssh-****** -t rsa生成无密码的**对,期间连续按3次回车,结果如下:

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

将公钥添加到认证文件中,cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 

并设置authorized_keys的访问权限:# chmod 600 ~/.ssh/authorized_keys

 

将集群里其他节点的公钥追加到主节点,主节点在使用scp命令同步到每一个节点上。

 

在主节点上使用命令ssh gp-node02,无需输入密码成功进入名称节点。

使用ifconfig命令查看当前ip,显示如下:

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

说明免密登录配置成功。

 

 

 

1.7 配置java环境变量

1)安装jdk

在官网上下载好jdk之后,通过软件,FileZilla将压缩包拖放usr/local/java目录下,如果没有java目录,就使用 mkdir java命令在usr/local目录下创建java

使用命令tar -zxvf jdk7u79linuxx64.tar.gz解压

 

2)配置环境变量主要有两种方式:

一种是通过vi /etc/profile,这种方式是对所有用户生效,并且具有最高的优先级

另一种是通过vi .bash_profile,这种方式是只对当前用户(我们这里的用户是hmaster)

执行以下命令:

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

在这里我采用的是第一种方式:

在原配置文件添加:

# set java environment

export JAVA_HOME=/usr/local/java/jdk1.7.0_79  

export JRE_HOME=/usr/local/java/jdk1.7.0_79/jre  

export PATH=$PATH:/usr/local/java/jdk1.7.0_79/bin 

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结 

 

3)使配置生效并进行验证

更改完之后,使用source /etc/profile保存配置

之后输入  java -version查看当前版本,出现如下证明:环境变量配置成功.

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

 1.8 关闭防火墙

防火墙不关掉的话在之后的过程中会出现一些莫名其妙的问题,因此我们提前将防火墙关闭以绝后患。

首先使用service iptables stop临时关闭防火墙,这种方式重启后防火墙会生效

接下来使用 chkconfig iptables off命令永久关闭防火墙

以上两个命令执行完毕后使用查看防火墙状态service iptables status

显示如下:证明防火墙已经关闭。

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

1.9安装MySql

使用命令 # rpm -pa | grep mysql 查看本机是否安装MySql,

如果已经安装使用命令rpm -ev mysql文件名--nodeps删除。

使用yum命令安装mysql:yum install mysql

 

选中的版本为我们所需要的。

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

使用 yum install mysql-server.x86_64安装需要的mysql

使用chkconfig mysqld on设置为开机启动,service mysqld start启动MySql服务

按照如下截图所示的命令mysqladmin -u root password 'mastercom168'

设置密码,我设置的是mastercom168

之后输入用户名和密码  mysql -uroot -pmastercom168

,进入到MySql服务,MySql安装完成。

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

接下来创建我们所需要的数据库

#hive  hive数据库

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

#activity monitor

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

设置root授权访问以上所有的数据库:

#授权root用户在主节点拥有所有数据库的访问权限

grant all privileges on *.* to 'root'@'gp-master' identified by 'mastercom168' with grant option;

flush privileges;

 

1.10所有的节点配置时间同步服务

集群中所有主机必须保持时间同步,如果时间差距过大,回引起各种问题。

在主节点和从节点输入date,可以看到,我的集群里各个节点之间的时间是同步的。

  离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

我这里就不用配置时间同步。

 

附:时间同步的配置方法:

如果各个主机上的时间不同步或者存在较大差异时,需要配置时间同步。

将gp-master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。

所有datanode节点以master节点为基础同步时间。

所有节点安装相关组件:yum install ntp。

完成后,配置开机启动:chkconfig ntpd on

检查是否设置成功:chkconfig --list ntpd

其中2-5为on状态就代表成功。

 

主节点配置

在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntp不能正常同步。这里选用主节点作为对时中心ntpdate -u 192.168.137.128。

 

ntp服务只有一个配置文件,/etc/ntp.conf,适当修改该文件即可

这里只给出有用的配置,其余的配置都用#注掉,这里就不在给出:

driftfile /var/lib/ntp/drift

restrict default nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict ::1

server gp-master #(主机名或ip)

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

disable monitor

配置文件完成,保存退出。

启动服务,执行如下命令:service ntpd start

检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:

 

如果出现异常请稍等片刻。

 

配置ntp客户端(所有datanode节点):同主节点。

ok保存退出。

请求服务器前,先使用ntpdate手动同步一下时间:

ntpdate -u gp-master(主节点ntp服务器)

 

这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步。

启动服务:service ntpd start

如此,时间同步配置完成。

2Cloudera Manager服务配置

有了上述的准备工作之后,接下来可以正式开始集群的安装。

以上的准备工作的细节必须注意!

哪一点没有注意到都会导致之后的安装失败!

 

2.1安装Cloudera Manager Server和Agent

主节点解压安装cloudera manager的目录默认位置在/opt下,解压:tar -zxvf cloudera-manager*.tar.gz

我们将解压后的cm-5.7.5和cloudera目录放到/opt目录下。

2.2 为Cloudera Manager建立数据库

首先需要去MySql的官网下载JDBC,http://dev.mysql.com/downloads/connector/j/

 

解压后,找到mysql-connector-java-5.1.45-bin.jar,

放到/opt/cm-5.7.5/share/cmf/lib/中。

在主节点初始化CM5的数据库:

执行命令:/opt/cm-5.7.5/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pmastercom168 --scm-host localhost scm scm scm

2.3 Agent配置

修改/opt/cm-5.7.5/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。gp-master

同步Agent到其他节点:

scp -r /opt/cm-5.7.5 [email protected]:/opt/

在所有节点创建cloudera-scm用户:

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

 

准备Parcels,用以安装CDH5

   

2.4 配置Parcel

将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中。

 

相关的文件如下:

 

CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel

CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1

manifest.json

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

最后将CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1,重命名为CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha使用命令:

 mv CDH-5.7.5-1.cdh5.7.5.p0.3-el6.parcel.sha1 CDH-5.7.5-1.cdh5.7.5.p0.3-el6.parcel.sha

 

这点必须注意,否则,系统会重新下载CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel文件。

 

启动相关脚本主节点的Service和Agent,其余节点的Agent.

 

主节点通过/opt/cm-5.7.5/etc/init.d/cloudera-scm-server start启动服务端。

 

所有节点通过/opt/cm-5.7.5/etc/init.d/cloudera-scm-agent start启动Agent服务。

 

我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。

输入命令 lsof -i :7180检测7180端口的状态:

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

上面的结果说明,7180端口已经启动,我们就可以通过界面监控集群了

2.5 启动及验证

上面的主节点的service和所有节点的agent全部成功启动之后,

就可以通过浏览器输入主节点的ip:7180进入cloudera manager界面进行操作

如图,输入:192.168.137.128:7180进入界面

(service刚刚启动,可能不能马上进入界面,稍等一下即可)。

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

默认的账户名和密码都是admin.

输入 admin

     admin

点击登录,完成登录操作。

 

 

 

3CDH集群安装

根据界面上的提示进行CDH集群的安装

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

3.1 为CDH集群安装指定主机

 

在是的,我接受最终用户许可条款和条件点击一下,

点击继续进行下一步。

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

接下来要为cdh群集安装指定主机。

注意要选择当前管理的主机(点击新主机旁边的位置)!

将集群里所有的节点全部选上!!

如果有哪个应该出现的节点没有出现,

就说明该节点的agent启动出现了问题。

就去它的agent日志文件下面排查问题。

agent日志文件存放在:/opt/cm-5.7.5/log/cloudera-scm-agent目录下

 文件名是: cloudera-scm-agent.log

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

点击使用Parcel,进行路径的设置

这个路径很关键,如果设置有问题的话就会进行在线安装,不仅耗时,还会出现各种各样的问题!

如果你将cm的安装包放在了opt包下面,前面两个的路径就沿用默认的配置!

如果使用的是自定义路径,就将opt替换为实际的路径!

选择安装版本,这里我使用的是CDH5.7.5

剩下的使用默认的选项即可。

 

 

 

3.2 检查主机的正确性

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

点击继续进行下一步,检查主机的正确性

这里,有问题的话要解决问题。

这里验证全部正确,却提示了两个警告。

这两个警告如果不处理可能对我们的集群产生影响。

 

第一个警告的处理方式,执行echo 0 > /proc/sys/vm/swappiness命令

将该环境变量临时设置为0

对于第二个警告:使用命令:

echo never > /sys/kernel/mm/transparent_hugepage/defrag

并且修改文件   vi /etc/rc.local

在文件的末尾加上该命令:

echo never > /sys/kernel/mm/transparent_hugepage/defrag

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

 

 

拖到该界面的下面,我们看到:这是Cloudera Manager下对应的各种软件的版本

可以看到,我们关注的几个软件:

Hadoop是2.6.0,Spark是1.6.0

Hbase是1.2.0,Hive是1.1.0

都是我们熟悉的版本。

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

点击完成。

 

3.3 集群设置

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

接下来开始进行集群的设置,选择需要安装的CDH5服务,这里,我选择安装全部。即点击

所有服务。

可以根据实际需要选择自定义服务,选择自己所需要的组件进行安装。

建议不要像我这么选,先只安装核心组件,这样会增加安装成功几率,后面需要什么在安装什么也是可以的.

 

 

3.4自定义角色分配

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

自定义各个组件的分配。确定某个组件安装在集群的哪个节点上。

这里,全部根据默认配置搭配即可。

 

 

 

3.5数据库检测

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

这里,就用到了文档开始时安装MySql时我们创建的两个数据库。

一个是amon,一个是hive

用户名均为root ,密码均为mastercom168。

输入结束后,点击测试连接检验数据库。

如图,两个数据库连接均提示Successful。这是,可以点击继续进行下一步。

 

3.6目录设置

 

这一步,我们主要配置各个组件的一些重要属性,及其数据的存储目录,总结如下:

HDFS的根目录,          存在/hbase路径下

DataNode数据目录,       存在/dfs/dn目录下

HDFS检查点目录,         存在/dfs/snn目录下

NameNode数据目录,      存在/dfs/nn目录下

Hive仓库目录,            存在/usr/hive/warehouse

Hive Metastore服务器端口:   9083

Impala Daemon暂存目录:   /impala/impalad

HDFS数据目录:   /solr

NodeManager本地目录:   /yarn/nm

数据目录:   /var/lib/zookeeper

事务日志目录:   /var/lib/zookeeper

 

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

 

 

 

 

3.7组件首次运行

集群里配置好的组件进行首次运行操作!

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

全部运行成功后点击完成即可!

之后就可以通过界面管理集群啦!

4通过界面管理集群

 

4.1 群集

 

 

主要包括3个部分:Cluster 1 

服务(集群里面安装的各种组件)

Cloudera Management Service

点进某个板块,点击板块右上角的操作,可以对集群的某个组件进行操作:

主要包括,启动,停止,重启,等

在配置下,可以完成对一些服务,和关键目录,属性等的配置。

在状态下,可以完成对某个组件状态的监控。

还可以以图表这种更直观的形式显示集群的运行状况。

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

4.2 主机

 

主机目录下主要包括:所有主机,角色,主机模型,磁盘概述,Parcel等几个模块

我们可以直观的了解到主机的各种信息以及主机的运行状态。

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

4.3 诊断

 

诊断界面主要包括事件,日志,服务器日志等信息。

事件:可以通过指定的内容(组件)和关键词来查看你想了解的信息

通过对日志,和服务器日志的查看和分析,可以更加直观方便的定位问题并解决问题

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

 

4.4 审核

主要记录服务器开启关闭,以及用户的登录信息

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

4.5 图表

 

包括:图表生成器,新仪表板,管理仪表板

图表生成器:通过输入查询来构建图表,可以根据实际需要选择各种类型的图表。

 

新仪表板:

 

管理仪表板:包括创建仪表板和导入仪表板

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

5.6 管理

 

管理界面包括:设置,警报,用户,安全,许可证,语言

对语言,用户,安全等信息进行管理,并对集群的关键性信息进行设置。

 离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

5、常见问题FAQ

下面是在集群安装的时候遇到的一些问题及解决方法:

5.1 service启动成功,agent无法启动

在cm-5.7.5下面的/etc/init.d目录下

执行./cloudera-scm-agent start 提示如下:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

解决办法:

首先去log目录下查看agent里面的日志,发现如下信息:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

首先考虑到这有可能是windows和linux的换行符不一致,导致文件无法识别,

即可能多了\r换行符,所以会产生没有那个文件或目录的问题。

出错的文件是 /usr/bin/env,我们可以查看该文件,使用命令

vi /usr/bin/env

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

输入 set ff查看到: ,证明文件是unix格式

这说明了不是由于换行符问题导致的。

 

注意到问题是和python2.6相关的

接下来开始查看python版本,

使用hmaster账户,输入python看到python版本为:2.7.5

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

但是在公司里其余节点,运行python命令查看python版本,可以看到版本是2.62

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

使用which python命令:查看到如下结果:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

这个是python2.7.5版本

同一个节点下切换为gpadmin用户,使用witch python命令:结果如下:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

这个是python2.6.2版本

可以考虑建立一个软链接,当访问2.7.5的python版本时,指向python2.6.2版本

但是python2.6.2版本的目录是归属于gpadmin用户的,hmaster没有足够的权限,需要在不破坏gpadmin权限的情况下赋予hmaster足够的权限。

 

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

无奈之下,只好重新下载一个python2.6版本。

 

python2.6的安装 1.下载Python2.6.X 版本的源码包,这里采用平台编译安装。 Python-2.6tar.bz2 2.解压缩 ,使用如下命令解压bigz2类型的压缩文件 tar -jxvf Python-2.6tar.bz2 cd Python-2.6 3. 配置编译参数 注意: 加上 –enable-shared 参数,否则不会生成libpython2.6.so.1.0的动态链接库,不加默认生成libpython2.6.so.a的静态链接库 ./configure –enable-shared 4. 编译 make 5. 安装(需高权账号,具有/usr/local的写权限) make install 6.检查 输入python 命令

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

正常进入 python 2.6 的shell脚本

之后继续运行agent,依旧失败,

去日志里面查看文件,此时的问题变为:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

 

于是我们可以建立一个软链接 指向刚刚安装好的python目录(下面的python)指向 usr/local/python2.6.4

该问题得到解决,继续启动agent,遇到的问题是:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

去python的安装目录下查看,发现并没有lib目录,也就没有libpython2.6.so.1.0这个文件这是由于安装python没有成功的生成动态库所导致的,

解决方法:

1. 可以使用如下方式编译Python以解决这个问题:

./configure --enable-shared --prefix=/usr/local/python2.6

make && make install

2. cp /usr/local/python2.6/lib/libpython2.6.so.1.0 /usr/local/lib

cd /usr/local/lib

ln -s libpython2.6.so.1.0 libpython2.6.so

3. 使用命令whereis libpython2.6.so.1.0得到如下结果就说明

libpython2.6.so.1: /usr/local/lib/libpython2.6.so.1.0

再次运行的时候遇到如下问题:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

解决方法如下:

1.编辑 vi /etc/ld.so.conf

如果是非root权限帐号登录,使用 sudo vi /etc/ld.so.conf

添加上python2.6的lib库地址,如我的/usr/local/Python2.6/lib,保存文件

 

执行 /sbin/ldconfig -v命令,

如果是非root权限帐号登录,使用 sudo /sbin/ldconfig -v。

这样 ldd 才能找到这个库,执行python2.6就不会报错了

 

/etc/ld.so.conf: 这个文件记录了编译时使用的动态链接库的路径。 默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件 如果你安装了某些库,没有指定 --prefix=/usr 这样lib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib,就会报错了

ldconfig是一个程序,通常它位于/sbin下,是root用户使用的。 简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache 以供使用 因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig 使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果 编译过程中抱错,缺少xxx库。

接下来重新启动agent,该问题得到解决。

 

5.2 安装cm,界面上一直提示获取安装锁

由于群集安装的过程中,需要连接外网,所以就很可能出现安装失败的情形。

在这种情形出现之后,重新进行安装,就会在集群安装的界面上一直提示:

获取安装锁....

之后会导致失败

解决方法:哪一个节点被锁就删除哪一个上的锁

进入出现该提示节点下的/tmp 目录,

使用ls -a查看,

删除scm_prepare_node.*的文件,

以及.scm_prepare_node.lock文件。

使用命令:

rm -rf /tmp/scm_prepare_node.*

rm -rf /tmp/.scm_prepare_node.lock

所有出现该问题的节点都执行完如下命令之后

重新执行安装命令,该问题得到解决。

 

5.3 service启动后马上挂掉

 

在主节点的cm-5.7.5下面的/etc/init.d目录下

执行./cloudera-scm-service start 提示成功

所有节点的cm-5.7.5下面的/etc/init.d目录下

执行./cloudera-scm-agent start 提示成功

 

开始输入主机ip:端口号准备进入cloudera manager的安装界面

访问却被拒绝。

开始认为是service刚刚启动,需要一定的时间才能访问。

结果一段时间之后访问仍然被拒绝。

执行./cloudera-scm-service start 依然提示成功

而service服务已经启动,应该提示is running才对

输入lsof -i:7180发现端口号并没有被占用

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

证明service启动后马上挂掉。

去log下面查看service的日志记录,出现如下问题:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactoryBean': FactoryBean threw exception on object creation; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: cmf.server] Unable to build EntityManagerFactory at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102) at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1440) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:247) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322) ... 17 more Caused by: javax.persistence.PersistenceException: [PersistenceUnit: cmf.server] Unable to build EntityManagerFactory

.......

........

发现所有的问题都是和数据库连接有关的,初步推测是MySql的问题,也就是说,service启动后不能连接到数据库,服务出现问题就关闭

 

首先想到的是缺少连接MySql的jar包

进入到cm-5.7.5的share/cmf/lib路径下,发现:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

是存在这个jar包的。

于是去检查我们的mysql

进入到cm-5.7.5/etc/cloudera-scm-server路径下,

看到下面有dp.properties文件,删除该文件

使用MySql进入到数据库下,删除cm数据库。

执行数据库的初始化命令:/opt/cm-5.7.5/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pmastercom168 --scm-host localhost scm scm scm

重新启动service,问题得到解决。

 

5.4 主机名的问题

 

Cloudera Manger对于主机名的要求是十分严格的,

任何一个节点主机名出现问题可能暂时不会产生任何影响.

但是在通过界面进行安装的时候会直接导致失败!

具体包括:

1)修改文件vi /etc/sysconfig/network

将主机名修改为:gp-master,

并执行了service network restart命令后,

到界面安装的时候仍然出现了主机名为 localhost.localdomain的问题。

使用hostname命令查看主机名,果然没变,去文件里查看,也没有问题!

重启了虚拟机之后,主机名才变成了我们所更改的!

所以修改完主机名,重启网络服务之后,记得使用hostname命令查看主机名,如果不是我们所修改的,就需要重启虚拟机!

 

2)修改/etc/hosts文件如下图所示:

离线安装Cloudera Manager 5和CDH5及与遇到的问题总结

在安装集群检查主机的时候报错:同一个ip在hosts文件里面配置多次!

这种配置方法在普通的集群上是可行的,也就是说,一台主机,可以即做名称节点,又做数据节点,但是在cloudera manager下,这种配置是不允许的!!

把第二行删除掉,该问题得到解决。