HiDataPlus使用Apache Ambari安装HDP3.3.2

一、HiDataPlus

HidataPlus是由几个热爱开源软件的成员组成,因为Hortonworks和Cloudera合并等原因,原有的HDP版本不再更新,于是进行了集成新的版本。版本不仅支持x86,也支持aarch64(arm服务器)

官网:http://www.hdp.link/

这里选择HDP3.3.2.0-013版本,切勿使用实验版本:

image

二、基础环境配置

2.1.常用命令安装

ARM架构换源

1. 清理当前无效配置

cd /etc/yum.repos.d/
rm -f *.repo

2. 创建华为云 AltArch 源 (关键步骤)

注意:这里去掉了 7.9.2009 子目录,直接使用 7/os/aarch64。华为云的 altarch 目录通常维护着 ARM 架构的最新归档状态。

cat > /etc/yum.repos.d/CentOS-AltArch-Huawei.repo << 'EOF'
[base]
name=CentOS-7 - Base - Huawei AltArch
baseurl=https://repo.huaweicloud.com/centos-altarch/7/os/aarch64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[updates]
name=CentOS-7 - Updates - Huawei AltArch
baseurl=https://repo.huaweicloud.com/centos-altarch/7/updates/aarch64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[extras]
name=CentOS-7 - Extras - Huawei AltArch
baseurl=https://repo.huaweicloud.com/centos-altarch/7/extras/aarch64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[centosplus]
name=CentOS-7 - Plus - Huawei AltArch
baseurl=https://repo.huaweicloud.com/centos-altarch/7/centosplus/aarch64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
EOF

3. 测试连接

yum clean all
yum makecache

关闭 GPG 检查

sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/CentOS-AltArch-Huawei.repo

安装常用命令

yum install open-vm-tools bash-completion lrzsz tree vim wget net-tools -y

2.2.设置克隆的多台 Linux 虚拟机

对三台虚拟机完成主机名、固定 IP  SSH 登陆等系统设置

2.2.1.配置固定 IP 地址

开启 主机修改主机名为 hdp01.zhyi.com并修改固定 ip 为: 10.211.55.10

# 修改主机名
hostnamectl set-hostname hdp01.zhyi.com

# 修改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将BOOTPROTO的属性值改为static,
IPADDR=192.168.161.131
GATEWAY=192.168.161.2
NETMASK=255.255.255.0
DNS1=8.8.8.8

# 重启网卡
service network stop
service network start

# 或者直接重启
service network restart 

的操作启动 node2  node3,

  • 修改 node2 主机名为 hdp02.zhyi.com设置 ip  10.211.55.11
  • 修改 node2 主机名为 hdp03.zhiyi.com ,设置 ip  10.211.55.12

2.2.2.配置主机名映射

 3  Linux  /etc/hosts 文件中,入如下内容( 3 台都要添加

10.211.55.10 hdp01.zhyi.com
10.211.55.11 hdp02.zhyi.com
10.211.55.12 hdp03.zhyi.com

2.2.3.配置 SSH 

后续安装的集群化软件,多数需要录以及行命,我们可以简单,配置 Linux 服务器之密码互相 SSH 登陆

⑴.在一台机器都行: ssh-keygen -t rsa -b 4096 ,一路回车即可

 # 查看生成的秘钥
cd .ssh

⑵.在一台机器都

ssh-copy-id hdp01.zhyi.com
ssh-copy-id hdp02.zhyi.com
ssh-copy-id hdp03.zhyi.com

上面会要求设置密码,设置为123456就可以了

⑶.执行完后, hdp01.zhyi.com、hdp02.zhyi.com、hdp03.zhyi.com将完成 root 用户之互通

# 在hdp01.zhyi.com中免密登录hdp02.zhyi.com
ssh hdp02.zhyi.com

2.3.关闭防火墙

三台服务器均执行

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

2.4.关闭SELINUX

三台服务器均执行

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

2.5.同步系统时间

修改时区并配置自动时间同步,以下操作在 Linux 

Ambari 需要服务器上运行chronyd 服务,在 3 台主机上都需要运行,chronyd 是 CentOS 7 系统的时钟同步服务(替代传统的 ntpd),Ambari 要求所有节点时钟同步,否则会引发服务部署 / 运行异常(比如 Kerberos 认证失败、日志时间错乱等)。

步骤 1:在每台主机上执行以下命令(批量执行可用 ansible,或逐台操作)

# 1. 安装 chrony(确保包存在)
yum install -y chrony

# 2. 修改配置文件(使用国内时钟源,提高同步稳定性)
cp /etc/chrony.conf /etc/chrony.conf.bak  # 备份原有配置
cat > /etc/chrony.conf << 'EOF'
# 使用国内阿里云时钟源
server ntp.aliyun.com iburst
server time1.aliyun.com iburst
server time2.aliyun.com iburst

# 允许本地网络同步(可选,若集群内有时间服务器)
allow 10.0.0.0/8
allow 192.168.0.0/16
allow 172.16.0.0/12

# 本地时钟作为备用(当外网不可用时)
local stratum 10

# 日志和存储路径
driftfile /var/lib/chrony/drift
logdir /var/log/chrony
log measurements statistics tracking
EOF

# 3. 启动并设置开机自启
systemctl start chronyd
systemctl enable chronyd

# 4. 验证服务状态(确保显示 active (running))
systemctl status chronyd

# 5. 手动同步时钟(立即生效)
chronyc -a makestep

步骤 2:验证时钟同步效果

在任意一台主机执行,检查 3 台主机的时间是否一致:
# 查看当前主机时间
date

# (可选)检查 chrony 同步状态
chronyc sources -v

# 跨主机验证(替换为另外两台主机的IP)
ssh 10.211.55.11 "date"
ssh 10.211.55.12 "date"

步骤3:修改时区为中国上海时间

请在 所有 3 台主机 上执行以下命令,将时区修正为北京时间:
# 1. 删除旧的时区链接
rm -f /etc/localtime

# 2. 创建指向上海时区的新链接
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 3. (可选) 写入时区配置文件,防止重启后失效
echo "ZONE=Asia/Shanghai" > /etc/sysconfig/clock

# 4. 再次强制同步时间
chronyc -a makestep

# 5. 验证时间(现在应该显示 CST)
date

注意时区不对,步骤2中同步后验证时间也是不对的。

2.6.JDK安装(每台均需安装)

由于我这里的版本是3.3.2.0,所以使用JDK8,同时由于当前使用macbook 的虚拟机安装CPU是M3所以使用毕昇JDK17 AArch64 版本,下载地址:https://www.hikunpeng.com/zh/developer/devkit/download/gcc

image

下载jdk:

image

2.6.1.安装命令:

sudo mkdir -p /usr/java
tar -zxvf bisheng-jdk-8u472-b11-linux-aarch64.tar.gz -C /usr/java/

vim /etc/profile
# 添加内容
export JAVA_HOME=/usr/java/bisheng-jdk1.8.0_472
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

# source让修改生效
source  /etc/profile

2.6.2.设置软连接

Ambari 对 /usr/jdk64 目录的结构有非常严格的要求。它不仅仅要求 /usr/jdk64 存在,通常还期望在这个目录下有一个名为 jdk 的子目录,或者该目录本身必须完全符合特定结构(包含 binlibjre 等直接可见)。

我们需要创建一个更符合 Ambari 预期的目录结构:/usr/jdk64/jdk 指向你的实际 JDK

第1步:清理旧的软链接

 
rm -rf /usr/jdk64

第2步:创建标准目录结构

执行以下命令,创建 /usr/jdk64 目录,并在其中创建一个名为 jdk 的软链接指向你的毕昇 JDK:
# 1. 创建主目录
mkdir -p /usr/jdk64

# 2. 创建软链接:/usr/jdk64/jdk -> 你的实际 JDK 路径
ln -s /usr/java/bisheng-jdk1.8.0_472 /usr/jdk64/jdk

第3步:验证结构

执行以下命令检查结构是否正确。Ambari 应该能在 /usr/jdk64/jdk/bin/java 找到 Java。
# 查看目录结构
ls -l /usr/jdk64/
# 输出应该显示:jdk -> /usr/java/bisheng-jdk1.8.0_472
# 验证 java 是否可访问 ls -l /usr/jdk64/jdk/bin/java # 输出应该显示 java 可执行文件的详细信息

2.7.安装httpd服务(每台均需安装)

yum -y install httpd
systemctl start httpd.service
systemctl enable httpd.service
systemctl enable httpd.service

三、Ambari、HDP安装

3.1.上传解压

在hdp01.zhyi.com上,将tar包解压,只需要在一台服务器解压即可。

# 创建目录,用户保存解压的安装部
mkdir /var/www/html/ambari
mkdir /var/www/html/HDP
mkdir /var/www/html/HDP-UTILS
mkdir /var/www/html/HDP-GPL

# 解压到指定目录, 注意HDP-UTILS的包下的目录层级可能有所不同
tar -zxvf ambari-2.7.8.0-213-redhat7-aarch64.tar.gz -C /var/www/html/ambari/
tar -zxvf HDP-3.3.2.0-013-redhat789-aarch64.tar.gz -C /var/www/html/HDP
tar -zxvf HDP-UTILS-1.1.0.22-redhat789-aarch64.tar.gz -C /var/www/html/HDP-UTILS/
tar -zxvf HDP-GPL-3.3.2.0-013-redhat789-aarch64.tar.gz -C /var/www/html/HDP-GPL/

cd /var/www/html/ 
chmod -R 755 /var/www/html/ambari/ 
chmod -R 755 /var/www/html/HDP/ 
chmod -R 755 /var/www/html/HDP-UTILS/
chmod -R 755 /var/www/html/HDP-GPL/

3.2.编辑repo源

repo文件需要每台服务器都有

# 进入到目录
cd /etc/yum.repos.d/

# 创建文件ambari.repo
vim ambari.repo
# 添加内容
[Ambari]
name=ambari
baseurl=http://hdp01.zhyi.com/ambari/2.7.8.0-213
gpgcheck=0

# 创建文件hdp.repo
vim hdp.repo
# 添加内容
[HDP-3.3]
name=HDP-3.3
baseurl=http://hdp01.zhyi.com/HDP/3.3.2.0-013
gpgcheck=0

[HDP-UTILS-1.1.0.22]
name=HDP-UTILS-1.1.0.22
baseurl=http://hdp01.zhyi.com/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22
gpgcheck=0

# 所有节点均需执行
yum clean all && yum repolist

注意:上面baseurl中node1指的是当前主机名,根据自己的主机名替换即可

将node1中创建的两个repo文件发送到hdp02.zhyi.com、hdp03.zhyi.com

scp ambari.repo hdp.repo hdp02.zhyi.com:/etc/yum.repos.d
scp ambari.repo hdp.repo hdp03.zhyi.com:/etc/yum.repos.d

3.3.安装MySQL

3.3.1.安装MySQL

MySQL用于存储Ambari元数据,安装MySQL8参考:https://www.cnblogs.com/auguse/articles/13324110.html,如果下载找不到源地址:

# 1. 下载最新的 MySQL 8.0 源配置包
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

# 2. 如果下载成功,安装它
yum localinstall -y mysql80-community-release-el7-11.noarch.rpm

# 3. 如果上面那个下载失败,尝试 MySQL 5.7 (Ambari 更常用)
# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# yum localinstall -y mysql57-community-release-el7-11.noarch.rpm

3.3.2.上传MySQL驱动

MySQL驱动jar下载地址:https://mirrors.aliyun.com/mysql/Connector-J/?spm=a2c6h.25603864.0.0.17ec2ca85C2DpZ

将驱动上传到指定的目录

第 1 步:删除文件”

# 先确认它确实是个文件
ls -ld /usr/share/java

# 强制删除这个错误的文件
rm -f /usr/share/java

第 2 步:创建正确的目录

mkdir -p /usr/share/java

第 3 步:验证目录已创建

ls -ld /usr/share/java
输出应该显示 drwxr-xr-x (d 代表 directory),而不是 -rw-r--r--

第 4 步:重新复制 Jar 包

cp /opt/mysql-connector-java-8.0.29.jar /usr/share/java/

3.3.3.创建 ambari 账号及数据库

# 使用 root 登录 mysql
# 执行以下操作
CREATE DATABASE ambari DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
create user 'ambari'@'%' identified by '123456';
grant all privileges on ambari.* to 'ambari'@'%' with grant option;
flush privileges;

# 如果部署 hive,hue 等其他服务,请创建相应的用户及数据库
# mysql8 修改密码
alter user 'ambari'@'%' identified by 'sunhola123';

3.4.安装ambari-server

3.4.1.异常解决(集群集群均需要安装)

安装软件包,如过能正常安装,不需要关注后续

# yum 安装 ambari-server
yum install ambari-server -y

image

如果出现下载安装报错:提示服务器上的 repodata/primary.xml.gz 文件中记录的 ambari-server.rpm 的 SHA256 校验和或文件大小,与当前硬盘上 /var/www/html/ambari/2.7.8.0-213/ambari/ambari-server-2.7.8.0-213.aarch64.rpm 这个实际文件不匹配

请在 hd-01 上依次执行以下命令,强制重新生成元数据,让校验和与实际文件匹配(必须在 hd-01 源服务器上执行):
  • 1. 进入 Ambari 源根目录
cd /var/www/html/ambari/2.7.8.0-213
  • 2. 确认 createrepo 工具已安装
yum install -y createrepo

  • 3. 【关键步骤】重新生成 repodata
执行此命令会扫描目录下所有 RPM 包(包括 ambari/ 子目录里的),并更新 repodata 中的校验和。
createrepo --update .
注意最后的 . 代表当前目录。执行过程可能需要几秒钟。
  • 4. 验证生成结果
检查 repodata 的时间戳是否变成了当前时间
ls -lht repodata/

您应该看到 primary.xml.gzfilelists.xml.gz 等文件的时间是刚刚更新的。
  • 5. (可选但推荐) 检查 HDP 和 HDP-UTILS
既然 Ambari 出了问题,HDP 和 HDP-UTILS 很可能也是同样的情况(文件被替换过但没更新元数据)。请一并修复:
# 修复 HDP (请先 cd 到 HDP 的根目录,即包含 repodata 的那一层)
# 假设您的 HDP 路径类似下面这个,请根据实际 find 的结果调整
cd /var/www/html/HDP/HDP/centos7/3.3.2.0-013 
createrepo --update .

# 修复 HDP-UTILS
cd /var/www/html/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22
createrepo --update .
  • 6. 客户端清理缓存并重试
回到您运行 yum install 的终端(或者是其他节点),执行:
# 必须彻底清理旧缓存
yum clean all
rm -rf /var/cache/yum/*

# 重新拉取元数据
yum makecache

# 再次安装
yum install ambari-server -y

3.4.2.配置 Ambari Server

# 对 ambari-server 进行配置
ambari-server setup

image

image

主要配置内容回顾:

  1. 是否使用 root 用户:选择使用(默认或输入 y)。
  2. 配置 JDK:选择 2 (Custom JDK),然后输入你的 JAVA_HOME 路径(例如:/usr/java/bisheng-jdk1.8.0_472)。
  3. 是否下载 GPL 协议:选择 n
  4. 配置数据库:根据提示输入(选择自定义数据库 MySQL,输入主机名、端口、库名、用户名、密码等)。
  5. 选择 JDBC 驱动:由于前面已经手动修改/放置了驱动,此处通常输入 yes 确认或直接回车。
  6. 确认数据库配置:确认无误。

3.5.初始化数据库

配置结束后,需要手动登录 MySQL 执行建表脚本:

# 结束后使用 ambari 用户登录 mysql
mysql -u ambari -p
# (输入之前设置的 ambari 用户密码)
# 登录后执行以下命令导入表结构
use ambari; source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

3.6.启动ambari-server

# 启动服务
ambari-server start
# 查看启动状态
ambari-server status

# 查看服务日志,最终启动成功即可,个别会有报错,但是报错不影响服务不用理会,如果影响服务则不行
tail -f /var/log/ambari-server/ambari-server.log

启动后,在浏览器访问:http://10.211.55.6:8080/#/login

四、HiDataPlus(HDP)安装

同Hortonwork的HDP发行版类似,HiDataPlus(HDP)使用Ambari UI进行安装。安装过程可参考如下:

登录地址:http://10.211.55.6:8080/#/login
账户/密码:admin/admin

输入集群名称–>NEXT

image

选择HDP的版本,这里使用的是HDP-3.3版本

选择操作系统(因为使用的CentOS7,所以选择redhat7)并且指定HDP和HDP-UTILS的rpm的URL。

image

输入节点主机名列表

# 获取主机私钥文件
cat /root/.ssh/id_rsa

私钥文件下载到本地上传选择“CHOOSE FILE”,直接复制可能 报错,所以选择文件稳妥一点。

会检查出问题,没有问题直接NEXT即可:

选择要安装的组件(按需选择,不用参考下图)千万别一下子都选了, 选太多容易崩。

image

选择每个节点具体安装的组件(测试的话,自动默认就行,生产安装,需要做节点规划)

image

点击all,让每一个组件在所有节点都参与存储和计算

image

  • 批量设置集群中各个组件的管理员密码数据库连接密码
Ambari 安装的服务(如 Ranger, Atlas, Hive, Grafana 等)都需要登录数据库或进行内部认证,这里就是统一配置这些“钥匙”的地方。我这里密码均设置为: qqweasd123456

image

配置hive数据库,测试通过

在MySQL中创建hive用户,用户创建hive元数据

# 1:先创建 hive 用户(设置密码)创建用户(允许所有主机访问)
CREATE USER IF NOT EXISTS 'hive'@'%' IDENTIFIED BY 'qqweasd123456';
# 2. 创建 hive 数据库(字符集必须为 UTF-8,避免中文乱码) 
CREATE DATABASE IF NOT EXISTS hive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 
# 2:给该用户授权 hive 库的所有权限 授权(注意:% 表示允许所有主机访问,生产环境建议替换为具体IP)
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';
# 5.刷新权限使配置生效
FLUSH PRIVILEGES;
# 6.验证数据库是否存在 
SHOW DATABASES; # 输出列表中应能看到 hive 库

有可能会出现MySQL驱动加载不对,注册驱动

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

不重启驱动不会生效。等待约 1-2 分钟直到服务完全启动。

ambari-server restart

image

 ranger设置

image

下面使用root账户,直接可以自动创建上面的数据库和用户信息

image

Ranger KMS

image

测试通过,点击next

image

存储路径修改,根据需求自行修改,一般日志和数据存储选择数据盘

image

组件参数修改

根据资源大小自行修改,像NameNode ,HBase Master ,默认都是1G ,根据生产环境资源情况自行修改。

image

根据右侧的提示设置

image

点击下一步

image

点击DEPLOY

image

安装完成, 如果出现黄色则代表某些组件启动失败,没关系后续手动一个一个组件启动,遇到问题再解决。

 

 

 

posted @ 2026-03-01 11:53  酒剑仙*  阅读(2)  评论(0)    收藏  举报