Cloudera Manager 5 和 CDH5.7.0 本地(离线)安装

Posted 河南骏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cloudera Manager 5 和 CDH5.7.0 本地(离线)安装相关的知识,希望对你有一定的参考价值。

最近在搞cloudera manager的安装,经历了许多坎坷,总结一下:

另外也参考了一些其他人的帖子如:

http://blog.csdn.net/a921122/article/details/51939692

http://www.aboutyun.com/forum.php?mod=viewthread&tid=9086&extra=page%3D1

http://www.aboutyun.com/forum.php?mod=viewthread&tid=10852&highlight=%C0%EB%CF%DF%B0%B2%D7%B0Cloudera%2BManager

大致的方法是可行的

系统环境
  • 4台虚拟机,其中master节点4核心、8GB,其它节点4核、16GB。
  • 网卡:1000M。
  • 共有硬盘8.7TB。
  • 网络环境内网。
  • Centos7 x64(安装系统时尽量把开发包安装齐全,另master节点需要mysql可以在安装系统时勾选)。

准备工作卸载系统自带OPEN-JDK(所有节点) 安装好的Centos系统有时会自动安装OpenJdk,用命令java -version查看:
  1. java version "1.6.0"
  2. OpenJDK Runtime Environment (build 1.6.0-b09)
  3. OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)


如有上述显示,说明系统里已经有OpenJdk,执行以下命令查看系统中有哪些OpenJdk相关包:
  1. rpm -qa | grep java


其中有如下包必须卸载,根据系统版本不同,各个包版本号会有所差异: java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64 java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64 执行以下命令,卸载:
  1. rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
  2. rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
  3. rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64



安装JDK(所有节点) 从官方网站上下载rpm包,本次使用版本1.7.0_55-b13(CDH5可能支持1.7之前的版本,具体情况未经测试),执行命令:
  1. rpm -ivh jdk-7u55-linux-x64.rpm


由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:
  1. echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment


执行命令,查看Jdk是否安装正确
  1. java -version
  2. javac -version


修改主机名 修改/etc/sysconfig/network文件:
  1. NETWORKING=yes
  2. HOSTNAME=master.hadoop


其中HOSTNAME与主机名一致。主机名如果跟系统安装时不一致请执行hostname命令让其立即生效,否则会影响各节点互相访问。修改/etc/hosts文件,添加:
  1. 188.188.2.170 master
  2. 188.188.2.171 datanode1
  3. 188.188.2.173 datanode2
  4. 188.188.2.174 datanode3


执行命令:
  1. service network restart


打通SSH(所有节点) 这里master节点和其他datanode节点会略有区别。 首先说有节点均执行如下命令,遇到提示一路回车即可:
  1. ssh-keygen -t rsa


然后在主节点执行以下命令:
  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys


scp文件到所有datenode节点:
  1. scp ~/.ssh/authorized_keys root@datanode1:~/.ssh/


然后输入密码即可,以后再到其他机器就不需要密码额。
关闭防火墙(所有节点) 防火墙会引起hadoop相关组件通讯的各种异常。 防火墙:
  1. service firewalld stop (临时关闭)
  2. systemctl disable firewalld (重启后生效)


SELINUX:
  1. setenforce 0 (临时生效)
修改/etc/selinux/config 下的 SELINUX=disabled (重启后生效)。


安装NTP服务(所有节点) 集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下:
  • master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。
  • 所有datanode节点以master节点为基础同步时间。
所有节点安装相关组件:ntp与ntpdate。按顺序安装即可,完成后,配置开机启动:
  1. chkconfig ntpd on


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


其中2-5为on状态就代表成功。
配置内网NTP服务器(master节点) 在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用65.55.56.206作为对时中心。
  1. ntpdate -u 65.55.56.206


ntp服务只有一个配置文件,配置好了就OK。 这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出:
  1. driftfile /var/lib/ntp/drift
  2. restrict 127.0.0.1
  3. restrict -6 ::1
  4. restrict default nomodify notrap
  5. server 65.55.56.206 prefer
  6. includefile /etc/ntp/crypto/pw
  7. keys /etc/ntp/keys


配置文件完成,保存退出,启动服务,执行如下命令:
  1. service ntpd start
  2. chkconfig ntpd on (设置开机启动)


检查是否成功,用ntpstart命令查看同步状态,出现以下状态代表启动成功:
  1. synchronised to NTP server () at stratum 2
  2. time correct to within 74 ms
  3. polling server every 128 s


如果出现异常请等待几分钟,一般等待5-10分钟才能同步。 配置ntp客户端(所有datanode节点)
  1. driftfile /var/lib/ntp/drift
  2. restrict 127.0.0.1
  3. restrict -6 ::1
  4. restrict default kod nomodify notrap nopeer noquery
  5. restrict -6 default kod nomodify notrap nopeer noquery
  6. server 192.168.1.101
  7. includefile /etc/ntp/crypto/pw
  8. keys /etc/ntp/keys


ok保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:
  1. ntdate -u 188.188.2.170 (内网ntp服务器)


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


因为是连接内网,这次启动等待的时间会比master节点快一些,但是也需要耐心等待一会儿。
Mysql配置(master节点) 只需要配置master节点的Mysql即可。
rpm -qa|grep mariadb    --找到是否有mariadb存在,要删除,否则安装mysql server会报conflict 冲突的问题
rpm -e --nodeps mariadb* --如果有mariadb包,就删掉
yum install perl-Module-Install.noarch--一般虚拟机中是没有perl Module,需要yum 安装
然后开始安装mysql server
rpm -ivh MySQL-server-5.6.30-1.el7.x86_64.rpm

rpm -ivh MySQL-client-5.6.30-1.el7.x86_64.rpm
安装后,如果 service mysql start 没启动成功,报error 2002找不到什么*.pid,那就用mysqld_safe &命令启动,然后就看到mysql启动了。

 将mysql设置为开机启动:
  1. chkconfig mysqld on


本次安装需要创建如下数据库(不包括Cloudera Manager的数据库,Cloudera Manager数据库有相关脚本创建,后面会有说明)
  1. --hive数据库
  2. create database hive DEFAULT CHARSET utf8
  3. --集群监控数据库
  4. create database amon DEFAULT CHARSET utf8
  5. --hue数据库
  6. create database hue DEFAULT CHARSET utf8
  7. --oozie数据库
  8. create database oozie default charset utf8;
以上数据库,可能会根据安装组件的不同略有差别。 给用户授权(这里密码设为hadoop)
  1. grant all on *.* to root@"%" Identified by "hadoop";


正式开工安装Cloudera Manager 5(cm5)
下载地址 http://archive-primary.cloudera.com/cm5/cm/5/,根据自己的系统选择相应的版本,本次安装选用的是cloudera-manager-centos7-cm5.7.0_x86_64.tar。下载完成后只上传到master节点即可。然后解压到/opt目录下,不能解压到其他地方,因为cdh5的源会默认在/opt/cloudera/parcel-repo寻找,怎么制作cdh5的本地源文件会在之后介绍。给所有节点添加cloudera-scm用户:
  1. useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm


修改/opt/cm-5.0.0/etc/cloudera-scm-agent/config.ini 下面的server_host
  1. server_host=master


为Cloudera Manager 5建立数据库:
  1. /opt/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -phadoop --scm-host localhost scm scm scm


格式是:scm_prepare_database.sh 数据库类型  数据库 服务器 用户名 密码  –scm-host  Cloudera_Manager_Server所在的机器,后面那三个不知道代表什么,直接照抄官网的了。 因为我们用的是Mysql数据库,所以我们需要下载Mysql的JDBC驱动,本次从官网上下载最新稳定版:mysql-connector-java-5.1.30.tar.gz,解压之后找到mysql-connector-java-5.1.30-bin.jar放到/opt/cm-5.0.0/share/cmf/lib/目录下。 在后面安装其他组件的时候,它会从/usr/share/java目录下找驱动,然后自动cp,所以为保险起见,建议把mysql的驱动jar包也拷贝到agent节点的/usr/share/java下面(最好把版本和“”bin“”去掉,如mysql-connector-java.jar),
开启Cloudera Manager 5 Server端:
  1. /opt/cm-5.7.0/etc/init.d/cloudera-scm-server start


注意server首次启动不要立即关闭或重启,因为首次启动会自动创建相关表以及数据,如果因为特殊原因中途退出,请先删除所有表以及数据之后再次启动,否则将会出现启动不成功的情况。 开启Cloudera Manager 5 Agents端。 先scp /opt/cm-5.7.0到所有datanode节点上,然后在每台机器上开启Agents端:
  1. scp -r  /opt/cm-5.7.0 root@datanode1:/opt/cm-5.7.0

等待拷贝成功,在所有datanode节点上启动:( 注意必须以管理员权限启动
  1. sudo /opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start
/opt/cm-5.7.0/run/ 就这个下面 之前启动server时里面会有一个server的文件夹和server的pid文件,需要手工再建一个agent文件夹,不然启动agent 会失败。

浏览器启动Cloudera Manager 5 控制台(默认端口号是7180),启动成功就会看到登陆页面。

安装CDH5
先下载到本地 http://archive-primary.cloudera.com/cdh5/parcels/5.7.0/,这里需要下载两样东西,首先是与自己系统版本相对应的parcel包,然后是manifest.json文件。下载完成后将这两个文件放到master节点的/opt/cloudera/parcel-repo下(目录在安装Cloudera Manager 5时已经生成),注意目录一个字都不能错,接下来打开manifest.json文件,里面是json格式的配置,我们需要的就是与我们系统版本相对应的hash码,因为我们用的是Centos6.5,所以找到如下位置:


在这个大括号的最下面找到“hash”所对应的值。



将“hash”的值复制下来,然后创建一个文件,文件名与你的parel包名一致,并加上.sha后缀:


这样你的目录下将有这3个文件,将“hash”的值复制到新建的sha文件中,并保存,好了,我们的本地源制作完成了。这样基本大功告成了,再之后的操作就是控制台按照步骤安装即可。
打开 http://188.188.2.170:7180,登陆控制台,默认账户和密码都是admin,安装时选择免费版,之后由于cm5对中文的支持很强大,按照提示安装即可,如果系统配置有什么问题在安装过程中会有提示,根据提示给系统安装组件就可以了。
如果在安装时选择了安装Hive,可能会遇到安装失败的问题,查看一下日志发现时安装Hive时需要安装JDBC驱动,所以同样我们将Mysql的驱动包拷贝到/opt/cloudera/parcels/CDH-5.0.0-1.cdh5.0.0.p0.47/lib/hive/lib/目录下,之后再继续安装就不会遇到问题了。
补充几点:
如果直接新建个.sha的文件,把manifest.json最后一行的hash值拷贝进去,直接验证验证失败,这样cm会直接从远程下载parcel包,而不是使用本地下载好的parcel。
解决办法直接把*.sh1文件复制一份,再加入manifest.json的hash值,这样才能hash验证通过,使用本地下载好的parcel包。
注意,*.sh1文件也要在下载parcel包时下载好。
mysql数据库最好跟cm主节点在一个节点上,否则会出现无远程权限的问题。


CDH5的安装配置 
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。 
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin

 
 

各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。


接下来,出现以下包名,说明本地Parcel包配置无误,直接点继续就可以了。


如果此处发现不到parcel包,就重启所有节点的agent服务,和master的server服务。


点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,这个过程的速度就取决于节点之间的传输速度。



当前受管

假如在安装的时候出现问题,如网络连接中断,机器死机,继续安装的时候可能会出现查询不到机器,并且根据ip搜索机器的时候,出现“当前受管”

的状态为“是”,安装失败的机器不能再选择了。


先停止所有服务。清除数据库。

1> 删除Agent节点的UUID 

      # rm -rf /opt/cm-5.4.7/lib/cloudera-scm-agent/*

2>  清空主节点CM数据库

      进入主节点的Mysql数据库,然后drop database cm;

3> 在主节点上重新初始化CM数据库

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


等待一下,连接访问web:7180即可

所有节点部署完成



接下来是主机检查,可能会遇到以下问题: 


Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响: 
通过echo 10 > /proc/sys/vm/swappiness即可解决。(注意切换到root)

已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始脚本中,以便在系统重启时予以设置。以下主机将受到影响


接下来是选择安装服务:

服务配置,一般情况下保持默认就可以了(Cloudera Manager会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了):

接下来是数据库的设置,检查通过后就可以进行下一步的操作了:


此处可能需要新建oozie的数据库


下面是集群设置的审查页面,全部保持默认配置即可:

终于到安装各个服务的地方了,注意,这里安装Hive,或oozie的时候可能会报错,因为我们使用了MySql作为hive的元数据存储,hive默认没有带mysql的驱动,通过以下命令拷贝一个就行了:

cp /opt/cm-5.7.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.5-el6.parcel/lib/hive/lib/

cp /opt/cm-5.7.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.5-el6.parcel/lib/oozie/lib/

cp /opt/cm-5.7.1/share/cmf/lib/mysql-connector-java-*-bin.jar /var/lib/oozie/



接下静静地等待即可。

安装完成后,就可以进入集群界面看一下集群的当前状况了。 
这里可能会出现无法发出查询:对 Service Monitor 的请求超时的错误提示,如果各个组件安装没有问题,一般是因为服务器比较卡导致的,过一会刷新一下页面就好了,根据实际情况调整配置即可:


============================================================================================

如果想要添加navigator,就选用中间60天试用版添加集群。首先要登录进http://master:7180,然后再页面右上角方向选择“添加Cloudera manager service”--->选择navigator audit server 和navigator metadata server两个服务,然后“继续”-->还要配置这两个服务的数据库(nav和navms)配置好之后测试数据库连接,再“继续”就完成了navigator的配置了。

在“群集(CLUSTER)”下,会在“Cloudera Manager Service ”下面出现一个“Cloudera Navigator”的链接,点击后就可以跳到http://master:7187的navigator的页面了,默认密码是admin/admin


错误总结

1、pstree: command not found

错误展示

# /opt/cm-5.7.0/etc/init.d/cloudera-scm-server start
/opt/cm-5.7.0/etc/init.d/cloudera-scm-server: line 109: pstree: command not found
Starting cloudera-scm-server:                              [FAILED]
# /opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start
/opt/cm-5.7.0/etc/init.d/cloudera-scm-agent: line 108: pstree: command not found
Starting cloudera-scm-agent:                               [FAILED]

原因

因为系统是最小化安装,默认没有安装

解决方法

# yum -y install psmisc

2、cloudera-scm-agent start 启动失败

错误展示

# /opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start
Starting cloudera-scm-agent:                               [FAILED]

查询日志

# cd /opt/cm-5.7.0/log/cloudera-scm-agent/
# ls
cloudera-scm-agent.out
# cat cloudera-scm-agent.out 
[22/Jun/2016 11:02:09 +0000] 3695 MainThread agent        INFO     SCM Agent Version: 5.7.0
Unable to create the pidfile.

原因

经过查找后发现/opt/cm-5.7.0/run目录下没有cloudera-scm-agent文件夹

# cd /opt/cm-5.7.0/run/
# ls
cloudera-scm-server

解决方法

# mkdir /opt/cm-5.7.0/run/cloudera-scm-agent

3、install: invalid user ‘cloudera-scm’

错误展示

# /opt/cm-5.7.0/etc/init.d/cloudera-scm-server start
install: invalid user ‘cloudera-scm’

原因

没有创建运行server的用户

解决方法

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

4、检查主机正确性警告

警告

解决方法

# echo 0 > /proc/sys/vm/swappiness
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo "echo 0 > /proc/sys/vm/swappiness" >>/etc/rc.d/rc.local
# echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >>/etc/rc.d/rc.local

5、启动Hive失败

错误展示

原因

根据提示发现是没有mysql-java连接的驱动jar包

解决方法

# ls
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel       cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz  manifest.json
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1     jdk-8u91-linux-x64.rpm        mysql-connector-java-6.0.2.jar
# cp mysql-connector-java-6.0.2.jar /opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hive/lib/

6、启动NFS Gateway失败

错误展示

原因

解决方法

# yum -y install rpcbind
# systemctl start rpcbind
# echo "systemctl start rpcbind" >> /etc/rc.d/rc.local 
# chmod +x /etc/rc.d/rc.local

7、启动Oozie,impala失败

错误展示

原因

没有mysql-java连接jar包

解决方法

# ls
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel       cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz  manifest.json
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1     jdk-8u91-linux-x64.rpm        mysql-connector-java-6.0.2.jar
# cp mysql-connector-java-6.0.2.jar /usr/share/java/mysql-connector-java.jar

=======================================================================

在安装cm 5.10.0的时候,也遇到一些,前面大致的配置流程差不多,

1)yum安装

yum -y install redhat-lsb
yum -y install openssl-devel
yum -y install python-psycopg2
yum -y install mod_ssl
yum -y install httpd
yum -y install MySQL-python
yum -y install cyrus-sasl-gssapi

2)

错误代码 1045

Access denied for user 'root'@'localhost' (using password:YES)


在配置scm数据库的时候,是因为没有重启

# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

3)在安装组件的时候,HDFS组件出错
对当前namenode的名称目录进行格式化,如果名称目录不能为空,此操作将失败

这个可能是你重试安装,只需把namenode的路径手工删除(在报错的主机上)

4)还有就是为各个组件创建数据库时,可能会报错

正确地做法是:

create user hive

create database hive default charset utf8;

grant all on hive.* to 'hive'@'%' identified by 'password';

grant all on hive.* to 'hive'@'mysql的主机名' identified by 'password';

这样大抵是可以通过数据库连接测试的

5)mysql通过rpm安装后,会报error 2002的错 ERROR 2002 (HY000): Can't connect to local MySQL server through socket


这个忙活了很久,经常见,我的做法是删除MYSQL rpm,再重新装一遍就好了!!!



==========================================================================

在最近两周,升级搭建cloudera manager 和cloudera navigator 5.10.0版本,历经坎坷,终于在今天完了。

碰到的第一个坑是hue数据库连接失败,我装的是linux glibc的mysql,总报libmysqlclient.so.18找不到的错,后来我卸载数据库,重新搭建redhat 7的mysql数据库(server,client,devel,shared)rpm包,test 数据库连接成功了,喜极而泣啊!

这 碰到的第二个坑是组件搭建后,不几天磁盘被写满,在/tmp目录下每3分钟产生一个700M左右的mgmt_navigatormetaserver_pid***.hprof文件,而且权限是600,这个搞了一周多,看log,看配置文件,始终不得其解。

在今天看到官方文档如图


然后我就知道是我的heap交换空间设置的小的原因,我起初默认设置是512M,现在调大到2G


我还不放心,就在/tmp目录下,赋予mgmt_*_navigatormetaserver_pid*.hprof 777权限。

然后,刷新/tmp目录,没有再产生了!


随后的惊喜是我的cloudera navigator的页面打开了,一切正常了(原先是登陆后,是upgrade,直到崩溃页面)随着磁盘不在不停产生文件,我的navigator也好了!终于可以长舒一口气了!




以上是关于Cloudera Manager 5 和 CDH5.7.0 本地(离线)安装的主要内容,如果未能解决你的问题,请参考以下文章

离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程

Centos6.5安装配置Cloudera Manager CDH5.6.0 Hadoop

离线安装Cloudera Manager5.3.4与CDH5.3.4

Cloudera Manager和CDH5.8离线安装

cloudera-manager-centos7-cm5.14.0 离线安装

CDH5.13.3安装手册