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

一、概览

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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/443863.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Joe主题网站

一款博客网站源码 发现源码为大家内置了主题 清爽又强大真正的永久可用的一条源码,该版本为整合版本,内置了Joe主题,搭建后直接启用即可~ 安装环境要求: PHP 7.2 以上 MySQL, PostgreSQL, SQLite 任意一种数据库支持,…

一个爬虫自动化数据采集的故事~

目录 一、原文二、故事前半段背景内容三、正经的讲点DrissionPage知识四、故事的收尾 一、原文 原文来自一个爬虫自动化数据采集的故事~ , 建议点击链接看文章末尾的视频笔者不擅长自动化,一个小小故事分享给大家,仅个人观点 二、故事前半段背景内容 …

C#中对象的相等性与同一性的判断方法总结

C#对象的相等性与同一性 1. 概述与准备1.1 概述1.2 准备 2. Equals(Object)2.1 功能:2.2 实例:2.3 扩展:2.4 重写此方法 3. Equals(Object, Object)3.1 功能3.2 实例 4. ReferenceEquals(Object, Object)4.1 功能4.2 使用场景:4.3…

突破编程_前端_JS编程实例(自适应表格列宽)

1 开发目标 针对如下的表格组件: 根据表格的各个列字符串宽度动态调整表格列宽: 2 详细需求 本组件目标是提供一个自动调整 HTML 表格列宽的解决方案,通过 JS 实现动态计算并调整表格每列的宽度,以使得表格能够自适应容器宽度&a…

Matlab|配电网智能软开关(sop)规划模型

目录 1 主要内容 目标函数 2 部分程序 3 程序结果 3.1 sop选址定容优化模型 3.2 对比算例(不含sop) 4 下载链接 1 主要内容 该程序参考文献《基于改进灵敏度分析的有源配电网智能软开关优化配置》,采用二阶锥算法,以改进的…

vscode 格式化prettier失败出现一大堆错误

如题,使用vscode开发项目时候,会自动进行格式化【安装prettier插件】 但是有时候会出现格式化失败的情况,如果插件安装正确,则可能是代码出现了格式问题。

使用腾讯云快速搭建WordPress网站流程详解

专栏系列文章: WordPress建站主题美化系列教程https://blog.csdn.net/seeker1994/category_12184577.html 一文搞懂WordPress是什么?为什么用它建站?怎么安装与部署? 初次安装WordPress后如何进行网站设置(主题安装、…

揭秘接口测试:完整流程指南!

在讲接口测试之前,首先需要给大家申明下:接口测试对于测试人员而言,非常非常重要,懂功能测试接口测试,就能在企业中拿到一份非常不错的薪资。 这么重要的接口测试,一般也是面试笔试必问。为方便大家更好的…

Python快速入门系列-2(Python基础语法)

第三章:Python基础语法 3.1 变量与数据类型3.1.1 变量的定义与赋值3.1.2 数据类型3.1.3 类型转换 3.2 注释与缩进3.2.1 注释3.2.2 缩进 3.3 条件语句与循环结构3.3.1 条件语句3.3.2 循环结构 3.4 函数与模块3.4.1 函数3.4.2 参数和返回值3.4.3 模块3.4.4 标准库中的…

基于SSH的点餐服务管理系统的设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 开发工具相关技术 3 1.1 SSH框架 3 1.1.1 Spring 3 1.1.2 Spring MVC 3 1.1.3 Hibernate 4 1.2 前端技术 4 1.2.1 jQuery 5 1.2.2 Bootstrap 5 1.3 数据库技术 5 1.4 本章小结 6 2 系统分析 7 2.1 需求分析 7 2.2 系统工作流程 8 2.3 用例…

一学就会 | ChatGPT提示词极简指南-有爱AI实战教程(三)

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 导读:在使用 ChatGPT 时,当你给的指令越精确,它的回答会越到位,举例来说,假如你要请它帮忙写文案,如…

【Claude 3】一文谈谈Anthropic(Claude) 亚马逊云科技(Bedrock)的因缘际会

文章目录 前言1. Anthropic的诞生2. Anthropic的“代表作”——Claude 3的“三驾马车”3. 亚马逊云科技介绍4. 强大的全托管服务平台——Amazon Bedrock5. 亚马逊云科技(AWS)和Anthropic的联系6. Claude 3模型与Bedrock托管平台的关系7. Clude 3限时体验入口分享【⚠️截止3月1…

【Flink】Apache Flink 常见问题定位指南

Apache Flink 常见问题定位指南 1.问题分析概览1.1 如何分析 Flink 问题 2.常见问题处理2.1 作业自动停止2.2 输出量稳定但不及预期2.3 输出量逐步减少或完全无输出2.4 个别数据缺失2.5 作业频繁重启 3.问题追因技巧3.1 常用工具3.1.1 内存3.1.2 CPU3.1.3 磁盘 I/O3.1.4 网络 I…

187基于matlab的弹道目标跟踪滤波方法

基于matlab的弹道目标跟踪滤波方法,扩展卡尔曼滤波(extended Kalman filter, EKF)、转换测量卡尔曼滤波(conversion measurement Kalman filter, CMKF)跟踪滤波,得到距离、方位角、俯仰角误差结果。程序已调…

qt一个项目只能有一个QMainWindow,其他小窗口只能继承QWidget

我继承QMainWindow,结果就出现奇奇怪怪的现象,我人都疯了 这些接口全他妈不能用 删了换成QWidget就可以用了

ROS2中launch编写及参数含义(xml、python)

ROS2系列文章目录 ROS2中nav_msgs/msg/Path 数据含义及使用 ROS2中std_msgs/msg/Header 数据含义及使用 ROS中TF变换详解 文章目录 ROS2系列文章目录ROS2中launch编写及参数含义(xml、python)一、ROS官方介绍二、实现案例1.编写主函数、CMakeLists.tx…

qt的layoutStretch,非常重要

在几个控件横着布局中,不要指望着这些限制大小的接口能帮你什么 a->setMaximumWidth(); a->setMinimumWidth();我这里有两个控件,设置layoutStretch 1,1

poll开发服务器

int poll(struct pollfd *fds, nfds_t nfds, int timeout); 函数说明:与select类似,委托内核监控可读,可写,异常事件。 函数说明: fds:一个struct pollfd结构体数组的首地址 struct pollfd { …

上门废品回收小程序开发,互联网回收创业模式,稳占回收市场

随着人们生活水平的提高,我国居民产生了大量的废弃物品,这为废品回收行业提供了巨大的市场空间。 当下,废品回收行业成为了不少年轻人讨论的热门话题,吸引了越来越多的企业商家进行到市场中,成为了一个创业的重要行业…

【附教程】2024,人工智能+AI绘画,看这里就够了~14款主流图像生成软件工具总有一个适合你

AI绘画技术通过深度学习和处理海量图像数据,能够迅速将文字描述转化为富有创意和艺术性的画作。这一技术不仅极大地提升了艺术家的创作效率和作品质量,还为他们提供了全新的灵感来源和创作方式,推动了艺术领域的创新与发展。 同时&#xff0…