CDH6.0.1集群完全离线安装

CDH6.0.1集群完全离线安装,第1张

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、安装完成

到这里。


集群安装已经完成了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存