CDH6.x安装教程(附带整合kerberos)
CDH从6.3.3版开始不再免费,6.3.2及以下版本可免费使用,大家如有需要可联系我索取安装包。
安装步骤总览:
1、配置服务器系统基础环境
2、配置本地仓库
3、安装数据库
4、安装CM
5、添加大数据服务
CDH基本架构简述:
CDH主要包括两大组件cm server和cm agent,其中cm server作为CDH的服务管理端通常安装在集群中的一个节点上,cm agent需要安装在所有节点上,所有的cm agent会与cm server通信,向cm server上报数据,并且也会接收来自cm server的指令执行一些任务,说白了cm server就像是司令部,cm agent就是底下的士兵,一切行动要听从cm server的指挥。下面的内容我们暂且将安装cm server的节点称作主节点,其他节点称为子节点,注意并不是只在子节点安装cm agent,主节点也要安装cm agent,因为主节点这个机器也需要cm agent去监控起来。
一、所有节点安装前的系统准备设置
- 设置HOST
vi /etc/hosts
- 关闭防火墙
sudo systemctl disable firewalld sudo systemctl stop firewalld
- 设置SELinux
vi /etc/selinux/config
将SELINUX=enforcing 改为 SELINUX=permissive,然后重启服务器,或者执行下面命令:
setenforce 0
- 开启NTP服务(NTP服务是可选的,其他的时间同步方式或者非生产环境手动同步时间亦可)
# 安装NTP服务 yum install ntp # 编辑/etc/ntp.conf 添加NTP时间同步服务地址(请填写实际的时间服务器host),如下所示: server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org # 开启NTP服务 systemctl start ntpd # 设置自启动 systemctl enable ntpd # 同步系统时间 ntpdate -u <ntp服务器地址> # 查看同步状态,如下所示为正确的同步状态 ntpdc -np remote local st poll reach delay offset disp ======================================================================= =10.2.1.114 10.5.3.178 4 64 1 0.00203 0.000115 1.39194 =10.5.1.114 10.5.3.178 4 64 1 0.00032 0.000037 1.39194
二、安装Cloudera Manager (CM)
- 在主节点(代指安装cm server的节点)配置本地yum仓库
# 主节点安装httpd,提供yum仓库web服务,子节点可以通过访问这个web服务连接到主节点的yum源 yum install httpd -y # 主节点开启httpd systemctl start httpd # 主节点创建httpd文档目录,CDH安装包资源会放到这个目录被所有节点访问到 sudo mkdir -p /var/www/html/cloudera-repos/cm6 # 主节点下载cm6本地yum仓库压缩包,注意:现在下载CDH安装包需要账户认证,没有认证的可以到我博客资源里下载 wget https://[username]:[password]@archive.cloudera.com/p/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz # 主节点解压本地yum仓库压缩包到刚才创建的httpd文档目录 tar xvfz cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6 --strip-components=1 # 主节点httpd文档目录赋权 sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6 # 在任意子节点验证httpd是否正常使用,尝试下载yum源中的一个RPM-GPG-KEY-cloudera文件,下载成功说明我们的httpd服务正常,并且yum源可以对外访问 wget http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera # 所有节点下载cloudera-manager.repo,注意:现在下载需要账户认证,没有认证的可以到我博客资源里下载 wget https://[username]:[password]@archive.cloudera.com/p/cm6/6.3.1/redhat7/yum/cloudera-manager.repo # 所有节点将cloudera-manager.repo放置到/etc/yum.repos.d/目录,并修改下面两项内容后保存退出 baseurl=http://<主节点IP>/cloudera-repos/cm6 gpgkey=http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera # 所有节点导入GPG key sudo rpm --import http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
- 在所有节点安装JDK
# 一般1.8的jdk就行,我使用的CentOS-7-x86_64-DVD-2009.iso镜像yum源 yum install java-1.8.0-openjdk-devel -y
- 安装CM服务
# 在主节点安装cloudera agent和cloudera server sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server -y # 在其他子节点安装cloudera agent sudo yum install cloudera-manager-daemons cloudera-manager-agent -y
如果安装过程提示缺少libmysqlclient.so.18依赖则可以先执行如下命令安装:
sudo rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
这种情况一般是卸载mysql相关依赖时导致的。
- 安装数据库(最好将数据库安装在主节点)
# 主节点先检查系统是否自带mysql,如果有需要卸载(最好用yum remove卸载) rpm -qa |grep mysql rpm -qa |grep MySQL rpm -qa |grep mariadb # 主节点安装mysql rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm # 如果安装server时候报缺少net-tools的错,则需要先安装下net-tools yum install net-tools -y # 如果安装server时候报缺少libaio.so.1,需要先安装libaio yum install libaio -y # 如果缺少libmysqlclient.so.18,可以执行下面2条命令 $ wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm $ rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm # 主节点查看mysql服务状态,开启后的状态如下所示 systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html # 主节点启动mysql systemctl start mysqld # 开启后查看随机密码 cat /var/log/mysqld.log | grep 'password' # 主节点登录mysql测试能否正常使用 mysql -uroot -p随机密码 # 修改密码 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
- 在所有节点安装数据库(mysql)驱动
# 所有节点下载mysql驱动(驱动版本要注意兼容你的mysql) wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz # 解压 tar zxvf mysql-connector-java-5.1.46.tar.gz # 创建数据库驱动存放路径 mkdir -p /usr/share/java/ # 将驱动包解压目录下的驱动jar移动到上面的路径下 cd mysql-connector-java-5.1.46 mv mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
- 创建大数据服务组件用到的数据库(下面创建了一些常用的)
# 登录mysql mysql -uroot -p # 登录后执行下面的sql create database amon default character set utf8 default collate utf8_general_ci; create database rman default character set utf8 default collate utf8_general_ci; create database hue default character set utf8 default collate utf8_general_ci; create database metastore default character set utf8 default collate utf8_general_ci; create database sentry default character set utf8 default collate utf8_general_ci; create database nav default character set utf8 default collate utf8_general_ci; create database oozie default character set utf8 default collate utf8_general_ci; grant all on *.* to 'root'@'%' identified by 'Abcd!234'; flush privileges;
- 在主节点初始化CM数据库
# 初始化cm数据库(密码自己设置) /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -uroot -p12345 scm scm 12345 # 脚本参数解释 scm_prepare_database.sh 【数据库类型】 -u【数据库登录用户】 -p【数据库登录密码】 【CDH要创建的数据库名称】 【CDH数据库用户名】 【CDH数据库用户密码】
- 安装parcels
- 下载parcels,下载地址:https://archive.cloudera.com/cdh6/6.3.2/parcels/ (这些资源已经失效了,可以去我博客资源里下载)
- 下载标黄的四项
-
修改.sha文件名
mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
将这四个文件移动到/opt/cloudera/parcel-repo下
- 在主节点开启cm server
# 开启CM server systemctl start cloudera-scm-server
查看启动日志,当看到有jetty服务启动成功的提示后,说明cm server已经启动完成(启动时间较长),另外启动日志里有些连接cloudera仓库失败的错误可以忽略
sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
-
在所有节点开启cm agent
#修改cm agent配置,指定cm server的连接地址 sudo vi /etc/cloudera-scm-agent/config.ini 修改server_host=主节点IP #开启所有节点cm agent sudo systemctl start cloudera-scm-agent
- 打开CM WEB UI,http://<主节点IP>:7180
- 开始安装集群
- 进入欢迎页
- 接受许可
- 选择安装版本(图例为6.3.3版,没有免费版可选)
- 进入集群安装
- 填写集群名称(自定义)
- 选择主机(在该页不要填写IP去搜索节点,应点击’当前管理的主机‘)
- 选择当前管理的主机(例子中只用了一个节点部署,所以只显示一个受管理主机)
- 选择parcel包(画红线部分是检测到的本地parcel包,如果不显示说明没被检测到,可尝试等待刷新页面或回退到欢迎页面重启cm server)
- 开始向所有节点分发部署安装包
- 进行安装前环境检查(可以根据检查结果修正环境配置,修正后重新检查并继续)
- 如果有检查项没通过,需要先修正配置后再次执行检查,直到所有检查项均正常,如果有些配置的的修正涉及到重启服务器等需要停止cm server服务的操作,要先回退到欢迎页面并停止cm server服务,重启完成继续从第一步进行(非生产环境下的检查项异常大多可以忽视)
- 选择需要安装的大数据服务,这里选择自定义服务,这样可以按需安装
- 大数据服务角色分配(注意要做好角色规划,非生产环境按照默认即可)
- 填写数据库信息(有些大数据服务需要数据库支持,例如hive、oozie等,所以需填写数据库信息)
- 修改大数据服务相关数据目录路径,例如hdfs、kafka数据目录等
- 开始安装服务
- 服务安装完成
- 开始安装集群
- 安装kerberos(一般人不需要安这个玩意儿,到此cdh安装就结束了)
# 安装kerberos,注意要安装1.15.1-50.el7版本左右的,不能太低,不然CDH开启kerberos报错 # kerberos 1.15.1-50.el7版本在CentOS-7-x86_64-DVD-2009.iso镜像的yum源里就有 # 选择一个节点安装kerberos服务端 yum -y install krb5-server openldap-clients # 所有节点安装客户端及相关库 yum install -y krb5-workstation krb5-libs # 所有节点修改krb5.conf sudo vi /etc/krb5.conf # krb5.conf示例内容如下: # Configuration snippets may be placed in this directory as well includedir /etc/krb5.conf.d/ [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt default_realm = kunlun.test # default_ccache_name = KEYRING:persistent:%{uid} [realms] kunlun.test = { kdc = bjzj1-vbig-tmp02 admin_server = bjzj1-vbig-tmp02 } [domain_realm] .bjzj1-vbig-tmp02 = kunlun.test bjzj1-vbig-tmp02 = kunlun.test # kerberos服务节点修改kdc.conf sudo vi /var/kerberos/krb5kdc/kdc.conf # kdc.conf示例内容如下: [kdcdefaults] kdc_ports = 88 kdc_tcp_ports = 88 [realms] kunlun.test = { #master_key_type = aes256-cts max_renewable_life = 7d 0h 0m 0s default_principal_flags = +renewable acl_file = /var/kerberos/krb5kdc/kadm5.acl dict_file = /usr/share/dict/words admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal } max_life = 24h # kerberos服务节点修改kadm5.acl sudo vi /var/kerberos/krb5kdc/kadm5.acl # kadm5.acl示例内容如下: */admin@kunlun.test * #创建数据库 kdb5_util create -r kunlun.test -s # 开启kdc、kadmin服务 sudo systemctl start krb5kdc sudo systemctl start kadmin systemctl enable krb5kdc systemctl enable kadmin # 创建管理员账户,用于CDH开启kerberos时自动创建principal kadmin.local: addprinc admin/admin # 记得创建完后测试下该用户
- 为CDH开启kerberos
----------------------------------------------------------------------------------------------------------------------
看到这里点个赞吧,如遇安装问题可随时私信我~
更多推荐
所有评论(0)