1、Cloudera 大数据平台环境搭建(CDH5.13.1 版)版本 v1.0作者 郭维忠发布日期 2018-03-10Cloudera 大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 2 页/共 32 页模板编号:SD-TEM-01-201311目录Cloudera 大数据平台环境搭建 .1(CDH5.13.1 版) .11. 基础环境 .41.1. 软件环境 .41.2. 配置规划 .41.3. 所需要的软件资源 .41.4. 修改机器名(所有节点) .51.5. 设置防火墙(所有节点) .51.6. 配置免密码登录 SSH.61.7. 关闭 SEL
2、INUX(所有节点) .81.8. 修改 Linux 内核参数(所有节点) .81.9. 其他安装与配置(所有节点) .101.10. 配置 NTP 服务 .101.11. 安装 oracle JDK1.8 (所有节点) .121.12. Mysql 安装(主节点) .132. 安装 CM.152.1. 传包,解包 .152.2. 创建数据库 .152.3. 创建用户 .162.4. 制作本地 YUM 源 .162.5. 拷贝 jar 包 .172.6. 修改 cloudera-scm-agent 配置 .172.7. 启动 CM Server 和 Agent .182.8. 访问 CM.18
3、3. 安装 CDH.183.1. 登录后界面 .183.2. 选择 CM 版本 .193.3. 指定主机 .203.4. 选择 CDH 版本 .213.4.1. 出现 “主机运行状态不良”错误 .223.5. 检查主机正确性 .233.6. 选择安装的服务 .233.7. 角色分配 .243.8. 数据库设置 .243.8.1. 测试连接报错: .253.9. 群集设置 .26Cloudera 大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 3 页/共 32 页模板编号:SD-TEM-01-2013113.10. 开始安装 .283.11. 安装完成
4、.293.11.1. 警告信息: .294. 常见错误 .314.1. 初始化数据库错误: .314.2. 未能连接到 Host Monitor.32Cloudera 大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 4 页/共 32 页模板编号:SD-TEM-01-2013111. 基础环境1.1. 软件环境本文将介绍 Centos7.4 离线安装 CDH 和 Cloudera Manager 过程,软件版本如下:NO. 软件名称 版本1. 操作系统 Centos7.4 64 位2. JDK jdk-8u151-linux-x643. Clouder
5、Manager 5.13.14. CDH 5.13.15. 数据库 Mysql 5.76. JDBC mysql-connector-java-5.1.43.jar1.2. 配置规划本次安装共 5 台服务器,服务器配置及用途如下:NO. 机器名称 内网 IP 配置 用途1. node168 172.16.3.168 8C/32Gb/1TB 主,CM ,MysqlDB2. node169 172.16.3.169 8C/32Gb/1TB 从3. node170 172.16.3.170 8C/32Gb/1TB 从4. node171 172.16.3.171 8C/32Gb/1TB 从5. no
6、de172 172.16.3.172 8C/32Gb/1TB 从1.3. 所需要的软件资源1) JDK 环境:JDK 版本:1.8.0_151 jdk-8u151-linux-x64.rpm下载地址:http:/ CM 包:CM 版本: 5.13.1 cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz下载地址:http:/archive- 大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 5 页/共 32 页模板编号:SD-TEM-01-2013113) CDH 包CDH 版本:5.13.1,CDH-5.13.
7、1-1.cdh5.13.1.p0.2-el7.parcel; CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1; manifest.json下载地址:http:/archive- JDBC 连接 jar 包:jar 包版本:5.1.43,mysql-connector-java-5.1.43.jar下载地址:http:/central.maven.org/maven2/mysql/mysql-connector-java/5.1.43/mysql-connector-java-5.1.43.jar 1.4. 修改机器名(所有节点)1) 修改机器名称# ho
8、stnamectl set-hostname xxx /设置机器名#hostname / 查看本机名这种方式,在 Centos7 中可以永久性改变主机名称。2) 每个节点机器,都要配置 hosts# vi /etc/hosts内容都改为:127.0.0.1 localhost /建议保留此行172.16.3.168 node168172.16.3.169 node169172.16.3.170 node170172.16.3.171 node171172.16.3.172 node172Cloudera 大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第
9、6 页/共 32 页模板编号:SD-TEM-01-2013111.5. 设置防火墙(所有节点)注:为了简便,可以先关闭防所有节点火墙,安装完成后,再按照下面步骤设置。防火墙常用命令:# firewall-cmd -state(查询防火墙状态) #systemctl stop firewalld.service (关闭防火墙) #systemctl start firewalld.service (开启防火墙)#systemctl disable firewalld.service (禁止 firewall 开机启动)设置防火墙策略,在所有节点执行下面脚本(执行前要启动防火墙):/集群机器间可以
10、相互访问firewall-cmd -permanent -add-rich-rule=“rule family=ipv4 source address=172.16.3.168 port protocol=tcp port=0-65535 accept“firewall-cmd -permanent -add-rich-rule=“rule family=ipv4 source address=172.16.3.169 port protocol=tcp port=0-65535 accept“firewall-cmd -permanent -add-rich-rule=“rule famil
11、y=ipv4 source address=172.16.3.170 port protocol=tcp port=0-65535 accept“firewall-cmd -permanent -add-rich-rule=“rule family=ipv4 source address=172.16.3.171 port protocol=tcp port=0-65535 accept“firewall-cmd -permanent -add-rich-rule=“rule family=ipv4 source address=172.16.3.172 port protocol=tcp p
12、ort=0-65535 accept“ /设置可以访问的端口firewall-cmd -permanent -add-port=0-65535/tcpfirewall-cmd -reload注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时开放所有端口是为了安装起来方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。1.6. 配置免密码登录 SSH将子节点设置为从主节点 ssh 无密码登陆(主节点访问从节点需要无密码互通,否则后面会出现问题)在主节点上执行:#cd /进入到 根目录# ssh-keygen -t rsa一路回车,生成无密码的密钥对。Cloudera 大数据平台环
13、境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 7 页/共 32 页模板编号:SD-TEM-01-201311把公钥拷贝至 node169 服务器上 : # scp /root/.ssh/id_rsa.pub rootnode169: /输入 node169 机器上 root 用户密码拷备成功登录到 node169 服务器上:然后在 node169 服务器上,把公钥的内容追加到 authorized_keys 文件末尾(这个文件也在隐藏文件夹.ssh 下,如果没有可以新建):# cat id_rsa.pub /.ssh/authorized_keys如果提示下面信
14、息,则需要创建./ssh 目录:-bash: /root/.ssh/authorized_keys: No such file or directory/创建/.ssh 目录 ,再追加公钥内容# mkdir /.ssh# cat id_rsa.pub /.ssh/authorized_keys并设置 authorized_keys 的访问权限:# chmod 600 /.ssh/authorized_keys测试:在 node168 点上执行 ssh node169,正常情况下,不需要密码就能直接登陆进去了。在 node168 节点出现下面表示成功登录 node169 节点:Cloudera
15、大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 8 页/共 32 页模板编号:SD-TEM-01-201311以同样的方式将公钥拷贝至其他节点服务器上。 1.7. 关闭 SELINUX(所有节点)关闭 linux SELINUX 安全内核# setenforce 0 (临时生效)修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)# vi /etc/selinux/config内容增加:SELINUX=disabled 重启后生效:# reboot查看 SELINUX 是否关闭:#sestatus(在
16、 Centos7 中遇到 SELINUX 无法关闭的问题,重新启动机器恢复正常)1.8. 修改 Linux 内核参数(所有节点)为避免安装过程中出现的异常问题,首先调整 Linux 内核参数。1) 设置 swappiness,控制换出运行时内存的相对权重,Cloudera 建议将 swappiness 设置为 10:/查看 swappiness# cat /proc/sys/vm/swappiness/永久性修改,执行下面两条命令# sysctl -w vm.swappiness=10# echo vm.swappiness = 10 /etc/sysctl.conf 2) 关闭透明大页面:自
17、 CentOS6 版本开始引入了 Transparent Huge Pages(THP),从 CentOS7 版本开始,该特性默认就Cloudera 大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 9 页/共 32 页模板编号:SD-TEM-01-201311会启用。尽管 THP 的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭 THP,否则可能会导致性能出现下降。首先查看透明大页是否启用,always never 表示已启用,always never表示已禁用:# cat /sys/kernel/mm/transparent_hugepa
18、ge/defragalways madvise never# cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise never以上状态就说明是启用的。临时关闭(重启机器会变回默认开启状态):# echo never /sys/kernel/mm/transparent_hugepage/defrag#echo never /sys/kernel/mm/transparent_hugepage/enabled永久关闭:/编辑 /etc/rc.d/rc.local# vi /etc/rc.d/rc.local/在文件后添加下面内
19、容:if test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho never /sys/kernel/mm/transparent_hugepage/defragfi保存退出,然后赋予 rc.local 文件执行权限:#chmod +x /etc/rc.d/rc.local重启系统,以后再检查 THP
20、 状态,显示状态被禁用了。3) 修改文件句柄数:修改系统文件句柄数限制:/查看文件句柄数,显示 1024,显然太小# ulimit -n Cloudera 大数据平台环境搭建(CDH5.13.1)模板发布部门:技术研发管理部过程与质量管理部 第 10 页/共 32 页模板编号:SD-TEM-01-2013111024/修改限制#vi /etc/security/limits.conf /在文件后加入下面内容:* soft nofile 100000* hard nofile 100000修改后需要重启机器。1.9. 其他安装与配置(所有节点)为避免安装过程中出现异常问题,安装相关依赖包:# y
21、um -y install psmisc MySQL-python at bc bind-libs bind-utils cups-client cups-libs cyrus-sasl-gssapi cyrus-sasl-plain ed fuse fuse-libs httpd httpd-tools keyutils-libs-devel krb5-devel libcom_err-devel libselinux-devel libsepol-devel libverto-devel mailcap noarch mailx mod_ssl openssl-devel pcre-devel postgresql-libs python-psycopg2 redhat-lsb-core redhat-lsb-submod-security x86_64 spax time zlib-devel#yum install