下载该链接中的所有rpm文件。
其中,jdk我是从oracel官网下载的,我下载的是JDK 8U181
ASC文件 CDH6 Parcels需要下载CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel和manifest.json这两个文件
MySQL-5.7.29 MySQL JDBC驱动要求使用5.1.26以上版本的jdbc驱动,我选择的是mysql-connector-java-8.0.18.tar.gz
本地yum源由于是内网,无法连接互联网,所以在安装cdh相关服务(cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server)以及其他服务时候,无法联网下载相关依赖。
所以在所有主机上搭建本地yum源。
PS:由于没有空余电脑,就没有搭建局域网yum源,最好是搭建局域网yum源,避免在所有主机上搭建本地yum源,减少重复 *** 作。
、
我是用的yum源是:CentOS-7-x86_64-Everything-1908.iso,可以前往官网下载与本地主机系统相同版本centos镜像。
官网:Index of /(选择everything版本,包含的软件比较全)。
-
设置固定IP,并禁用IPv6,因为CDH不支持IPv6
# vi /etc/sysconfig/network-scripts/ifcfg-enp4s0 (其中ifcfg-enp4s0每台主机都不同)
-
配置集群中每台主机(节点)的网络名称
# hostnamectl set-hostname new-hostName
-
在/etc/hosts文件中配置相关主机的ip、域名以及域名简写(可选)
-
配置/etc/sysconfig/network
HOSTNAME=cdhmaster
-
测试各主机之间能够互通
-
验证配置
uname -a 需要和 hostname 得到一致的域名
-
停止防火墙
# systemctl stop firewalld
-
关闭防火墙开机自启
# systemctl disable firewalld
-
查看SELinux状态
# getenforce
如果输出是permissive或者disabled,则跳过此步骤;
如果输出是enforcing,继续如下步骤
-
编辑/etc / selinux / config文件(有些是/etc/sysconfig/selinux文件),将SELINUX=enforcing修改为SELINUX=disabled或者SELINUX=permissive
-
重启生效或者执行setenforce 0命令立即生效
-
CDH安装完可重新启SELinux,修改/etc / selinux / config文件,并执行setenforce 1命令
互联网上有很多yum的镜像源,比如阿里、网易等,但是由于公司内网限制,不能连接互联网,导致在centos安装软件很麻烦(依赖包等问题),所以最好搭建局域网yum源或者本地yum源。
这里由于没有空闲主机,所以采用每台主机都搭建本地yum源的方案。
参考:CentOS7.2配置本地yum源 - 落泪秋 - 博客园
-
将事先下载好的Centos7的everything版的iso包,上传至各个主机上。
我上传到了 /home/iso目录下 (目录可自定义)
挂载镜像文件
# cd /home/iso # mount -o loop CentOS-7-x86_64-Everything-1908.iso /home/iso/
备份原yum源的配置文件
# mv /etc/yum.repos.d /etc/yum.repos.d.bak
创建本地yum源的配置文件
# mkdir /etc/yum.repos.d # vi /etc/yum.repos.d/CentOS-local.repo
在该文件中添加以下内容
#本源的名字(不能和其他重复) [base-local] name=CentOS7.2-local #步骤2中挂载镜像创建的目录 baseurl=file:///home/iso #启动yum源: 1-启用 0-不启用 enabled=1 #安全检测: 1-开启 0-不开启 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
更新yum源配置
# yum clean all # yum makecache
测试yum源
yum list #或者 yum repolis2.5、启动并配置NTP服务
保持集群中所有节点的时间同步。
其中master作为ntp服务器,其他所有节点以master节点作为基础同步时间。
参考: ntpd / CDH6_高达一号的博客-CSDN博客_cdh ntp时间同步">Linux_NTP 网络同步 -> ntpd / CDH6_高达一号的博客-CSDN博客_cdh ntp时间同步
-
在所有主机上安装ntp
# yum -y install ntp
-
所有主机的时区设置
确保主机时区是中国上海
如果不是,执行以下命令,将时区设置为中国上海
# timedatectl set-timezone Asia/Shanghai
-
启动ntp并设置为开机自启
# systemctl start ntpd # systemctl enable ntpd
-
配置ntp服务
修改所有节点上的/etc/ntp.conf文件
-
配置master节点
restrict 192.168.8.226 nomodify notrap nopeer noquery
restrict 192.168.8.1 mask 255.255.255.0 nomodify notrap server 127.127.1.0 Fudge 127.127.1.0 stratum 10
-
其他节点ntp配置
-
-
配置完成,重启ntp服务
# systemctl restart ntpd
-
其他节点手动同步matser节点的时间
# ntpdate -u 192.168.3.14
-
查看同步状态
# ntpstat
集群中所有主机都要安装
-
cdh官网对jdk版本说明
最低要求是1.8u31
-
卸载系统自带java版本
# java -version //查看自带jdk版本 # rpm -qa | grep java //查看自带Java环境 # yum -y remove java-..-headless.jar
-
安装jdk
将jdk安装包上传到/usr/java/,如果没有java目录,则新建一个java目录;
解压tar包,并删除tar包
# tar -xvf jdk-8u181-linux-x64.tar.gz #rm -rf jdk-8u181-linux-x64.tar.gz
-
修改环境变量,在/etc/profile文件中添加以下信息
export JAVA_HOME=/usr/java/jdk1.8.0_181 export JRE_HOME=/usr/java/jdk1.8.0_181/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
-
使环境变量生效
# source /etc/profile
-
测试
# java -version
-
将之前准备的五个文件放在/upload/cloudera-repos/目录下
-
安装httpd和createrepo
# yum -y install httpd createrepo
-
启动httpd服务并设置为开机自启动
# systemctl start httpd # systemctl enable httpd
-
在存放Cloudera Manager RPM包的目录下,生成RPM元数据
我的目录是:/upload/cloudera-repos/
# createrepo .
-
将cloudera-repos目录移到httpd的html目录下
# mv cloudera-repos /var/www/html # chmod -R 777 /var/www/ -- 目录访问权限设置
-
测试是否配置成功
在浏览器中访问http://192.168.3.14/cloudera-repos/
-
在Cloudera Manager Server节点主机上创建CM6的repo文件
# cd /etc/yum.repos.d # vi cloudera-manager.repo
新建cloudera-manager.repo文件,并添加以下内容并保存
[cloudera-manager] name=Cloudera Manager 6.0.1 baseurl=http://192.168.3.14/cloudera-repos/ gpgcheck=0 enabled=1
-
执行以下命令
# yum clean all && yum makecache
以下步骤都在master节点主机上 *** 作
3.1、安装Cloudera Manager Server只在master节点安装,执行以下命令
# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server3.2、配置本地Parcel存储库
-
Cloudera Manager Server安装完之后,进入到本地Parcel存储库目录下
# cd /opt/cloudera/parcel-repo/
-
将已下载的CDH Parcel文件上传到本路径下,然后执行以下命令生成sha文件
# sha1sum CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel | awk '{ print $1 }' > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
-
修改文件所有者
# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
-
在部署的cdh集群中,已配置
http://cdhmaster/cloudera-repos/
3.3.1、安装MySQL
-
删除系统可能自带的mariadb-libs
# yum -y remove mariadb-libs
-
解压mysql包
# tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
-
开始安装MySQL
按照以下顺序依次安装:
# rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm # rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm # rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm # rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm # rpm -ivh mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm (安装Cloudera Manager6需要)
-
安装mysql-community-server-5.7.29-1.el7.x86_64.rpm可能出现以下错误
-
解决方案:
-
安装net-tools
# yum -y install net-tools
-
安装perl
# yum -y install perl
-
3.3.2、配置MySQL
-
若MySQL服务已启动,先关闭服务
# sudo systemctl stop mysqld
-
将/var/lib/mysql目录下的ib_logfile0和ib_logfile1文件移出到/var/lib/mysql之外的备份位置,我是备份到了/var/lib/mysql-back/目录下(自己新建目录)
-
修改/etc/my.cnf文件
这里使用CDH官网推荐的配置,修改前记得备份一下
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock transaction-isolation = READ-COMMITTED # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: symbolic-links = 0 key_buffer_size = 32M max_allowed_packet = 32M thread_stack = 256K thread_cache_size = 64 query_cache_limit = 8M query_cache_size = 64M query_cache_type = 1 max_connections = 550 #expire_logs_days = 10 #max_binlog_size = 100M #log_bin should be on a disk with enough free space. #Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your #system and chown the specified folder to the mysql user. log_bin=/var/lib/mysql/mysql_binary_log #In later versions of MySQL, if you enable the binary log and do not set #a server_id, MySQL will not start. The server_id must be unique within #the replicating group. server_id=1 binlog_format = mixed read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M # InnoDB settings innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 64M innodb_buffer_pool_size = 4G innodb_thread_concurrency = 8 innodb_flush_method = O_DIRECT innodb_log_file_size = 512M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid sql_mode=STRICT_ALL_TABLES
3.3.3、设置MySQL root用户密码和其他安全性设置
-
我设置的root用户密码是:cssrc702
## 启动mysql systemctl start mysqld sudo /usr/bin/mysql_secure_installation
-
刚安装的MySQL,root密码为空,所以系统提示输入密码时,直接按Enter键,剩下的按下面输入 *** 作。
Enter current password for root (enter for none): OK, successfully used password, moving on... [...] Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y [...] Disallow root login remotely? [Y/n] N [...] Remove test database and access to it [Y/n] Y [...] Reload privilege tables now? [Y/n] Y All done!
-
若上一步,执行sudo /usr/bin/mysql_secure_installation,输入密码或者直接回车,报1045(28000)错误,执行以下 *** 作,再执行上一步 *** 作。
注意:此方法对应的MySQL版本为5.7系列。
参考:mysql5.7系列修改root默认密码 - 奶牛的没有 - 博客园
1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysqld 3、使用 root 用户登录到 mysql:mysql -u root 4、切换到mysql数据库(use mysql),更新 user 表: update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root'; 在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string 5、若是第4步修改成功,跳过此步。
若修改失败,则修改mysql的密码安全策略,执行以下命令: set global validate_password_length=4; set global validate_password_policy=0; 6、退出 mysql,编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1 的内容 7、重启 mysqld 服务,再用新密码登录即可 mysql -u root -p 如果还不行,就再输入 sudo /usr/bin/mysql_secure_installation, 密码是root,但是会提醒密码太简单不符合规范,可以重置密码(Cssrc@702123456)
3.3.4、安装MySQL JDBC驱动
-
将事先下好的mysql-connector-java-8.0.18.tar.gz解压
# tar zxvf mysql-connector-java-8.0.18.tar.gz
-
将JDBC驱动复制到/usr/share/java/目录下,没有该目录,需先创建
# sudo mkdir -p /usr/share/java/ # cd mysql-connector-java-8.0.18 # sudo cp mysql-connector-java-8.0.18.jar /usr/share/java/mysql-connector-java.jar
3.3.5、创建CDH需要的数据库
-
给MySQL增加必要的用户,用于安装的组件将MySQL作为源数据库
-
给安装的组件创建数据库以及对应用户
-- 以root用户登录MySQL -- mysql -u root -p -- 建立数据库脚本 CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 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 navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; create database hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; -- 用户授权, 密码按需求设置 GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Cssrc@702123456'; GRANT ALL ON hive .* TO 'hive '@'%' IDENTIFIED BY 'Cssrc@702123456';
Cloudera Manager Server包含一个配置数据库的脚本
-
MySQL数据库与CM Server在同一台主机上
执行命令:(可能需要输入密码,就是mysql的密码)
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
-
MySQL数据库与CM Server在不同主机上
执行命令:
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h
--scm-host scm scm
3.5.1、启动Cloudera Manager Server服务
启动服务: sudo systemctl start cloudera-scm-server 重置启动失败的服务 systemctl reset-failed cloudera-scm-server.service 查看服务启动日志: sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
3.5.2、访问Cloudera Manager WEB登录页面
打开浏览器,访问地址:http://
,默认账号和密码都为admin:
3.5.3、第一个欢迎页面
第一步:欢迎页面
在欢迎页面,点击右下角【继续】 按钮进行下一步
第二步:接受条款
勾选接受条款,点击【继续】按钮进行下一步
第三步:选择版本
选择版本,根据项目需求,选择对应的版本
3.5.4、第二个欢迎页面
第一步:欢迎页面
这是安装集群的欢迎页面。
点击【继续】按钮进行下一步
第二步:选择主机
这一步是要搜索并选择用于安装CDH集群的主机,在主机名称后面的输入框中输入各个节点的hostname或者ip,中间使用英文逗号分隔开,然后点击搜索,在结果列表中勾选要安装CDH的节点即可:
-
下图是已添加到集群中的主机:
-
下图是未添加到集群中的主机
第三步:指定存储库
Cloudera Manager Agent
这里选择自定义存储库,填写上面使用httpd搭建的Cloudera Manager YUM库的url
CDH and other software
在之前的【配置本地Parcel存储库】步骤中没有错误的话,这里会自动选择【使用Parcel】,并加载出CDH版本,确认无误后点击【继续】。
第四步:JDK安装
这里不需要勾选安装JDK,因为在安装CDH节点前,JDK已经安装完成。
取消勾选,然后继续。
第五步:SSH登录配置
用于配置集群主机之间的SSH登录,填写root用户的密码,根据集群配置填写合适的【同时安装数量】值即可:
第六步:安装Agent
这一步会自动进行节点Agent的安装,稍等一会就安装完成。
第七步:安装parcels
这一步也会自动安装的,分配速度取决于网络环境,耐心等待即可。
第八步:主机检查
检查完成即可.
若下面红色下划线的几条报感叹号,需要进行调整至正常,解决方案参考博客:CDH报错汇总
3.6、安装集群3.6.1、选择服务类型
这里根据需求以及集群主机性能,选择对应的服务。
3.6.2、角色分配
CDH会自动给出一个角色分配,如果觉得不合理,我们可以手动调整一下,注意角色分配均衡:
3.6.3、数据库设置
这里的用户名是指:各个数据库的用户名,并不是系统用户 root
3.6.4、等待安装
3.6.5、安装完成
到这里。
集群安装已经完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)