当前位置: 首页 > article >正文

day12_调度和可视化

文章目录

  • day12_调度和可视化
  • 一、任务调度
    • 1、开启进程
    • 2、登入UI界面
    • 3、配置租户
    • 4、创建项目
    • 5、创建工作流
      • 5.1 HiveSQL部署(掌握)
      • 5.2 SparkDSL部署(掌握)
      • 5.3 SparkSQL部署(熟悉)
      • 5.4 SeaTunnel部署(掌握)
      • 5.5 任务上线
  • 二、数据可视化
    • 1、用户画像管理系统(了解)
    • 2、使用Doris分析ElasticSearch
      • 2.1 创建Catalog
      • 2.2 使用示例
    • 3、FineBI可视化
      • 3.1 安装FineBI
      • 3.2 创建数据连接
      • 3.3 创建公共数据(掌握)
        • 3.3.1 Doris数据集
        • 3.3.2 ElasticSearch数据集
        • 3.3.3 ElasticSearch和MySQL标签关联的数据集
        • 3.3.4 数据集更新
      • 3.4 创建分析主题
      • 3.5 创建各个组件
      • 3.6 创建仪表盘
      • 3.7 图表发布

day12_调度和可视化

一、任务调度

1、开启进程

按顺序启动如下服务。注意:如果已经启动了,不用再次启动,其他的例如ElasticSearch、Doris、Hive等不要停。

  • 启动Zookeeper
nohup /export/server/kafka/bin/zookeeper-server-start.sh ../config/zookeeper.sql > /dev/null 2>&1 &注意: 这是一条命令
  • 启动Hadoop
start-all.sh
  • 启动Hive
启动metastore服务
nohup /export/server/hive/bin/hive --service metastore > /tmp/hive-metastore.log 2>&1 &启动Hiveserver2服务
nohup /export/server/hive/bin/hive --service hiveserver2 > /tmp/hive-hiveserver2.log 2>&1 &
  • 启动DS海豚调度器
/export/server/dolphinscheduler/bin/start-all.sh
  • 如需写出到Doris,则还需要启动Doris;如需写出到ES,则还需启动ES
启动Doris/export/server/doris/fe/bin/start_fe.sh --daemon/export/server/doris/be/bin/start_be.sh --daemon/export/server/doris/apache_hdfs_broker/bin/start_broker.sh --daemon----------------------------------------------------------启动ES1- 切换用户su es2- 进入目录cd /home/es/elasticsearch-7.10.2/bin3- 启动elasticsearch -d4- 切回为rootexit5- 验证jps----------------------------------------------------------启动Kafkacd /export/server/kafka/binnohup ./kafka-server-start.sh ../config/server.sql 2>&1 &

2、登入UI界面

http://192.168.88.166:12345/dolphinscheduler/ui/login

账号:admin

密码:dolphinscheduler123

在这里插入图片描述

3、配置租户

租户对应的是 Linux 的用户,用于 worker 提交作业所使用的用户。注意一定要是root。
在这里插入图片描述

然后设置admin的租户为root。

在这里插入图片描述

4、创建项目

项目管理->创建项目->输入名称即可
在这里插入图片描述

5、创建工作流

5.1 HiveSQL部署(掌握)

演示用的HiveSQL语句

insert overwrite table dwm.dwm_mem_first_buy_i partition(dt)
selectt.zt_id,t.trade_date_time,t.trade_date,t.week_trade_date,t.month_trade_date,t.store_no,t.sale_amount,t.order_no,t.source_type,'2025-03-01' as dt
from(selectzt_id,create_time as trade_date_time,trade_date,week_trade_date,month_trade_date,store_no,real_paid_amount as sale_amount,order_no,source_type,row_number() over(partition by zt_id order by create_time) as rnfrom dwm.dwm_sell_o2o_order_iwhere dt<'${inputdate}' and member_type = 1) t
left join dwm.dwm_mem_first_buy_i fon t.zt_id=f.zt_id and f.dt < '${inputdate}'
where t.rn=1and f.zt_id is null

配置过程如下:

  • 创建数据源:点击数据源中心,然后点击创建数据源
    在这里插入图片描述

  • 填写数据源信息

数据源:选择hive/impala

数据源名称: hive

主机名:up01

端口:10000

用户名:root

数据库名:dwm

配置完成后点击测试连接,没问题后点击提交。
在这里插入图片描述

  • 创建工作流:点击工作流定义,然后点击创建工作流。

在这里插入图片描述
在这里插入图片描述

  • 拖拽一个SQL类型到面板,然后填写节点设置。

节点名称为表名

设置失败重试次数为3次

设置延时告警

设置数据源类型为HIVE,数据源实例选择hive

SQL类型选择非查询

SQL语句填写计算的语句,注意不要带上;

如果使用到UDF函数,可以先注册后进行选择使用

可以在任务中自定义参数,也可以在工作流中进行整体设置。

如果有前置SQL语句或后置SQL语句,可以添加在对应的地方,这里可以把set语句写在前置SQL中

set hive.exec.dynamic.partition.mode=nonstrict;

在工作中,需要配置前置任务,这里的前置任务应该是 dwm_sell_o2o_order_i 。
在这里插入图片描述

  • 保存工作流:点击右上角保存,填写基本信息

工作流名称填写具体的主题或需求名称

租户选择root

执行策略选择并行

全局变量设置key为inputdate,value为$[yyyy-MM-dd-12]。注意使用的是中括号。

在这里插入图片描述

  • 测试:在工作流定义页面,选择member工作流,点击上线,然后点击运行,进行测试。

在这里插入图片描述

  • 结果验证
DS调度前后执行如下的SQL,核对数据条数是否发生变化
select count(1) from dwm.dwm_mem_first_buy_i;

5.2 SparkDSL部署(掌握)

将程序部署到Yarn上,需要注意如下两点:
- 注意1:需要将代码中的setMaster内容改为yarn,或者直接删除。推荐直接删除
- 注意2:在程序代码中与文件路径有关的地方,需要全部都改为分布式文件系统,例如:HDFS。否则会出现找不到文件的异常本次项目中,也就是需要修改基类中的master("local[*]"),这里推荐删除。具体代码如下:

在这里插入图片描述

创建工作流,以及保存工作流、测试工作流的方式都一样,最大的区别是任务的类型及配置

  • 首先需要将整体的代码打成zip包,因为计算标签的代码中使用到了相关的代码。这里只将tags文件夹打成zip包即可。压缩包的名称不要有中文。
    在这里插入图片描述

  • 将zip包上传到资源中心

在这里插入图片描述

  • 上传标签计算代码

将标签计算的代码,也就是每个四级标签对应的py文件上传到资源中心。可以按照在PyCharm中的文件结构组织文件。

比如创建tags文件夹,在tags文件夹下创建match文件夹,在match文件夹中上传匹配类标签。
在这里插入图片描述
在这里插入图片描述

  • 创建计算节点

新建一个工作流,在其中拖拽一个SPARK类型。然后填写节点设置。
在这里插入图片描述

选项参数如下:

--conf "spark.pyspark.driver.python=/root/anaconda3/bin/python3" \
--conf "spark.pyspark.python=/root/anaconda3/bin/python3" \
--py-files tags.zip注意: --py-files tags.zip要改成你自己的压缩包

在资源处选择打好并上传的zip包

注意:Spark版本一定要选择SPARK1
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 保存工作流:使用相同的方法,配置其他几个标签计算的节点,配置完成后,点击保存。填写工作流,选择root租户,点击确定。

在这里插入图片描述

  • 上线测试:在工作流定义页面,选择match工作流,点击上线,然后点击运行,进行测试。

**拓展:**也可以直接使用spark-submit命令来提交作业,假设将tags.zip上传到了hdfs的/tags路径,而age_tag.py也上传到了/tags路径,则命令如下:
在这里插入图片描述

cd /export/server/sparkbin/spark-submit --master yarn \
--deploy-mode client \
--driver-cores 1 --driver-memory 512M --num-executors 2 --executor-cores 2 --executor-memory 2G \
--name age_tags \
--conf "spark.pyspark.driver.python=/root/anaconda3/bin/python3" \
--conf "spark.pyspark.python=/root/anaconda3/bin/python3" \
--py-files hdfs://up01:8020/tags/tags.zip \
hdfs://up01:8020/tags/age_tag.py

5.3 SparkSQL部署(熟悉)

整体与HiveSQL部署类似。唯一区别是程序类型选择SQL,Spark版本选择SPARK1。

演示用的SQL:

insert overwrite table ads.ads_mem_user_rfm_i
selectmem.zt_id,if(t.zt_id is null, '121', t.tags_id) as tags_id, -- 121理解为默认标签值'2025-03-01' as dt
from dwd.dwd_mem_member_union_i mem
left join (selectzt_id,case when r = 1 and f = 1 and m = 1 then '114'when r = 1 and f = 0 and m = 1 then '115'when r = 0 and f = 1 and m = 1 then '116'when r = 0 and f = 0 and m = 1 then '117'when r = 1 and f = 1 and m = 0 then '118'when r = 1 and f = 0 and m = 0 then '119'when r = 0 and f = 1 and m = 0 then '120'when r = 0 and f = 0 and m = 0 then '121'end  as tags_idfrom (selectzt_id,if(min(r) over (partition by zt_id) < 7, 1, 0)           as  r,  -- 取最小的时间差作为r,如果小于7则为1if(f > sum_f * 1.00 / user_count, 1, 0)                  as  f,  -- 与平均值对比,如果大于平均值则为1if(m > sum_m * 1.00 / user_count, 1, 0)                  as  m,  -- 与平均值对比,如果大于平均值则为1row_number() over (partition by zt_id order by dt desc ) as  rn -- 按照日期进行逆序排列from (-- 这里就算出了每个用户的R、F、M的值是多少selectzt_id,datediff(current_date(), '2025-01-19')        as  r,     -- 距离当天的时间差sum(consume_times) over (partition by zt_id)  as   f,     -- 单个用户完单单量sum(consume_times) over ()                    as   sum_f, -- 所有用户完单单量sum(consume_amount) over (partition by zt_id) as   m,     -- 单个用户完单金额sum(consume_amount) over ()                   as   sum_m, -- 所有用户完单金额t2.user_count, -- 总用户数t1.dtfrom dwm.dwm_mem_member_behavior_day_i as t1cross join (select count(distinct zt_id) as user_count -- 总用户数from dwm.dwm_mem_member_behavior_day_i -- 用户行为表:下单、付款、浏览、退货等各种信息where datediff(current_date(), to_date(dt)) <= 30) t2where datediff(current_date(), to_date(t1.dt)) <= 30) t3) t4 where rn = 1 -- 只取最新的一条记录
) t on mem.zt_id = t.zt_id
where mem.start_date <= '${inputdate}' and mem.end_date > '2025-01-19'

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5.4 SeaTunnel部署(掌握)

在工作流中拖拽一个SHELL节点,然后设置节点。

  • 设置节点名称

  • 配置重试次数,这里可以只设置1次

  • 配置资源信息

  • 配置超时策略,勾选超时告警和超时失败(防止因任务卡住而占用资源,如果超时会自动被杀死)

  • 填写脚本,注意将日期配置成参数形式

首先配置好hive2es.config,然后在shell中填写命令。

在这里插入图片描述

cd /export/server/apache-seatunnel-2.3.5./bin/seatunnel.sh --config ./config/job/hive2es.config -e local -i pt=${inputdate}

在这里插入图片描述

  • 设置前置任务

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.5 任务上线

  • 上线任务

任务上线后,就不可编辑,这样可以避免正在执行的任务被修改
在这里插入图片描述

  • 定时

在这里插入图片描述

  • 时间设定,DS已经可视化处理,我们直接点击相应的时间即可。
    在这里插入图片描述

  • 定时好了后我么可以点击执行时间,查看它任务模拟的执行时间是否正确,执行得到结果如下:

在这里插入图片描述

  • 上线定时
    在这里插入图片描述

整个流程到此就结束了。到指定的时间点,任务会被执行。

二、数据可视化

1、用户画像管理系统(了解)

画像web产品主要使用java和vue实现前后端交互和标签可视化。其中主要有3方面可视化内容:单个用户标签可视化、单个标签可视化、组合标签可视化。

  • 单个用户分析
    在这里插入图片描述

  • 标签分析

在这里插入图片描述

  • 圈人精准营销

在这里插入图片描述

  • 使用Elasticsearch的DSL语句进行查询
案例: 【查用户】查询id为 16682885 的用户的所有标签POST /user_profile_tags/_search
{"query": {"term": {"user_id": 16682885}}
}

2、使用Doris分析ElasticSearch

启动Doris
/export/server/doris/fe/bin/start_fe.sh --daemon
/export/server/doris/be/bin/start_be.sh --daemon
/export/server/doris/apache_hdfs_broker/bin/start_broker.sh --daemon

2.1 创建Catalog

  • 在Doris中执行如下命令
CREATE CATALOG es sql ("type"="es","hosts"="http://up01:9200","enable_docvalue_scan" = "true","enable_keyword_sniff" = "true"
);注: 具体参数解释查看课件

在这里插入图片描述

  • 验证集成结果
-- 查看Doris与数据源的整合情况
show catalogs;-- Catalog名称.数据库名称.数据表名称
select * from es.default_db.user_profile_tags limit 10;

2.2 使用示例

完成在Doris中建立ES外表后,除了无法使用Doris中的数据模型(rollup、预聚合、物化视图等)外并无区别。使用示例如下

  • 切换到es的catalog
switch es;
  • 【查用户】查询id为 16682885 的用户的所有标签
select user_id,tags_id_times,tags_id_once,tags_id_streaming from es.default_db.user_profile_tags where user_id=16682885;

在这里插入图片描述

  • 【查标签】查询标签为18的用户
select user_id,tags_id_times,tags_id_once,tags_id_streaming from es.default_db.user_profile_tags where tags_id_times='18' limit 10;

在这里插入图片描述

3、FineBI可视化

3.1 安装FineBI

  • 1- 执行FineBI安装包, 将其安装到windows上。下一步安装即可。安装完以后启动
    在这里插入图片描述

  • 2- 设置管理员账户
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.2 创建数据连接

  • 点击左侧的管理系统,然后点击数据连接,点击数据连接管理

在这里插入图片描述

  • 点击新建数据连接,选择所有,点击Doris。

在这里插入图片描述

  • 根据下图进行配置,完成后点击右上角测试链接,通过后点击保存。

在这里插入图片描述

  • 注意一:如果要配置Doris与ElasticSearch集成后的数据库,数据库名称前面需要带Catalog名称。如下图中的红色框

在这里插入图片描述

  • 注意二:如果FineBI不支持Doris,直接使用MySQL连接即可。端口号要改成9030

在这里插入图片描述

3.3 创建公共数据(掌握)

3.3.1 Doris数据集
  • 点击公共数据,然后点击新建文件夹,新建xtzg文件夹。

在这里插入图片描述

  • 点击xtzg文件夹右边的+号,选择数据库表。

在这里插入图片描述

  • 数据连接选择Doris_DB_log_analysis_db,将右边的所有表选上,点击确定,完成数据库表数据的添加

    在这里插入图片描述

3.3.2 ElasticSearch数据集

因为es数据属于外部表,所以不能直接通过数据库表来配置,需要通过SQL数据集的方式来配置。

前提是先要创建es的catalog。

  • 点击【添加表】,创建SQL数据集

在这里插入图片描述

  • 填写表名为:user_profile_tags

  • 填写SQL语句

select * from es.default_db.user_profile_tags
  • 点击右上角预览,没有问题后,点击确定

在这里插入图片描述

3.3.3 ElasticSearch和MySQL标签关联的数据集
  • 前提准备

在/export/server/doris/fe/lib/目录中上传mysql-connector-java-5.1.49.jar。

在这里插入图片描述

  • 创建catalog
CREATE CATALOG jdbc_mysql sql ("type"="jdbc","user"="root","password"="123456","jdbc_url" = "jdbc:mysql://up01:3306/tags_info","driver_url" = "file:///export/server/doris/fe/lib/mysql-connector-java-5.1.49.jar","driver_class" = "com.mysql.jdbc.Driver"
);-- 集成以后的验证语句
select * from jdbc_mysql.tags_info.tbl_basic_tag limit 10;
  • 有了mysql catalog后,就可以查询mysql中的数据。

在这里插入图片描述

  • 查询某个标签下的所有用户及对应的标签名称:如查询每个用户的年龄段标签,其中年龄段标签的pid为15,对应的sql如下:
select t1.user_id,t2.name
from(selectuser_id,tags_id_times,cast(tag as int) as tagfrom es.default_db.user_profile_tagslateral view explode_split(tags_id_times,',') t as tag
) t1
join jdbc_mysql.tags_info.tbl_basic_tag t2
on t1.tag=t2.id
where t2.pid=15
  • 配置数据集:跟配置es的数据集相同,只是sql不同。

在这里插入图片描述

在这里插入图片描述

3.3.4 数据集更新

可以设置缓存策略,从而实现数据的自动更新。

点击数据表,然后点击缓存设置,然后点击编辑,设置缓存策略。

在这里插入图片描述

3.4 创建分析主题

  • 点击仪表板,然后点击新建文件夹,创建xtzg文件夹。
    在这里插入图片描述

  • 点击xtzg文件夹进去,然后新建仪表板,创建小兔智购用户画像分析主题。

在这里插入图片描述

  • 选择数据。点击公共数据,选择xtzg文件夹下的doris_log_user_event_result,然后确定。

在这里插入图片描述

在这里插入图片描述

3.5 创建各个组件

  • 绘制漏斗图

在这里插入图片描述

  • 绘制柱状图
    在这里插入图片描述

  • 用同样的方式,可以绘制其他图

3.6 创建仪表盘

  • 点击下方添加仪表盘,重命名为:小兔智购用户画像

在这里插入图片描述

  • 添加各个组件:通过拖拽的方式,添加绘制好的各个组件
    在这里插入图片描述

3.7 图表发布

可以按照文档操作https://help.fanruan.com/finebi/doc-view-2108.html

相关文章:

day12_调度和可视化

文章目录 day12_调度和可视化一、任务调度1、开启进程2、登入UI界面3、配置租户4、创建项目5、创建工作流5.1 HiveSQL部署&#xff08;掌握&#xff09;5.2 SparkDSL部署&#xff08;掌握&#xff09;5.3 SparkSQL部署&#xff08;熟悉&#xff09;5.4 SeaTunnel部署&#xff0…...

力扣第4题 寻找两个正序数组的中位数

力扣第4题 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,3], nums2 [2] 输出&#xff1a;2.0000…...

DC-6靶机渗透测试全过程

目录 前期准备 一、渗透测试 1.IP地址查询 2.端口信息搜寻 3.网页信息搜集 wappalyzer WPScan 反弹shell graham用户 反弹出jens的shell nmap提权 二、总结 前期准备 攻击机&#xff1a; kali windows11 靶机&#xff1a;DC-6靶机&#xff08;调至NAT模式&#xff0…...

Win11 远程 连接 Ubuntu20.04(局域网)

Win11 远程 连接 Ubuntu20.04(局域网&#xff09; 0. Ubuntu 开启共享1. Ubuntu系统中安装RDP服务器2.windows中连接使用方式1&#xff1a;远程桌面连接(winr: mstsc)方式2&#xff1a;mobaXterm 3 问题远程连接后出现黑屏 参考文献: 0. Ubuntu 开启共享 在ubunt设置中&#x…...

探索Hugging Face:开源AI社区的核心工具与应用实践

引言&#xff1a;AI民主化的先锋 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Hugging Face已成为开源社区的代名词。这个成立于2016年的平台&#xff0c;通过提供易用的工具和丰富的预训练模型库&#xff0c;彻底改变了开发者使用和部署AI模型的方式。截至202…...

文件分片上传 python

服务端功能 上传分片保存 app.route(/upload_filesliceprocess, methods[POST]) def upload_filesliceprocess(): file request.files[file] name_index request.form[name_index] complete request.form[complete] process request.form[process] c…...

外汇掉期(FX Swap):全球企业管理外汇风险的关键工具(中英双语)

外汇掉期&#xff08;FX Swap&#xff09;&#xff1a;全球企业管理外汇风险的关键工具 引言 在全球化经济环境下&#xff0c;跨国公司、银行和金融机构经常面临外汇风险&#xff0c;因为它们的业务涉及多种货币。例如&#xff0c;一家中国公司可能需要欧元支付欧洲供应商&am…...

Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件

步骤1 开始通过 WSL 使用 VS Code | Microsoft Learn 点击远程开发扩展包。 步骤2 Remote Development - Visual Studio Marketplace 点击install&#xff0c; 允许打开Visual Studio Code。 步骤3 共有4项&#xff0c;一齐安装。 步骤4 在WSL Linux(Ubuntu)中&#xf…...

网络安全“挂图作战“及其场景

文章目录 一、网络安全挂图作战来源与定义1、网络安全挂图作战的来源2、网络安全挂图作战的定义 二、挂图作战关键技术三、挂图作战与传统态势感知的差异四、挂图作战主要场景五、未来趋势结语 一、网络安全挂图作战来源与定义 1、网络安全挂图作战的来源 网络安全挂图作战的…...

开源在线考试系统开源在线考试系统:支持数学公式的前后端分离解决方案

开源在线考试系统&#xff1a;支持数学公式的前后端分离解决方案 项目介绍项目概述&#xff1a;技术栈&#xff1a;版本要求主要功能&#xff1a;特色亮点 项目仓库地址演示地址GiteeGitHub 系统效果展示教师端系统部分功能截图学生端系统部分功能截图 结语 项目介绍 项目概述…...

解决 ssh connect to host github.com port 22 Connection timed out

一、问题描述 本地 pull/push 推送代码到 github 项目报 22 端口连接超时&#xff0c;测试连接也是 22 端口连接超时 ssh 密钥没问题、也开了 Watt Toolkit 网络是通的&#xff0c;因此可以强制将端口切换为 443 二、解决方案 1、测试连接 ssh -T gitgithub.com意味着无法通…...

分享8款AI生成PPT的工具!含测评

随着人工智能技术的飞速进步&#xff0c;制作PPT变得愈发便捷&#xff0c;仅需输入主题指令&#xff0c;便能在瞬间获得一份完整的演示文稿。尤其在制作篇幅较长的PPT时&#xff0c;手动编写每一页内容并设计格式和排版&#xff0c;不仅效率低下&#xff0c;而且耗时耗力。 本…...

Java 设计模式总结

文章目录 Java 设计模式总结创建型模式&#xff08;5种&#xff09;结构型模式&#xff08;7种&#xff09;行为型模式&#xff08;11种&#xff09; Java 设计模式总结 设计模式&#xff08;Design Patterns&#xff09;是软件工程中解决常见问题的经典解决方案。它们提供了一…...

Spring Boot Actuator 监控✨

Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具&#xff0c;它可以帮助你深入了解和监控你的应用程序的运行状态。通过 Actuator&#xff0c;你可以获取应用程序的健康状况、内存使用情况、线程信息、HTTP 请求跟踪等。&#x1f680; 核心知识点 &#…...

解锁原型模式:Java 中的高效对象创建之道

系列文章目录 后续补充~~~ 文章目录 一、引言1.1 软件开发中的对象创建困境1.2 原型模式的登场 二、原型模式的核心概念2.1 定义与概念2.2 工作原理剖析2.3 与其他创建型模式的差异 三、原型模式的结构与角色3.1 抽象原型角色3.2 具体原型角色3.3 客户端角色3.4 原型管理器角色…...

23种设计模式 - 责任链

模式定义 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;允许多个对象按链式顺序处理请求&#xff0c;直到其中一个对象处理为止。该模式将请求的发送者和接收者解耦&#xff0c;使多个对象都有机会处理请求。 模式结构…...

【Linux-命令】

Linux-命令 ■ ls■ cd■ pwd■ tree■ mkdir■ rm■ mv■ cp■ chmod■ chattr 文件的特殊属性■ cat■ 日期■ 关机■ find■ 查看文件内容■ cat■ ln■ mount 挂载一个文件系统■ uname■ 用户和组■ 打包和压缩■ zip■ gzip■ rar■ tar ■ 包■ rpm 包■ yum 软件包升级…...

豪越科技:消防安全重点单位一体化安全管控

在当今数字化高速发展的时代&#xff0c;消防安全的重要性日益凸显。豪越科技以其卓越的技术实力和创新精神&#xff0c;将物联网、大数据、人工智能等先进技术深度融合&#xff0c;打造出了功能强大的消防安全重点单位一体化安全管控平台&#xff0c;为消防安全管理带来了全新…...

LabVIEW无刷电机控制器检测系统

开发了一种基于LabVIEW的无刷电机控制器检测系统。由于无刷电机具有高效率、低能耗等优点&#xff0c;在电动领域有取代传统电机的趋势&#xff0c;而无刷电机的核心部件无刷电机控制器产量也在不断增长。然而&#xff0c;无刷电机控制器的出厂检测仍处于半自动化状态&#xff…...

EXCEL解决IF函数“您已为此函数输入太多个参数”的报错

IF函数的基本结构是IF(条件, 值为真时的结果, 值为假时的结果)&#xff0c;所以标准的IF函数最多只能有三个参数。当用户输入的参数超过三个时&#xff0c;Excel就会报这个错误。比如多个IF语句叠加&#xff0c;但可能在嵌套的过程中没有正确关闭每个IF函数的括号&#xff0c;导…...

C#使用文件读写操作实现仙剑五前传称号存档修改

手把手教学仙剑五前传 称号存档修改器 首先找到 Pal5Q所在目录的save\global.sav 文件,这是一个只有488字节的文件,这里存放称号对应的编号ID,以及是否已获得该称号,1为已获取称号,0为未获取称号 [称号:是否获取]这是一个键值对 称号的编号ID是一个Int32数字,使用C#的方法Bi…...

Python 发布 Web 应用的常见方法及详细步骤

以下是 Python 发布 Web 应用的常见方法及详细步骤&#xff0c;涵盖从本地开发到生产环境部署的全流程&#xff1a; 一、基础准备&#xff1a;开发 Web 应用 1. 选择框架&#xff08;以 Flask 为例&#xff09; # app.py from flask import Flask app Flask(__name__)app.ro…...

记录一次部署PC端网址全过程

当我查看我之前写的文章时、顿时惊奇发出感慨&#xff1a;啥时候写的&#xff1f;是我写的么&#xff1f;疑惑重重… 所以说&#xff0c;好记性不如烂笔头。 记录一次部署PC端网址全过程 部署PC端网址分是三步&#xff1a;第一步&#xff1a;申请域名并映射到外网IP &#xff0…...

Spring——Spring开发实战经验(4)

摘要 本文深入探讨了 Spring 应用中 Interceptor&#xff08;拦截器&#xff09;、Filter&#xff08;过滤器&#xff09;和 Aspect&#xff08;切面&#xff09;的执行顺序、职责及典型使用场景。Filter 是 Servlet 级别的机制&#xff0c;主要用于日志记录、权限验证等&…...

深入探索HarmonyOS——构建万物智联的新时代

作者&#xff1a;林钟雪 引言 在科技日新月异的今天&#xff0c;操作系统作为连接硬件与软件的核心桥梁&#xff0c;正引领着数字化转型的新浪潮。HarmonyOS&#xff0c;作为华为自主研发的面向万物智联时代的分布式全场景操作系统&#xff0c;自发布以来便备受瞩目。它不仅打…...

算法12-贪心算法

一、贪心算法概念 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下最优的选择&#xff0c;从而希望导致全局最优解的算法。贪心算法的核心思想是“局部最优&#xff0c;全局最优”&#xff0c;即通过一系列局部最优选择&#xff0c;最…...

小白win10安装并配置yt-dlp

需要yt-dlp和ffmpeg 注意存放路径最好都是全英文 win10安装并配置yt-dlp 一、下载1.下载yt-dlp2. fffmpeg下载 二、配置环境三、cmd操作四、yt-dlp下视频操作 一、下载 1.下载yt-dlp yt-dlp地址 找到win的压缩包点下载&#xff0c;并解压 2. fffmpeg下载 ffmpeg官方下载 …...

I²C简介

前言 IC&#xff08;Inter-Integrated Circuit, 内置集成电路&#xff09;总线是由Philips公司&#xff08;现属于恩智浦&#xff09;在上世纪80年代开发的两线式串行通信总线&#xff0c;用于连接微控制器及其外围设备&#xff0c;控制设备之间的通信。 IC总线的物理拓扑示意…...

Spring容器扩展点

Spring容器扩展点 BeanDefinitionRegistryPostProcessorBeanFactoryPostProcessorImportSelectorImportBeanDefinitionRegistorBeanPostProcessorInstantiationAwareBeanPostProcessor--postProcessBeforeInstantiationSmartInstantiationAwareBeanPostProcessor--determineCan…...

spring boot知识点3

1.spring boot能否使用xml配置 可以&#xff0c;但是很繁琐&#xff0c;现在都建议走JavaConfig 2.spring boot的核心配置文件 application.properties application.yml 3.bootstrap.properties和application.properties的区别 b&#xff1a;用于远程配置 a&#xff1a;…...