环境

内容 版本
CentOS 7.4 64位
JDK 1.7
Cloudera Manager 5.14.1

服务器配置

IP hostname system version
192.168.1.31 c1 centos 7
192.168.1.32 c2 centos 7
192.168.1.33 c3 centos 7

离线CDH安装下载地址

链接:https://pan.baidu.com/s/1rGq3TVk1RDvxLilRiaRcFQ 密码:y8yq

软件链接

  1. cdh 5.14.4
  2. http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.14.4_x86_64.tar.gz
  3. http://archive.cloudera.com/cdh5/parcels/5.14/CDH-5.14.4-1.cdh5.14.4.p0.3-el7.parcel
  4. http://archive.cloudera.com/cdh5/parcels/5.14/CDH-5.14.4-1.cdh5.14.4.p0.3-el7.parcel.sha1
  5. http://archive.cloudera.com/cdh5/parcels/5.14/manifest.json

服务器基础环境准备

1.所有节点修改hostname(重启生效)及hosts

  1. hostnamectl --static set-hostname cdh1

2.修改hosts:

  1. vim /etc/hosts
  2. |192.168.1.31|c1|
  3. |192.168.1.32|c2|
  4. |192.168.1.33|c3|

3.所有节点关闭防火墙和selinux(重启生效)

关闭防火墙

  1. systemctl stop firewalld.service #停止firewall
  2. systemctl disable firewalld.service #禁止firewall开机启动
  3. firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

关闭selinux:

  1. vim /etc/selinux/config
  2. 找到SELINUX改为:
  3. SELINUX=disabled

4.所有节点ssh无密码登录

主机ssh

  1. ssh-keygen -t rsa #一路回车到完成

分发ssh

  1. #批量发送公钥到其他节点
  2. for num in `seq 1 3`;do ssh-copy-id -i /root/.ssh/id_rsa.pub root@cdh$num;done

JDK安装

卸载系统自带JDK

  1. rpm -qa |grep java #如果有就卸载。没有就不用执行下面
  2. yum remove java* #删除自带的java

java环境配置

  1. rpm -ivh jdk-7u80-linux-x64.rpm
  2. cat >/etc/profile.d/java.sh<<EOF
  3. export JAVA_HOME=/usr/java/jdk1.8.0_121
  4. export CLASSPATH=.:\$JAVA_HOME/jre/lib/rt.jar:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
  5. export PATH=\$PATH:\$JAVA_HOME/bin
  6. EOF
  7. source /etc/profile.d/java.sh

安装ntp时间同步软件

所有节点安装

  1. yum install ntp -y

在主机修改

  1. vim /etc/ntp.conf
  2. server s1a.time.edu.cn prefer
  3. server 0.centos.pool.ntp.org iburst
  4. server 1.centos.pool.ntp.org iburst
  5. server 2.centos.pool.ntp.org iburst
  6. server 3.centos.pool.ntp.org iburst

先进行一次时间同步

  1. /usr/sbin/ntpdate s1a.time.edu.cn

在其他机器上使用

  1. server server01
  2. server 0.centos.pool.ntp.org iburst
  3. server 1.centos.pool.ntp.org iburst
  4. server 2.centos.pool.ntp.org iburst
  5. server 3.centos.pool.ntp.org iburst

Cloudera Manager安装

主机安装

  1. 修改仓库文件cloudera-manager.repo,把版本号加上
  2. [cloudera-manager]
  3. name = Cloudera Manager
  4. baseurl = https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.0/ #主要改这里的版本号
  5. gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
  6. gpgcheck = 1
  7. 注意:修改完后的需要将.repo文件拷贝到/etc/yum.repos.d

s1安装

  1. yum localinstall --nogpgcheck *.rpm

从机安装

  1. 同样需要修改repos文件
  2. 注意:修改完后的需要将.repo文件拷贝到/etc/yum.repos.d

s2-s3安装

  1. yum localinstall --nogpgcheck *.rpm

检查我们安装的cloudera

  1. yum list | grep cloudera*

在安装中遇到的问题

  1. 在安装agent时,提示安装失败无法接收 Agent发出的检测信号
  2. 安装失败。 无法接收 Agent 发出的检测信号。
  3. 请确保主机的名称已正确配置。
  4. 请确保端口 7182 可在 Cloudera Manager Server 上访问(检查防火墙规则)。
  5. 请确保正在添加的主机上的端口 9000 9001 空闲。
  6. 检查正在添加的主机上 /var/log/cloudera-scm-agent/ 中的代理日志(某些日志可在安装详细信息中找到)。
  7. 如果在 Cloudera Manager 中启用为代理使用 TLS 加密(管理 -> 设置 -> 安全),请确保 /etc/cloudera-scm-agent/config.ini在正在添加的主机上有 use_tls=1。重启相应的代理,并单击此处的重试链接。
  8. 查看log信息知道
  9. ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>
  10. [07/Jul/2019 22:12:10 +0000] 11903 MainThread agent INFO Trying to connect to newly launched super
  11. [07/Jul/2019 22:12:10 +0000] 11903 MainThread agent ERROR Failed! trying again in 1 second(s)
  12. Traceback (most recent call last):
  13. File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.14.1-py2.7.egg/cmf/agent.py", line 2
  14. self.get_supervisor_process_info()
  15. File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.14.1-py2.7.egg/cmf/agent.py", line 2
  16. self.identifier = self.supervisor_client.supervisor.getIdentification()
  17. File "/usr/lib64/python2.7/xmlrpclib.py", line 1233, in __call__
  18. return self.__send(self.__name, args)
  19. File "/usr/lib64/python2.7/xmlrpclib.py", line 1587, in __request
  20. verbose=self.__verbose
  21. File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/supervisor-3.0-py2.7.egg/supervisor/xmlrpc
  22. '' )
  23. ProtocolError: <ProtocolError for 127.0.0.1/

解决方案:

  1. $> ps -ef | grep supervisord
  2. $> kill -9 <processID>
  3. sudo service cloudera-scm-agent restart

安装agent的主机上9000和9001端口是否空闲

  1. yum install lsof
  2. [root@s3 cloudera-manager]# lsof -i:9000
  3. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  4. cmf-agent 9786 root 12u IPv4 50212 0t0 TCP s3:cslistener (LISTEN)
  5. [root@s3 cloudera-manager]# ps -ef | grep 9786
  6. root 9786 1 1 22:19 ? 00:00:04 python2.7 /usr/lib64/cmf/agent/build/env/bin/cmf-agent --package_dir /usr/lib64/cmf/service --agent_dir /var/run/cloudera-scm-agent --lib_dir /var/lib/cloudera-scm-agent --logfile /var/log/cloudera-scm-agent/cloudera-scm-agent.log --daemon --comm_name cmf-agent --pidfile /var/run/cloudera-scm-agent/cloudera-scm-agent.pid
  7. root 10357 2257 0 22:26 pts/0 00:00:00 grep --color=auto 9786