关于CDH离线安装的步骤,网上有很多,也比较完善了,就不在这里赘述了,可以百度搜索"CM5(5.11.0)和CDH5(5.11.0)离线安装" 5.12和6. 版本安装方法类似。
现在主要记录下安装过程遇到的问题及解决方案ntp服务搭建
之前用网上的ntp搭建步骤总是有问题,所以请教了运维,以下是可用的搭建步骤
vi /etc/ntp.conf
##server端添加子节点
restrict 114.214.164.210
restrict 114.214.164.211
restrict 114.214.164.212
restrict 114.214.164.213
##上层ntp节点设成自己(此处不能用节点的ip代替,只能用127.127.1.0,否则子节点ntpdate serverip报“no server suitable for synchronization found”)
server 127.127.1.0
fudge 127.127.1.0 stratum 5
保存启动 service ntpd restart
运行ntpq -p查看 refid是否是local(0),是则正常
子节点设置允许server ip
restrict 114.214.164.210
上层ntp服务地址设局域网ntp服务器地址
server 114.214.164.210
已经搭建好ntp服务了
执行 ntpdate -u + 114.214.164.210 保证所有节点时间和主机一致
2. 安装CDH会出现很多莫名其妙的问题,很多都是因为依赖包没有提前安装完全
以下是CentOs 系统,CDH需要的依赖包 (有三个没找到,经测试不影响)
RHEL/CentOS
· bind-utils
· chkconfig
· cyrus-sasl-gssapi
· cyrus-sasl-plain
· fuse
· fuse-libs
· gcc
· httpd
· init-functions 无
· libxslt
· mod_ssl
· MySQL-python
· openssl
· openssl-devel
· perl
· portmap
· postgresql-server
· psmisc
· python
· python-devel
· python-psycopg2
· python-setuptools
· sed
· service 无
· sqlite
· swig
· useradd 无
· zlib
方便伸手党:
yum install -y bind-utils chkconfig cyrus-sasl-gssapi cyrus-sasl-plain fuse fuse-libs gcc httpd libxslt mod_ssl MySQL-python openssl openssl-devel perl portmap postgresql-server psmisc python python-devel python-psycopg2 python-setuptools sed sqlite swig zlib
3.主节点 安装 CM会出的问题
初始化数据库的时候很多时候会初始化不成功,大多都是权限问题
初始化数据库: /opt/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql cm -h192.168.0.219 -uroot -p123456 --scm-host 192.168.0.219 scm scm scm
上面语句 会生成一个cm的库,用户是scm,密码是scm,生成一些基础表。192.168.0.219 是master
可以看这个文件 /opt/cm-5.11.0/etc/cloudera-scm-server/db.properties 知道host是192.168.0.219 就可以了
这里需要给
grant all privileges on *.* to 'root'@'master' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'192.168.0.219' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'master' identified by '123456' with grant option;
flush privileges;
我这里试了用主机名master发现会报错,所以用了192.168.0.219
这里一定要通过才能继续,如果失败了,报权限问题,删除cm库,添加权限,继续执行上面语句
4.使用parcels 安装CDH 启动agent时成功,但随后检查启动状态,会报失败
问题描述:启动agent时成功,但随后检查启动状态,会报如下错误,意味着agent启动后随即失败
问题解决:发现此问题在namenode上比较常见,而在datanode上很少出现。
所以可以确定是因为在namenode上往往首先启动cloudera-scm-server,就紧接着启动cloudera-scm-agent,
而cloudera-scm-server在启动期间需占用大量资源,导致cloudera-scm-agent启动失败。
所以可以在cloudera-scm-server启动一段时间后再启动cloudera-scm-agent。
至于datanode上也启动失败,说明当前系统资源不足,kill掉并稍等片刻重启即可。
5. supervisord报错
Checking for service cloudera-scm-agent * cloudera-scm-agent is dead and pid file exists
查看/opt/cm-5.11.0/log/cloudera-scm-agent/cloudera-scm-agent.log(这个就是agent的节点日志)
报错:
Failed to connect to newly launched supervisor. Agent will exit`
查看/opt/cm-5.11.0/log/cloudera-scm-agent/supervisord.out,报错
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
解决办法:
执行ps -ef | grep supervisord,找到与angent相关的线程并kill掉即可。
6.CDH上各组件依赖mysql问题
注意:在安装hive, hue和oozie时,要将MySQL驱动jar拷贝到相应位置(这步要在安装parcels之后文件夹才有)
cp /opt/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.11.0-1.cdh5.11.0.p0.34/lib/hive/lib
cp /opt/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.11.0-1.cdh5.11.0.p0.34/lib/oozie/lib
cp /opt/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.11.0-1.cdh5.11.0.p0.34/lib/sqoop/lib
scp /opt/mysql-connector-java-5.1.45-bin.jar root@cdh2:/opt/cloudera/parcels/CDH-5.11.0-1.cdh5.11.0.p0.34/lib/sqoop/lib
scp /opt/mysql-connector-java-5.1.45-bin.jar root@cdh3:/opt/cloudera/parcels/CDH-5.11.0-1.cdh5.11.0.p0.34/lib/sqoop/lib
cp /usr/qjp/mysql-connector-java-5.1.17.jar /var/lib/oozie
scp /opt/mysql-connector-java-5.1.17.jar root@cdh3:/var/lib/oozie
还有 要使用sqoop 的话 还要把mysql-connector-java-5.1.31-bin 这样的bin包替换原来的jar包,注意是替换
这里的替换是在有hive存在的节点上,路径是/opt/cloudera/parcels/CDH-5.11.0-1.cdh5.11.0.p0.34/lib/sqoop/lib)
导入时权限问题 切换到 hdfs用户(su hdfs) 用hadoop fs -chmod 777 /user 即可解决