银河麒麟V10 安装部署大数据管理软件 DataSophon

时间:2024-03-10 14:42:25

一、概览

1、愿景

致力于快速实现部署、管理、监控以及自动化运维大数据云原生平台,帮助您快速构建起稳定、高效、可弹性伸缩的大数据云原生平台。

2、DataSophon是什么

《三体》,这部获世界科幻文学最高奖项雨果奖的作品以惊艳的"硬科幻"风被大家所熟知,其作者刘慈欣更是被誉为"单枪匹马将中国科幻提高到世界级水平"。

作为三体中非常重要的角色,智子(Sophon)是将九维的质子进行二维展开,通过电路蚀刻改造成超级计算机后,再转回到微观的十一维来监控人类的一举一动,并利用量子纠缠实现瞬时通信报告给4光年之外的三体文明。说白了智子是三体文明部署在地球的AI实时远程监控和管理平台。

DataSophon也是个类似的管理平台,只不过与智子不同的是,智子的目的是锁死人类的基础科学阻碍人类技术爆炸,而DataSophon是致力于自动化监控、运维、管理大数据基础组件和节点的,帮助您快速构建起稳定,高效的大数据集群服务。

主要特性有:

  • 快速部署,可快速完成300个节点的大数据集群部署

  • 兼容复杂环境,极少的依赖使其很容易适配各种复杂环境

  • 监控指标全面丰富,基于生产实践展示用户最关心的监控指标

  • 灵活便捷的告警服务,可实现用户自定义告警组和告警指标

  • 可扩展性强,用户可通过配置的方式集成或升级大数据组件

3、核心特性

    1、简单易用

    仅需几步即可快速完成数千个节点规模的大数据集群部署,界面化操作、轻松管理各种大数据组件,大幅提升运维工作效率

    2、高兼容性

    全面兼容开源生态,已支持多种常用大数据组件、并且适配各种复杂环境,支持常用Linux生态操作系统及arm和x86机器

    3、云原生

    支持大数据服务以容器化方式运行,基于Kubernetes内核实现大数据组件的自动运维调优,避免组件繁琐的运维调优工作

4、整体架构

5、集成组件

    各集成组件均进行过兼容性测试,并稳定运行于300+个节点规模的大数据集群,日处理数据量约4000亿条。在海量数据下,各大数据组件调优成本低,平台默认展示用户关心和需要调优的配置。

序号

名称

版本

描述

1

HDFS

3.3.3

分布式大数据存储

2

YARN

3.3.3

分布式资源调度与管理平台

3

ZooKeeper

3.5.10

分布式协调系统

4

FLINK

1.15.2

实时计算引擎

5

DolphoinScheduler

3.1.1

分布式易扩展的可视化工作流任务调度平台

6

StreamPark

1.2.3

流处理极速开发框架,流批一体&湖仓一体的云原生平台

7

Spark

3.1.3

分布式计算系统

8

Hive

3.1.0

离线数据仓库

9

Kafka

2.4.1

高吞吐量分布式发布订阅消息系统

10

Trino

367

分布式Sql交互式查询引擎

11

Doris

1.1.5

新一代极速全场景MPP数据库

12

Hbase

2.4.16

分布式列式存储数据库

13

Ranger

2.1.0

权限控制框架

14

ElasticSearch

7.16.2

高性能搜索引擎

15

Prometheus

2.17.2

高性能监控指标采集与告警系统

16

Grafana

9.1.6

监控分析与数据可视化套件

17

AlertManager

0.23.0

告警通知管理系统

二、准备环境

1、集群规划

主机名

ip

备注

配置 系统 

ddp01

192.168.20.241

master+node1

4C+16G 银河麒麟 V10

ddp02

192.168.20.242

node2

4C+16G 银河麒麟 V10

ddp03

192.168.20.243

node3

4C+16G 银河麒麟 V10

2、网络要求

要求各机器各组件正常运行提供如下的网络端口配置:

组件

默认端口

说明

DDHApplicationServer

8081、2551、8586

8081为http server端口,2551为rpc通信端口,8586为jmx端口

WorkerApplicationServer

2552、9100、8585

2552 rpc通信端口,8585为jmx端口,9100为主机数据采集器端口

nginx

8888

提供 UI 端通信端口

3、客户端浏览器要求

    推荐 Chrome 以及使用 Chrome 内核的较新版本浏览器访问前端可视化操作界面。

4、关闭防火墙(三个节点)

各主机防火墙需关闭。

# 查看当前防火墙状态 [root@ddp01 ~]# sudo systemctl status firewalld # 关闭防火墙 [root@ddp01 ~]# sudo systemctl stop firewalld # 设置开机不启动 [root@ddp01 ~]# sudo systemctl disable firewalld

5、配置hostname  (三个节点)

192.168.20.241[root@ddp01 ~]# hostnamectl set-hostname ddp01[root@ddp01 ~]# 
192.168.20.242[root@ddp02 ~]# hostnamectl set-hostname ddp02[root@ddp02 ~]# 
192.168.20.243[root@ddp03 ~]# hostnamectl set-hostname ddp03[root@ddp03 ~]# 

6、配置 hosts (三个节点)

[root@ddp01 ~]# vim /etc/hosts192.168.20.241     ddp01192.168.20.242     ddp02192.168.20.243     ddp03

7、配置校时服务  (三个节点)

# 安装 chrony[root@ddp01 ~]# yum -y install chrony上次元数据过期检查:0:31:42 前,执行于 2024年03月04日 星期一 16时34分15秒。软件包 chrony-3.5-3.p01.ky10.x86_64 已安装。依赖关系解决。无需任何处理。完毕!# 启用开机启动chronyd服务[root@ddp01 ~]# systemctl enable chronyd.service# 重启chronyd服务[root@ddp01 ~]# systemctl restart chronyd.service# 查看chronyd服务状态[root@ddp01 ~]# systemctl status chronyd.service● chronyd.service - NTP client/server   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)   Active: active (running) since Mon 2024-03-04 17:06:11 CST; 5s ago     Docs: man:chronyd(8)           man:chrony.conf(5)  Process: 9462 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)  Process: 9466 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS) Main PID: 9464 (chronyd)    Tasks: 1   Memory: 260.0K   CGroup: /system.slice/chronyd.service           └─9464 /usr/sbin/chronyd
3月 04 17:06:10 ddp01 systemd[1]: Starting NTP client/server...3月 04 17:06:10 ddp01 chronyd[9464]: chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)3月 04 17:06:10 ddp01 chronyd[9464]: Frequency -11.491 +/- 2.092 ppm read from /var/lib/chrony/drift3月 04 17:06:11 ddp01 systemd[1]: Started NTP client/server.[root@ddp01 ~]# 

# 修改配置文件增加  server ntp1.aliyun.com iburst[root@ddp01 ~]# vi /etc/chrony.conf#pool pool.ntp.org iburstserver ntp1.aliyun.com iburst
# 重启 chronyd 服务[root@ddp01 ~]# systemctl restart chronyd.service
# 设置服务器时间为24小时制[root@ddp01 ~]# timedatectl               Local time: 一 2024-03-04 17:11:34 CST           Universal time: 一 2024-03-04 09:11:34 UTC                 RTC time: 一 2024-03-04 09:11:34                Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: yes              NTP service: active          RTC in local TZ: no[root@ddp01 ~]# 
# 修改时区[root@ddp01 ~]# timedatectl set-timezone Asia/Shanghai 

8、关闭selinux  (三个节点)

[root@ddp01 ~]# vim /etc/sysconfig/selinux# SELINUX=enforcingSELINUX=disabled

9、修改文件句柄最大限制  (三个节点)

[root@ddp01 ~]# vim /etc/security/limits.conf# End of file * soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072

10、配置免密登录 

# 配置免密[root@ddp01 ~]# ssh-keygen -m PEM -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): 回车Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase): 回车Enter same passphrase again: 回车Your identification has been saved in /root/.ssh/id_rsaYour public key has been saved in /root/.ssh/id_rsa.pubThe key fingerprint is:SHA256:Qe9wPduRYNkLtFAjHU9goD9NlkMjocuNUYRxiayH0p0 root@ddp01The key's randomart image is:+---[RSA 3072]----+|       .o=XB%=.  ||       .+*.O+O.. ||     . +*.o O.+. ||    . +.E@ + =.. ||     . .S = o .  ||           .     ||                 ||                 ||                 |+----[SHA256]-----+[root@ddp01 ~]# #集群之间配置免密(包括节点本身)
[root@ddp01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ddp01/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'ddp01 (fe80::a79d:80fa:dba2:ea81%ens33)' can't be established.ECDSA key fingerprint is SHA256:yE9q6U2UBN1hVRLguZ2W8Fuo83wxgG3WGGLLCxVnoYU.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Authorized users only. All activities may be monitored and reported.root@ddp01's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@ddp01'"and check to make sure that only the key(s) you wanted were added.
[root@ddp01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ddp02/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'ddp02 (192.168.20.242)' can't be established.ECDSA key fingerprint is SHA256:mKoAmQsQgJI9ugOAOvnH9qqX4X9YTsH8Mt9coH1OI1o.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Authorized users only. All activities may be monitored and reported.root@ddp02's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@ddp02'"and check to make sure that only the key(s) you wanted were added.
[root@ddp01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ddp03/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'ddp03 (192.168.20.243)' can't be established.ECDSA key fingerprint is SHA256:POEUesKnZUBCfdT2C6N3+oByFHu4lggdCspfCt5Mbf8.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Authorized users only. All activities may be monitored and reported.root@ddp03's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@ddp03'"and check to make sure that only the key(s) you wanted were added.
 # 验证 免密是否成功[root@ddp01 ~]# ssh ddp01[root@ddp01 ~]# ssh ddp02[root@ddp01 ~]# ssh ddp03

11、安装jdk

参考 https://blog.csdn.net/zhangli_li520/article/details/123913328

12、安装mysql

     

参考 https://blog.csdn.net/zhangli_li520/article/details/106842298

 建议mysql版本为5.7.X,并关闭ssl。

  vim /etc/my.cnf

    [mysqld]

    skip-ssl             # 跳过ssl

13、配置应用数据库

注意需关闭mysql ssl功能。在部署过程中,部分组件会执行sql生成库表,不同环境的mysql在配置上存在差异,可根据sql执行情况,变更mysql配置。

创建数据库, 指定数据库编码为UTF-8

CREATE DATABASE IF NOT EXISTS datasophon DEFAULT CHARACTER SET utf8;grant all privileges on *.* to datasophon@"%" identified by 'datasophon' with grant option;GRANT ALL PRIVILEGES ON *.* TO 'datasophon'@'%';FLUSH PRIVILEGES;

三、DataSophon 前后端安装

1、下载安装包

a、下载 datasophon-manager-{version}.tar.gz

      下载地址 https://github.com/datavane/datasophon/releases

我这里下载的是 1.2.1

b、下载DDP部署包

DDP部署包下载地址:链接:https://pan.baidu.com/s/1AA8uUpiV8ejyYavjg2uTAw?pwd=hnn0 提取码:hnn0

c、创建文件夹

 [root@ddp01 ~]# mkdir -p  /opt/datasophon/DDP/packages/

d、上传 datasophon-manager-{version}.tar.gz  至 /opt/datasophon/DDP/packages/

     解压之后的文件结构如下

[root@ddp01 packages]# tar -zxvf datasophon-manager-1.2.1.tar.gz

├── bin               # 执行脚本目录

├── conf              # 配置文件目录

├── lib               # 项目依赖目录

├── (logs)            # 日志目录;应用运行后生成

├── jmx               # jmx插件目录

├── datasophon-init   # 环境初始化脚本

├── README.md         # 读我说明

├── Dockerfile        # 容器构建脚本

└── LICENSE

e、上传 DDP部署包 至  /opt/datasophon/DDP/packages/

2、修改配置文件

修改  /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/conf 目录下datasophon.conf 文件完成配置

[root@ddp01 conf]# pwd/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/conf[root@ddp01 conf]# vim datasophon.conf
# datasource configdatasource.ip=192.168.20.191datasource.port=3857datasource.database=datasophondatasource.username=datasophondatasource.password=datasophon
# serverserver.port=8081server.address=0.0.0.0

3、启动 DataSophon

进入 /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/ 目录下

启动:sh bin/datasophon-api.sh start api

停止:sh bin/datasophon-api.sh stop api

重启:sh bin/datasophon-api.sh restart api

[root@ddp01 datasophon-manager-1.2.1]# sh bin/datasophon-api.sh start apiBegin start api......starting api, logging to /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/logs/api-ddp01.outnohup /usr/bin/java -Xms1g -Xmx1g -Xmn512m -server  -javaagent:/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/jmx/jmx_prometheus_javaagent-0.16.1.jar=8586:/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/jmx/jmx_exporter_config.yaml -Dspring.profiles.active=config -classpath /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/conf:/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/lib/* com.datasophon.api.DataSophonApplicationServer > /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/logs/api-ddp01.out 2>&1 &End start api.

部署成功后,可以进行日志查看,日志统一存放于logs文件夹内:

/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/logs/

├── ddh-api.log

├── ddh-api-error.log

|—— api-{hostname}.out

使用浏览器访问 http://192.168.20.241:8081/ddh 默认用户名密码为 admin/admin123

能访问则个页面表示部署成功

查看mysql datasophon 库里面自动生成的表

4、创建集群

登录进去后 点击创建集群

填写对应的集群名称,和编码,选择对应的集群框架 点击确认

5、存储库管理

点击集群配置

输入 主机列表 和 SSH 用户名 跟端口 点击下一步

等待检测结果 全部成功后,选中主机,点击下一步 等待主机Agent分发 ,主机agent分发步骤将自动分发datasophon-worker组件,并启动WorkerApplicationServer。

分发完成后,选择主机 点击下一步  

选择服务  初始化配置集群先选择部署AlertManager,Grafana和Prometheus三个组件。DataSophon依赖此三个组件实现系统监控告警管理。

点击【下一步】,分配AlertManager,Grafana和Prometheus服务的master服务角色部署节点,此三个组件需部署在同一台机器上。

点击【下一步】,分配AlertManager,Grafana和Prometheus服务的worker与client服务角色部署节点,没有worker和client服务角色的可以跳过之间点击【下一步】。

修改各服务配置。系统已给出默认配置,大部分情况下无需修改。点击下一步 开始安装服务

点击完成

点击进入集群

6、添加服务

1、添加 Zookeeper 服务

选中ZooKeeper 点击下一步

 分配ZooKeeper master服务角色部署节点,zk需部3台或5台。

Zk没有worker与client服务角色,直接点击【下一步】跳过。

根据实际情况修改Zk服务配置。

点击【下一步】,进行zk服务安装。

安装完成后 点击前面  安装  ZOOKEEPER 进到里面查看各个节点安装情况,以及安装日志

点击各个节点名称,查看安装日志  其他组件查看日志类似,后面不在赘述

安装完成后 点击完成

2、添加 HDFS 服务

部署HDFS,其中JournalNode需部署三台,NameNode部署两台,ZKFC和NameNode部署在相同机器上。如下图:

点击【下一步】,选择DataNode部署节点。

根据实际情况修改配置,例如修改DataNode数据存储目录。

点击【下一步】,开始安装Hdfs。

3、添加 YARN 服务

部署YARN,其中ResourceManager需部署两台作高可用。如下图:

点击【下一步】,选择NodeManager部署节点。

根据实际情况修改配置。

安装完成 点击完成

4、添加其他服务服务

其他服务添加跟上述服务添加操作一致

其他功能建议参考官网

https://datasophon.github.io/datasophon-website/