专业的编程技术博客社区

网站首页 > 博客文章 正文

银河麒麟服务器操作系统SP2安装Ambari2.7.5和HDP3.1.5

baijin 2024-08-30 11:40:42 博客文章 2 ℃ 0 评论

1 软件介绍


Ambari是一款用于部署、管理和监控Hadoop集群服务的开源系统,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeeper、Sqoop和Hcatalog等。它实现了以下功能:

1)安装一个Hadoop集群:

提供了以向导指引的方式安装一个集群,可以在任意的主机上安装Hadoop服务。

提供了对Hadoop服务的配置功能。

2)管理一个Hadoop集群:

提供了启动、停止等集群管理功能。

3)监控一个Hadoop集群:

提供了一个用于监控Hadoop集群健康状态的仪表盘。

提供了一套健康指标体系来收集监控数据。

提供了一套预警框架,可以结合预定的监控指标实现通知预警。

从设计上看ambari使用的Master/Slaves架构(主、从架构,由一个ambari-server和多个agent组成)。它通过一个server主进程来实现集群的管理和操作命令的发送,而具体的管理动作则由安装在每台目标主机上的agent进程进行执行。例如通过ambari启动的HDFS服务的时候,首先会由ambari-server向安装了HDFS服务所在主机的agent进程发送启动指令,然后再由相关agent进程执行其所在主机的本地命令脚本来启动HDFS的相应服务。

2 适配环境

2.1 操作系统环境

项目

版本

Kylin Linux Server

release V10 (SP2) /(Sword)-aarch64-Build09/20210524

Kernel

4.19.90-24.4.v2101.ky10.aarch64

2.2 硬件环境

节点类型

ip地址

主机名

主节点

10.1.110.80

ambari-master

从节点

10.1.110.81

ambari-slave01

从节点

10.1.110.82

ambari-slave02

2.3 软件环境

Ambari2.7.5

Hotonworks HDP-3.1.5组件

3 适配步骤

3.1 安装前配置

3.1.1 修改主机名(所有节点)

  • 修改主机名
hostnamectl set-hostname ambari-master
hostnamectl set-hostname ambari-slave01
hostnamectl set-hostname ambari-slave02


  • 修改hosts文件
vim /etc/hosts

添加内容如下:

10.1.110.80 ambari-master
10.1.110.81 ambari-slave01
10.1.110.82 ambari-slave02



3.1.2 设置免密登录(所有节点)

  • 生成秘钥
 ssh-keygen -t rsa
  • 各节点下发配置
ssh-copy-id ambari-master
ssh-copy-id ambari-slave01
ssh-copy-id ambari-slave02


3.1.3 关闭防火墙和selinux(所有节点)

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld


  • 禁用selinux
  • setenforce 0
    sed -i 's/enforcing/disabled/' /etc/sysconfig/selinux
    getenforce

    3.1.4 安装httpd(主节点)

    • yum安装
    yum -y install httpd
    systemctl start httpd
    • 添加到开机自启动
    systemctl enable httpd

    3.1.5 配置本地源(主节点)

    • 创建目录
    mkdir -p /var/www/html/localrepo/ISO/
    mkdir -p /var/www/html/localrepo/HDP_required/


    • 挂载iso

    先将Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso下载到本地系统上,然后挂载iso至/var/www/html/localrepo/ISO

    mount -o loop Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso /var/www/html/localrepo/ISO

    将给定压缩包hdp_required_RPMS_aarch64.tar.gz解压至/var/www/html/localrepo/HDP_required目录下

    tar zxvf hdp_required_RPMS_aarch64.tar.gz -C /var/www/html/localrepo/HDP_required
    • 将依赖拷贝到所有从节点
    scp -r HDP_required/ ambari-slave01:~/
    scp -r HDP_required/ ambari-slave02:~/

    3.1.6修改源文件(所有节点)

    • 备份系统自带repo文件
    cd /etc/yum.repos.d
    cp kylin_aarch64.repo kylin_aarch64.repo.bak
    • 修改repo文件
    vim kylin_aarch64.repo

    内容如下:

    [ks10-adv-os]
    
    name = Kylin Linux Advanced Server V10 - Os
    
    baseurl = http://10.1.110.80/localrepo/ISO/
    
    gpgcheck = 0
    
    enabled = 1
    
    [HDP_required]
    
    name = HDP_required
    
    baseurl = http://10.1.110.80/localrepo/HDP_required/
    
    gpgcheck = 0
    
    enabled = 1



    3.1.7主节点安装python2-dnf(主节点)

    • 将原系统的yum源关闭(如下图),仅使用本地的HDP_required源
    cd /var/www/html/localrepo/HDP_required
    rpm -Uvh --oldpackage python3-gpgme-1.13.1-5.ky10.aarch64.rpm gpgme-1.13.1-5.ky10.aarch64.rpm


    • 打开系统yum源
    yum install deltarpm -y
    • 关闭系统yum源
    cd /var/www/html/localrepo/HDP_required
    rpm -Uvh --oldpackage dnf-plugins-core-4.0.11-5.ky10.noarch.rpm python3-dnf-plugins-core-4.0.11-5.ky10.noarch.rpm
    rpm -Uvh --oldpackage *0.37.2-2* *4.2.15-7*
    rpm -Uvh --oldpackage *4.15.1-12*
    yum install python2-rpm
    rpm -Uvh --oldpackage ./libcomps-0.1.8-20.ky10.aarch64.rpm ./Packages/python2-libcomps-0.1.8-20.ky10.aarch64.rpm ./python3-libcomps-0.1.8-20.ky10.aarch64.rpm
    yum install ./python2-gpgme-1.13.1-5.ky10.aarch64.rpm
    yum install python2-dnf -y






    • 结束后记得打开源

    3.1.8从节点安装python2-dnf(从节点)

    cd HDP_required
    • 将原系统的yum源关闭(如下图),仅使用主节点的HDP_required源
    vim /etc/yum.repos.d/kylin_aarch64.repo
    rpm -Uvh --oldpackage python3-gpgme-1.13.1-5.ky10.aarch64.rpm gpgme-1.13.1-5.ky10.aarch64.rpm
    • 打开系统yum源
    yum install deltarpm -y
    • 关闭系统yum源
    rpm -Uvh --oldpackage dnf-plugins-core-4.0.11-5.ky10.noarch.rpm python3-dnf-plugins-core-4.0.11-5.ky10.noarch.rpm
    rpm -Uvh --oldpackage *0.37.2-2* *4.2.15-7*
    rpm -Uvh --oldpackage *4.15.1-12*
    yum install python2-rpm
    rpm -Uvh --oldpackage ./libcomps-0.1.8-20.ky10.aarch64.rpm ./Packages/python2-libcomps-0.1.8-20.ky10.aarch64.rpm ./python3-libcomps-0.1.8-20.ky10.aarch64.rpm
    yum install ./python2-gpgme-1.13.1-5.ky10.aarch64.rpm
    yum install python2-dnf -y
    • 结束后记得打开源

    3.1.9 制作ambari和HDP组件的仓库(主节点)

    将所需安装包下载到本地

    HDP-3.1.5.0-centos7-rpm-aarch64.tar.gz

    HDP-UTILS-1.1.0.22-centos7.tar.gz

    ambari-2.7.5.0-centos7.tar.gz

    1)创建ambari和hdp目录

    mkdir -p /var/www/html/hdp/ambari
    mkdir -p /var/www/html/hdp/HDP-UTILS-1.1.0.22


    解压ambari和HDP组件至对应目录(解压完成后,可以删掉安装包)

    tar -zxvf HDP-3.1.5.0-centos7-rpm-aarch64.tar.gz -C /var/www/html/hdp/
    tar -zxvf ambari-2.7.5.0-centos7.tar.gz -C /var/www/html/hdp/ambari/
    tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22/

    2)新建repo文件

    cd /etc/yum.repos.d/
    • 新建ambari.repo文件
    vim ambari.repo

    添加如下内容

    [ambari]
    
    name=ambari
    
    baseurl=http://10.1.110.80/hdp/ambari/ambari/
    
    gpgcheck=0
    
    enabled=1
    • 新建HDP.repo文件:
    vim HDP.repo

    添加如下内容

    [HDP]
    
    name=HDP
    
    baseurl=http://10.1.110.80/hdp/HDP/centos7/3.1.5.0-152/gpgcheck=0
    
    enabled=1
    • 新建HDP-UTILS.repo文件
    vim HDP-UTILS.repo

    添加如下内容

    [HDP-UTILS]
    
    name=HDP-UTILS
    
    baseurl=http://10.1.110.80/hdp/HDP-UTILS-1.1.0.22/hdp-utils/
    
    gpgcheck=0
    
    enabled=1
    • 将修改后的repo文件scp到所有从节点中
    scp kylin_aarch64.repo ambari.repo HDP.repo HDP-UTILS.repo root@ambari-slave01:/etc/yum.repos.d
    scp kylin_aarch64.repo ambari.repo HDP.repo HDP-UTILS.repo root@ambari-slave02:/etc/yum.repos.d


    3.1.10更新源(所有节点)

    更新仓库数据

    yum clean all
    yum makecache


    3.1.11 安装必备软件(所有节点)

    安装软件包

    yum install -y python3-kerberos kylin-lsb-core kylin-lsb-cxx kylin-lsb-desktop kylin-lsb-languages kylin-lsb-printing kylin-lsb-submod-multimedia kylin-lsb-submod-security

    3.1.12 java配置(所有节点)

    使用系统自带的JDK,无需配置JAVA_HOME环境变量。

     java -version

    安装java-1.8.0-openjdk-devel

    yum install java-1.8.0-openjdk-devel -y

    备注:系统自带JDK路径为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-7.ky10.aarch64/

    (此路径在后续的ambari-server setup 中作为JAVA_HOME环境变量使用)

    3.2 安装步骤

    3.2.1 安装ambari-agent(所有节点)

    • 安装ambari-agent
    yum -y install ambari-agent
    • 修改os_family.json文件
     vim /usr/lib/ambari-agent/lib/ambari_commons/resources/os_family.json

    增加“kylin”到distro中,如下图所示:

    在aliases中添加:"kylin10": "centos7"

    • 拷贝到从节点
    scp /usr/lib/ambari-agent/lib/ambari_commons/resources/os_family.json ambari-slave01:/usr/lib/ambari-agent/lib/ambari_commons/resources
    scp /usr/lib/ambari-agent/lib/ambari_commons/resources/os_family.json ambari-slave02:/usr/lib/ambari-agent/lib/ambari_commons/resources
    • 修改agent的os_check.py文件(所有节点)
    vim /usr/lib/ambari-agent/lib/ambari_commons/os_check.py +205
    • 拷贝到从节点
    scp /usr/lib/ambari-agent/lib/ambari_commons/os_check.py ambari-slave01:/usr/lib/ambari-agent/lib/ambari_commons
    scp /usr/lib/ambari-agent/lib/ambari_commons/os_check.py ambari-slave02:/usr/lib/ambari-agent/lib/ambari_commons
    • 修改agent的yum_manager.py文件(所有节点)
    vim /usr/lib/ambari-agent/lib/ambari_commons/repo_manager/yum_manager.py +287

    (因ambari暂时仅支持yum模块,需改写代码函数支持dnf模块,具体内容如下图所示)

    具体内容如下:

    import dnf
    
    yb = dnf.Base()
    
    name_regex = re.escape(name).replace("\\?", ".").replace("\\*", ".*") + '#39;
    
    regex = re.compile(name_regex)
    
    with suppress_stdout():
    
    q = dnf.sack.rpmdb_sack(yb).query().installed()
    
    package_list = set([i.pkgtup for i in q])
    
    for package in package_list:
    
    if regex.match(package[0]):
    
    return True
    
    return False
    • 拷贝到从节点
    scp /usr/lib/ambari-agent/lib/ambari_commons/repo_manager/yum_manager.py ambari-slave01:/usr/lib/ambari-agent/lib/ambari_commons/repo_manager/
     scp /usr/lib/ambari-agent/lib/ambari_commons/repo_manager/yum_manager.py ambari-slave02:/usr/lib/ambari-agent/lib/ambari_commons/repo_manager/


    • 指定ambari版本
    vim /var/lib/ambari-agent/bin/ambari-agent
    • 拷贝到从节点
    scp /var/lib/ambari-agent/bin/ambari-agent ambari-slave01:/var/lib/ambari-agent/bin/
    scp /var/lib/ambari-agent/bin/ambari-agent ambari-slave02:/var/lib/ambari-agent/bin/


    • 启动 ambari-agent
    systemctl start ambari-agent
    systemctl status ambari-agent


    • 设置ambari-agent 开机自启动(可选)
    systemctl enable ambari-agent.service

    3.2.2 安装ambari-server(主节点)

    • 安装ambari-server
    yum remove postgresql-libs-10.5-19.p01.ky10.aarch64
    rpm -ivh /var/www/html/localrepo/HDP_required/postgresql-libs-10.5-12.ky10.aarch64.rpm
    yum -y install ambari-server
    • 修改server的os_check.py文件
    vim /usr/lib/ambari-server/lib/ambari_commons/os_check.py +205

    做如下修改:

    3.2.3 mariadb安装与配置(主节点)

    3.2.3.1 安装mariadb

    第一步:安装与测试登陆

    1.安装命令

    yum -y install mariadb mariadb-server

    2.启动MariaDB

    systemctl start mariadb

    3.进行MariaDB的相关简单配置

    mysql_secure_installation

    首先是设置密码,会提示先输入密码.。

    Enter current password for root (enter for none):   #<–初次运行直接回车

    (2)设置密码

    Set root password? [Y/n]            #<– y
    New password:                           #<– 设置root用户的密码
    Re-enter new password:             #<– 再输入一次你设置的密码



    (3)其他配置

    Remove anonymous users? [Y/n]                               #<– 回车
    Disallow root login remotely? [Y/n]                            #<–回车
    Remove test database and access to it? [Y/n]            #<– 回车
    Reload privilege tables now? [Y/n]                            #<– 回车

    初始化MariaDB完成,

    (4)测试登录

    mysql -u root -p

    第二步:配置MariaDB的字符集

    1.修改/etc/my.cnf.d/mariadb-server.cnf文件

    vim /etc/my.cnf.d/mariadb-server.cnf

    在[mysqld]标签下添加

    init_connect='SET collation_connection = utf8_unicode_ci'
    
    init_connect='SET NAMES utf8'
    
    character-set-server=utf8
    
    collation-server=utf8_unicode_ci
    
    skip-character-set-client-handshake

    2.新建/etc/my.cnf.d/client.cnf文件

    vim /etc/my.cnf.d/client.cnf

    添加如下内容:

    [client]
    
    default-character-set=utf8

    3.修改/etc/my.cnf.d/mysql-clients.cnf文件

    vim /etc/my.cnf.d/mysql-clients.cnf

    在[mysql]中添加

    default-character-set=utf8

    4.全部配置完成,重启MariaDB

    systemctl restart mariadb

    第三步:进入MariaDB查看字符集

    mysql -u root -p
    MariaDB [(none)]> show variables like "%character%";
    MariaDB [(none)]> show variables like "%collation%";

    设置开机启动:

    systemctl enable mariadb

    mariadb安装完成

    3.2.3.2 在mysql创建ambari、hive数据库及用户

    • 创建 ambari 库,并添加相应的用户

    命令如下:

    CREATE DATABASE ambari;
    
    use ambari;
    
    CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
    
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
    
    CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
    
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
    
    CREATE USER 'ambari'@'ambari-master' IDENTIFIED BY 'ambari';
    
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'ambari-master';
    
    FLUSH PRIVILEGES;



    • 创建 hive 库,并添加相应的用户
    CREATE DATABASE hive;
    
    use hive;
    
    CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
    
    GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
    
    CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
    
    GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
    
    CREATE USER 'hive'@'ambari-master' IDENTIFIED BY 'hive';
    
    GRANT ALL PRIVILEGES ON *.* TO 'hive'@'ambari-master';
    
    FLUSH PRIVILEGES;
    
    select User,Host,Password from mysql.user;



    如果出现错误要删除对应的表信息并重新创建,如下图(没问题可跳过):

    3.2.3.3 建立 MySQL 与 ambari 的连接

    • 安装mysql-connector-java.jar
    cp /var/www/html/localrepo/HDP_required/mysql-connector-java.jar /usr/share/java/
    • 拷贝到lib 目录下
    cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
    • 修改配置文件
    vim /etc/ambari-server/conf/ambari.properties
    • 在最后一行添加
    server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar

    3.2.4 启动 ambari-server 的配置程序(主节点)

    修改配置文件/usr/sbin/ambari-server

    vim /usr/sbin/ambari-server +34
    ambari-server setup

    在上面图中,若使用系统java环境,则JAVA_HOME的值应为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.h5.ky10.aarch64/

    注意在下图中,数据库和用户名都默认是ambari,所以密码就是ambari

    3.2.5 初始化数据库(主节点)

    mysql -u ambari -p
    MariaDB [(none)]> use ambari;
    MariaDB [ambari]> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

    确保以上都显示为OK

    指定数据库驱动

    ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

    3.2.6导入stacks相关包

    • 传入hdp3_stack.tar.gz包
    scp hdp3_stack.tar.gz root@10.1.110.80:/var/lib/ambari-server/resources/stacks/HDP
    • 解压
    cd /var/lib/ambari-server/resources/stacks/HDP
    tar zxvf hdp3_stack.tar.gz
    rm -rf hdp3_stack.tar.gz


    3.2.7去掉SMARTSENSE服务

    vim /var/lib/ambari-server/resources/stacks/HDP/3.0/services/SMARTSENSE/metainfo.xml

    3.2.6 启动ambari-server(主节点)

    • 修改文件并启动
    vim /etc/rc.d/init.d/ambari-server
    systemctl start ambari-server
    systemctl status ambari-server



    • 查看 ambari-server 是否启动成功

    在浏览器输入对应地址 ip:8080,账号密码都是admin

    3.2.7 安装部署HDP集群

    登录成功后开始部署

    输入集群名称

    导入版本信息,选择文件HDP-3.1.5.0-152.xml

    填入正确的源地址

    http://10.1.110.80/hdp/HDP/centos7/3.1.5.0-152/

    http://10.1.110.80/hdp/HDP-UTILS-1.1.0.22/hdp-utils/

    hostname 在 /etc/hosts中查看

    将查看到的内容在 Target Hosts 中输入

    ambari-master
    
    ambari-slave01
    
    ambari-slave02

    密钥部分不要直接复制,最好拷贝到本地,然后通过本地上传

    scp root@10.1.110.80:~/.ssh/id_rsa ./

    正确配置如下图所示

    点击 Click here to see the check results. 查看是否警告。如存在异常,则需解决,再执行下一步。

    点击下一步

    会有连续的警告,如下,直接PROCEED ANYWAY 即可

    默认即可,点击下一步

    NFSGateway那一列全不选,其他全选,设置如下,下一步

    输入正确密码

    Hive这里记得要test,填写内容如下

    默认下一步

    设置密码

    设置好后发现没有错误提示,下一步

    Review界面需要提醒用户查看Repositories是否有详细的仓库地址,若无,需要刷新下界面,否则后面会因为仓库为空导致安装失败,确认无误开始部署

    等待安装部署,成功后如下图所示,会有如下警告

    直接进行下一步

    点击complete完成配置

    可以看到除HDFS为绿色外,其余所有的服务YARN、Hive、ZooKeeper都是红的,需要手动重启一遍,启动顺序为:Hive、ZooKeeper、YARN,启动YARN时会有一个子服务启动失败,如下图:

    这时候是因为端口被占用了,需要修改配置,如下图所示:

    修改完成以后,重启YARN服务,就可恢复正常。

    备注:大规模部署的分布式节点,需要很大的存储空间。而且启动服务非常消耗节点的内存,服务越多消耗内存越大。

    Tags:

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表