栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

CDH6集群完全离线安装

CDH6集群完全离线安装

CDH6集群完全离线安装 1、文件下载 CM6 rpm

下载该链接中的所有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版本,包含的软件比较全)。

2.、安装之前 2.1、网络相关设置 -- 所有主机

设置固定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 得到一致的域名

2.2、禁用防火墙 -- 所有主机

停止防火墙

# systemctl stop firewalld

关闭防火墙开机自启

# systemctl disable firewalld
2.3、设置SELinux模式 -- 所有主机

查看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命令

2.4、设置每台主机的本地源

互联网上有很多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 repolis

 

2.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

2.6、安装JDK8 -- 所有主机

集群中所有主机都要安装

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

2.7、配置cloudera Manage Server yum源 -- 主节点master

将之前准备的五个文件放在/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

 

3、开始安装

以下步骤都在master节点主机上操作

3.1、安装Cloudera Manager Server

只在master节点安装,执行以下命令

# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

 

3.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、安装数据库

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';
3.4、设置Cloudera Manager 数据库

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、安装CDH节点

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://:7180,默认账号和密码都为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、安装完成

到这里。集群安装已经完成了。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号