国产化适配:ambari 适配统信1050e

635 阅读3分钟

ambari 适配统信1050e

Apache Ambari 是一个用于管理、监控和维护 Hadoop 集群的开源管理平台。统信 UOS 是中国一家操作系统公司开发的一款基于 Linux 的操作系统。要在统信 UOS 上安装和运行 Ambari

背景

现在国内的系统基本都需要适配国产化系统,本文详细介绍amabri适配统信1050e遇到的问题,和解决的方法,实际上ambari我们也实现了国产,因涉及公司产品,所以这里就只用ambari原生代替

环境准备

步骤 1 准备

  1. 操作系统:确保统信 UOS 1050e 已启动并更新到最新状态。
  2. 检查系统要求:确保系统满足 Ambari 的最低硬件要求(CPU、内存、磁盘空间等)
  3. 集群至少3台主机

步骤 2 安装依赖项

  1. 安装 Java

    Ambari 需要 JDK 1.8 或更高版本。在统信 UOS 上,可以安装 OpenJDK:

    sudo apt-get install openjdk-8-jdk
    
  2. 安装其他依赖项

    sudo apt-get install wget curl git python
    

步骤 3:配置数据库

Ambari 需要一个关系型数据库来存储其元数据。这里以 MySQL 为例:

  1. 安装 MySQL

    sudo apt-get install mysql-server
    
  2. 启动并保护 MySQL

    sudo systemctl start mysql
    sudo mysql_secure_installation
    
  3. 创建 Ambari 数据库并用户

    mysql -u root -p
    CREATE DATABASE ambari;
    CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'mypassword';
    GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    

步骤 4:安装 Ambari

  1. 下载 Ambari Repository 文件

    从 Apache Ambari 下载页面获取统信 UOS 兼容的 RPM 文件。如果官方仓库不包含 UOS,尝试使用与 UOS 版本最接近的 CentOS 或 Ubuntu 版本的 repository。

  2. 添加 Ambari Repository

    下载并安装 Ambari repository:

    sh
    wget http://public-repo-1.hortonworks.com/ambari/ambari/2.x/updates/2.7.5/ambari.repo
    sudo mv ambari.repo /etc/apt/sources.list.d/
    sudo apt-get update
    
  3. 安装 Ambari Server 和 Agent

    sudo apt-get install ambari-server
    sudo apt-get install ambari-agent
    

步骤 5:启动并配置 Ambari

  1. 设置 Ambari Server

    sudo ambari-server setup
    

    根据提示配置 Ambari Server,包括数据库连接信息(选择 MySQL 作为数据库)。

  2. 启动 Ambari Server

    sudo ambari-server start
    
  3. 配置 Ambari Agent

    编辑 /etc/ambari-agent/conf/ambari-agent.ini 文件,设置 hostname 为 Ambari Server 的主机名或 IP 地址。

    sudo ambari-agent start
    

注册主机失败

Load key "/var/run/ambari-server/bootstrap/2/sshKey": invalid format ocdp@ha

解决

直接使用id_rsa文件,不要copy文件内容

开启kerberos报错

image.png

查看日志

/var/log/ambari-server/ambari-server.log

2024-10-25 17:38:04,244  WARN [Server Action Executor Worker 1990] ServerActionExecutor:471 - Task #1990 failed to complete execution due to thrown exception: java.lang.NullPointerException:null
java.lang.NullPointerException
        at org.apache.ambari.server.serveraction.kerberos.CreateKeytabFilesServerAction.cacheKeytab(CreateKeytabFilesServerAction.java:420)
        at org.apache.ambari.server.serveraction.kerberos.CreateKeytabFilesServerAction.createKeytab(CreateKeytabFilesServerAction.java:352)
        at org.apache.ambari.server.serveraction.kerberos.CreateKeytabFilesServerAction.processIdentity(CreateKeytabFilesServerAction.java:244)
        at org.apache.ambari.server.serveraction.kerberos.KerberosServerAction.processIdentities(KerberosServerAction.java:458)
        at org.apache.ambari.server.serveraction.kerberos.CreateKeytabFilesServerAction.execute(CreateKeytabFilesServerAction.java:105)
        at org.apache.ambari.server.serveraction.ServerActionExecutor$Worker.execute(ServerActionExecutor.java:550)
        at org.apache.ambari.server.serveraction.ServerActionExecutor$Worker.run(ServerActionExecutor.java:466)
        at java.lang.Thread.run(Thread.java:748)

解决

8ccab4250fb8aee86ed03b9a3a8cb8d.png 加密方式 只保留ase rc4即可,系统不支持多种加密所以报空指针异常

开启kerberos nodemanger启动不了

报错

[/usr/hdp/3.1.0.0-78/hadoop-yarn/bin/container-executor, --checksetup]
2024-01-16 20:12:57,397 WARN  nodemanager.LinuxContainerExecutor (LinuxContainerExecutor.java:init(310)) - Exit code from container executor initialization is : 127
org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationException: ExitCodeException exitCode=127: /usr/hdp/3.1.0.0-78/hadoop-yarn/bin/container-executor: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

	at org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationExecutor.executePrivilegedOperation(PrivilegedOperationExecutor.java:182)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationExecutor.executePrivilegedOperation(PrivilegedOperationExecutor.java:208)
	at org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor.init(LinuxContainerExecutor.java:306)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceInit(NodeManager.java:403)
	at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:962)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:1042)
Caused by: ExitCodeException exitCode=127: /usr/hdp/3.1.0.0-78/hadoop-yarn/bin/container-executor: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

分析

这里是验证,可以直接从centos7上将libcrypto.so.10 copy到/lib64下即可

解决

ln -s /lib64/libcrypto.so.1.0.2k /lib64/libcrypto.so.1.0.2k

总结

在统信 UOS 上适配和运行 Ambari 需要确保系统满足依赖项和环境要求,安装过程与在其他兼容的操作系统上类似。请根据具体的操作系统环境进行适当调整,如果遇到兼容性问题,参考官方文档或社区支持获取更多帮助。