在麒麟V10SP1.1(飞腾ARM64)上安装AMBARI+HDP注意事项

在麒麟V10SP1.1(飞腾ARM64)上安装AMBARI+HDP注意事项

麒麟V10比较像centos7,而麒麟V10SP1.1简直就是另一个OS,我觉得“很像” openEuler 20.03。而华为已经成功将AMBARI+HDP移植到openEuler上了,我们就厚着脸皮直接拿来用了,当然要多谢华为的这些移植工作,华为做的这些事属实让人佩服。

为什么选择麒麟V10SP1.1,并不只是因为它和openEuler像,更关键的是,截止到目前,飞腾的S2500 CPU的双路服务器,只能安装麒麟V10 SP1.1,麒麟V10装不上啊。。。(应该是内核中缺相应的补丁。。。)

华为移植的 ambari 和 hdp 的下载地址:

https://mirrors.huaweicloud.com/kunpeng/yum/oe/20.03-LTS/bigdata/ambari/2.x/updates/2.7.3.0/ambari-2.7.3.0-openEuler20.03.tar.gz

https://mirrors.huaweicloud.com/kunpeng/yum/oe/20.03-LTS/bigdata/HDP/3.x/updates/3.1.0.0/HDP-3.1.0.0-openEuler20.03-rpm.tar.gz

整个部署过程,华为已经有很详细的文档了,我就不啰嗦了,文档链接:

https://support.huaweicloud.com/dpmg-hdp-kunpengbds/kunpengbds_04_0014.html

clip_image002[4]

跟着文档走,文档中有两种场景,centos7和openEuler,就按照openEuler的流程走。不要省略任何一步,认真看文档,遇到问题,就看这个大章节最后的“故障排除”章节。

当然,其中还有2个注意事项是文档中没有的:

1. 如何让 openEuler 版的 ambari 支持 麒麟V10 SP1.1

华为移植的ambari当然不支持麒麟V10SP1.1 ,我们要将OS伪装成openEuler。如果正常按照文档走,到 “ambari-server setup” 这步,在输入完用户后,就会报错:

Using python /usr/bin/python

Setup ambari-server

Checking SELinux...

SELinux status is 'enabled'

SELinux mode is 'permissive'

WARNING: SELinux is set to 'permissive' mode and temporarily disabled.

OK to continue [y/n] (y)? y

Customize user account for ambari-server daemon [y/n] (n)? n

Enter user account for ambari-server daemon (root): root

ERROR: Unexpected error Ambari repo file path not set for current

OS.

ERROR: Exiting with exit code 1. 

REASON: Failed to create user. Exiting.

我当时google了一下,发现了国外有大神通过修改

/usr/lib/ambari-server/lib/ambari_commons/resources/os_family.json

,添加一个对应的操作系统来让ambari支持linux mint的帖子, 很遗憾,这个方法不管用,但是这个帖子里面如何验证OS的方法证明ambari是用python程序来检查OS的,所以通过阅读相应的源码,我们知道,只要系统的/etc目录下存在openEuler-release文件,程序就跳过后面的所有检查,直接认定这个系统是openEuler。那么骗过ambari的方法就是# touch /etc/openEuler-release

验证方法:

clip_image004[4]

如果没有/etc/openEuler-release这个文件,OSCheck.os_distribution()返回的是 (‘Kylin Linux Advanced Server release V’, ’10’, ‘Tercel’)

2.Java命令行参数问题

因为我懒,没有用华为文档中建议的JDK,而是直接使用了手边就有的Oracle的JDK 1.8.0_281,所以在后续安装hbase等组件的时候,总是启动失败,报的错没有留下,大意就是 UseG1GC是一个实验性参数,需要配合其他参数使用,(我猜用其他JDK可能就不会有这个事了),我的解决方法是干脆从所有的脚本中将这个参数去掉。有多大的性能影响我还没研究过,如果在意的话,就按文档走,别瞎用jdk。

image

Comments are closed.