新闻详情

新闻详情

首页 / 资讯中心 / 详情

Hadoop+Spark+SpringBoot 二手电子产品需求分析系统:大数据毕设全链路实战

发布时间:2026/10/2 14:52:02来源:尧图网络
Hadoop+Spark+SpringBoot 二手电子产品需求分析系统:大数据毕设全链路实战
直接说结论这套“HadoopSparkSpringBoot 二手电子产品需求分析系统”是目前大数据方向毕业设计里最典型的“重技术、重链路、重展示”的项目。它不只是一堆框架的堆砌而是把数据采集、分布式存储、分布式计算、后端服务、前端可视化大屏完整串起来的一条数据流水线。对想找工作、尤其是投数据开发岗位的同学来说这套系统的技术栈覆盖了Hadoop生态、Spark计算引擎、SpringBoot微服务、ECharts大屏展示几乎踩中了大数据开发岗位JD里出现频率最高的几个关键词。这篇文章我不聊虚的直接拆解这个项目的设计思路、核心模块、落地步骤和实操中容易踩的坑给正在做类似课题的同学一份可以直接参考的完整方案。1. 项目定位与整体架构先想清楚再动手1.1 业务需求拆解二手电子产品需求分析到底在分析什么很多人一看到“需求分析系统”就开始想复杂了其实业务逻辑并不难。核心本质是从二手电子产品交易平台的海量数据里挖掘出“什么产品在什么时间、什么价位、什么区域更受欢迎”从而为买卖双方、平台运营方提供决策参考。具体拆解下来业务需求落在这几个维度需求热度分析某款手机、笔记本、耳机的搜索量、浏览量、收藏量、成交量的综合加权算出“需求热度指数”。价格趋势分析不同品牌、不同成色、不同存储容量下的成交均价走势帮助判断二手设备的合理定价区间。品类供需分析上架量 vs 成交量的对比。上架多、成交少说明供过于求反之则是供不应求的“抢手货”区间。品牌竞争分析苹果、华为、小米、联想、戴尔等品牌在二手市场的份额和价格保值率对比。地域偏好分析如果数据里有发货地、收货地字段还能做区域热力图看出不同城市对二手电子产品的偏好差异。这五个维度就是整个系统要落地的核心分析指标。所有的大数据组件、后端接口、可视化大屏图表都围绕这几件事做文章。明确业务需求的意义在于它能帮你确定数据仓库到底要留哪些字段、Spark计算要输出哪些结果表、大屏要画哪几张图。这个顺序如果反了先搭框架再想需求项目大概率做得四不像。1.2 技术选型为什么是HadoopSparkSpringBoot这套组合技术选型是这个项目最关键也最容易被答辩老师追问的一环。很多同学只知道“用了Hadoop、用了Spark”但被问到“为什么不用Flink”“为什么不用Kafka”就卡壳了。这套技术组合的合理性要从数据特点和场景诉求来看。HDFS承担数据“仓库”角色。二手平台产生的商品快照、用户行为日志是典型的离线批量数据每天定时导入。HDFS的优势是顺序读写大文件、吞吐量高、成本低特别适合做这种“存储原始数据”的底座。Hadoop生态里的YARN还能统一管理集群资源给Spark任务分配CPU和内存。Spark负责“计算”角色。需求分析需要做大量的聚合计算、排序、关联操作。Spark基于内存计算比MapReduce的磁盘迭代快得多尤其是我们对几百万条商品记录做品牌分组、时间窗口聚合这类操作时Spark的DAG执行引擎能把耗时压缩到几十秒级别。Spark SQL的DataFrame API还支持类SQL的写法开发效率高后期改分析逻辑也不用重写太多代码。SpringBoot承担“服务输出”角色。Spark计算出来的结果要展示给用户不能让人直接去命令行敲spark-submit。SpringBoot做一个REST API层从MySQL或Redis读取Spark预处理好的聚合结果按前端需要的数据格式打包返回。可视化大屏走“最后闭环”。ECharts或者阿里DataV做出来的大屏把分析结果用图表语言呈现给业务人员。大屏的意义在于“一屏观全貌”通过滚动刷新、定时请求后端接口实时展现需求风向。这四个环节各司其职形成了一个完整的“存储→计算→服务→展示”闭环。这个链路在真实企业的大数据平台中同样成立只是规模更大、组件更多。所以这个毕设项目能拿高分本质上是赢在“架构合理闭环完整”。1.3 系统总体架构设计整个系统的架构分五层每一层职责清晰不越界层级核心组件职责说明数据源层爬虫脚本、CSV数据集、模拟日志获取二手商品基础数据、用户浏览行为数据存储层HDFS、MySQL、RedisHDFS存原始日志MySQL存业务元数据和Spark计算结果Redis做缓存加速计算层Spark SQL、Spark Streaming可选离线批量分析为主实时指标至少做到近实时准实时服务层SpringBoot提供RESTful API对接大屏和后台管理端展示层Vue ECharts 可视化大屏需求热度排行、价格趋势、品类分布、地理热力等图表渲染这套架构的巧妙之处在于每一层都能单独讲解、单独测试、单独答辩。面试官问到任何一层你都能展开说说技术细节。反过来说如果所有代码堆在一个SpringBoot里那这个项目既不算大数据项目答辩时也讲不出深度。2. 存储层与计算层设计Hadoop和Spark的正确打开方式2.1 伪分布式与集群模式怎么选这是个高频问题也是很多同学在环境搭建阶段卡住的第一道坎。做课程设计、毕业设计数据量通常在一个GB以内单机伪分布式完全足够性能上也不会有太大瓶颈。伪分布式的核心配置在于HDFS、YARN、MapReduce三个核心配置文件。关键操作在core-site.xml里设置NameNode地址在hdfs-site.xml里设置副本数。伪分布式只有一台机器副本数必须设为1否则数据块永远不能达到replication factor会一直出现_COPYING_状态的副本异常。这是我见过新手踩得最多的问题。如果条件允许也可以用三台虚拟机搭一个真正的集群一个Master节点做NameNode ResourceManager两个Worker节点做DataNode NodeManager。集群模式的优势在于能完整走一遍数据节点之间的心跳通信、副本放置、任务调度流程这对面试时聊“集群原理”帮助很大。但要注意无论是伪分布式还是集群模式Hadoop和Spark整合有一个必须做的操作把SPARK_HOME/conf/spark-env.sh里的环境变量配好并且在spark-defaults.conf里指定spark.masteryarn、spark.yarn.jars或者把Spark的jar包上传到HDFS。这一步不做提交Spark任务到YARN时会反复报ClassNotFoundException。2.2 HDFS目录设计与数据表规划数据进了HDFS不是随便丢的目录划分直接决定你后面写Spark代码时能多省事。建议按时间分层hdfs://node01:9000/user/hadoop/ ├── ods/ // 原始数据层不做任何处理爬虫/导入工具落地到这里 │ ├── 20240101_goods.csv │ └── 20240101_behavior.log ├── dwd/ // 明细数据层完成清洗、去重、格式统一 │ └── goods_clean/ └── ads/ // 应用数据层存放Spark分析输出的最终聚合结果 ├── brand_hot_rank/ ├── price_trend_by_month/ └── category_ratio/很多同学喜欢把清洗后的数据直接覆盖到ods目录这是错误示范。大数据领域有一条铁律原始数据永远不变清洗结果另存一份。这样一来任何计算逻辑写错了都可以从头重新跑不用重新采集。这个分层思想也是数仓里的ODS/DWD/ADS三层的简化版写进文档里非常加分。离线表设计方面商品表和日志表是两条主线商品快照表商品ID、名称、品牌、品类、成色、新旧程度、上架价、当前价、上架时间、店铺ID、发货省份/城市。用户行为日志表行为ID、用户ID、商品ID、行为类型曝光/点击/收藏/询价/成交、行为时间、停留时长(秒)。这两张表关联起来就能支撑前文说的五大业务分析维度。2.3 Spark分析任务的代码落地模式Spark部分最核心的代码无非是三类操作读取清洗、分组聚合、结果落库。我建议直接用Spark SQL写SQL可读性强、答辩容易讲而且Spark SQL自带的Catalyst优化器能自动做谓词下推、列剪枝比手写RDD算子跑得快。演示一个核心逻辑品牌热度Top10的统计。思路是浏览量算1.0分权重收藏量算1.5分询价算2.0分成交算3.0分用打分求和来反应“真实需求浓度”。import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._ val spark SparkSession.builder() .appName(BrandHotRank) .enableHiveSupport() .getOrCreate() val goods spark.read.option(header, true) .csv(hdfs://node01:9000/user/hadoop/dwd/goods_clean) val behavior spark.read.json(hdfs://node01:9000/user/hadoop/dwd/behavior_clean) val actionScore behavior.withColumn(score, when(col(action_type) expose, 1.0) .when(col(action_type) click, 1.0) .when(col(action_type) collect, 1.5) .when(col(action_type) inquire, 2.0) .when(col(action_type) trade, 3.0) .otherwise(0.0) ) val result actionScore.join(goods, Seq(goods_id)) .groupBy(brand) .agg( sum(score).as(hot_score), countDistinct(goods_id).as(goods_count), avg(price).as(avg_price) ) .orderBy(desc(hot_score)) .limit(10) result.write.mode(overwrite) .jdbc(jdbc:mysql://localhost:3306/hadoop_pj, ads_brand_hot, connectionProperties)这段代码的加分点在于利用了Spark SQL的when表达式做行为权重映射而不是在Java后端里循环计算体现的是“计算下沉到大数据库端”的架构思维。不过需要注意countDistinct在数据规模大时会导致Shuffle量变大这里数据量小无所谓但如果跑真实的大数据量任务更推荐先用reduceByKey或approx_count_distinct来做预聚合性能差距非常明显。3. SpringBoot后端与可视化大屏实现3.1 后端如何优雅地对接Spark计算结果大数据系统的后端开发和普通CRUD项目最大的不同在于SpringBoot不能也不应该直连HDFS跑Spark否则每个页面请求都会触发一次分布式任务接口延迟无法接受。正确的做法是Spark任务离线跑→结果写入MySQL→SpringBoot读MySQL接口返回给前端。也就是说Spark负责按时产出计算结果SpringBoot只做结果的包装和输出。MySQL里建一组ads_开头的分析结果表后端写一个AnalysisController提供几个REST接口例如RestController RequestMapping(/api/analysis) public class AnalysisController { Autowired private BrandHotService brandHotService; GetMapping(/brand/hot) public ResultListBrandHotVO brandHot() { return Result.success(brandHotService.getTopBrands()); } GetMapping(/price/trend) public ResultListPriceTrendVO priceTrend(RequestParam String brand, RequestParam Integer months) { return Result.success(priceTrendService.getTrend(brand, months)); } }这样做的好处有三个一是接口响应能被控制在100ms以内二是前端大屏的刷新频率可以做到秒级三是MySQL里有固化好的历史结果做环比分析、同比分析时不用重新跑Spark。如果想在答辩时展示“实时感”可以在后端加一个Scheduled定时任务每30分钟调用一次SparkLauncher异步提交分析任务实现“分析结果周期性刷新”的效果。3.2 可视化大屏的图表选型与数据对接大屏是给评委第一印象最重要的部分。数据不需要多花哨但布局和视觉效果要专业。推荐用Vue3 ECharts直接写纯HTML也能搞定但Vue的项目管理能力和响应式数据绑定更方便。核心图表按业务维度做如下选型中间主视觉全国二手需求热力地图展示不同省份的需求热度指数用暗色调底图配高亮涟漪效果视觉冲击力最强。左侧上方品牌需求热度Top10横向柱状图按热度得分排序。左侧下方品类成交占比环形图展示手机、笔记本、平板、相机、智能穿戴、耳机的成交占比。右侧上方近30天价格趋势折线图支持点击切换品牌查看不同品牌的价格波动。右侧下方词云图展示高频搜索型号词iPhone 13 Pro Max、MacBook Pro M3 等等。大屏的数据对接方式推荐直接由前端每10秒轮询后端接口简单可靠。虽然WebSocket能真正做到主动推送但在这个项目里会增加复杂度而且轮询完全够用。这里有个实操细节后端接口返回的数据结构要和ECharts的data字段结构保持一致尽量让后端做字段映射前端只负责渲染。例如ECharts的横向柱状图需要[value, name]格式后端返回时就拼好别让前端再去循环适配。3.3 前后端联调的三道坎前后端联调是这个项目最容易消耗时间的阶段主要坑在三处第一道坎是跨域问题。SpringBoot默认不允许跨域访问但如果你的前端跑在localhost:5173后端跑在localhost:8080必须解决CORS。最简单的方式是写一个WebMvcConfigurer的全局配置别在Controller上一个个加CrossOrigin注解。Configuration public class CorsConfig implements WebMvcConfigurer { Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping(/**) .allowedOrigins(http://localhost:5173) .allowedMethods(*) .allowedHeaders(*) .allowCredentials(true); } }第二道坎是时间字段的格式化。Spark写MySQL时间字段时默认会有类似2024-01-01 00:00:00.0的后缀。前端拿到这种字符串渲染在坐标轴上会不识别。解决方案要么在Spark写库时做date_format转换要么在后端VO里直接用JsonFormat(pattern yyyy-MM-dd)注解格式化。第三道坎是NULL值到JSON的序列化。Spark计算时如果某个品类没有成交量聚合结果是NULL传给前端后可能导致ECharts渲染中断。后端在处理时要用Optional或者三元表达式把Null转成0或空字符串。4. 核心分析指标与模型算法4.1 需求热度指数HRI的计算模型这是整个系统最核心的模型定义。如果答辩老师只问一个问题大概率就是“你的需求热度怎么算的”答不上来会很减分但讲得清楚直接成为一个亮点。需求热度指数Hot Demand Index, HDI的计算公式可以这样定义HDI 0.25 × 标准化浏览量 0.20 × 标准化收藏量 0.25 × 标准化询价量 0.30 × 标准化成交量为什么要做标准化因为浏览量动辄几十万成交量可能只有几百直接加起来成交量会被埋没。所以这里要做归一化处理标准值 (原始值 - 该品类最小值) / (该品类最大值 - 该品类最小值)这个公式的IX值是0到1之间的无量纲数值既能横向比较不同品类之间谁的需求更旺也能纵向比较同一个品类不同时间段的需求变化。权重设计上成交量最大因为代表“真实购买意向”询价比收藏更有购买意图浏览量权重低是因为容易被刷或有印象流。4.2 价格保值率的计算逻辑价格保值率是二手电子产品的核心指标它反映了“买来用一年后还能卖多少钱”。计算公式为保值率 当前二手成交均价 / 该商品市场新品官方价 × 100%分析结果中苹果手机折旧率通常维持在70%-85%区间而安卓中端机可能跳水到40%-50%这个结论非常符合大众认知答辩时容易解释。具体操作上在Spark里用join把商品表和新品价格表关联起来按品牌做分组聚合并计算均值保值率。这个指标能让分析结果显得“懂行业”而不仅仅是在做技术演示。4.3 时间窗口滑动的热度预测除了离线统计也可以做一个带前瞻性质的模型用近90天的成交量、价格、上架量数据通过简单的线性回归预测下一个月的需求趋势。但要注意真实项目中用Spark MLlib做完整的时间序列预测会涉及大量调参对毕设来说是加分项也是风险项。更稳妥的方案是用环比增长率做“趋势判断”而非预测数值。例如本月成交率比上月增长15%定义为“需求上升”下降10%定义为“需求降温”。在可视化大屏上以红绿色箭头展示既直观又容易实现。如果你一定要做MLlib线性回归建议只挑“苹果手机成交量与月均价”两组数据训练结果好会讲结果差也有合理解释比如“样本量不足导致过拟合”这是统计学的正常现象答辩时反而能体现对结果的分析能力。5. 从零搭建这套系统的实操记录5.1 环境初始化与版本搭配这套系统的环境版本搭配是头号稳定性因素。版本选得不对后面每步都是坑。我建议的参考组合组件推荐版本版本原因说明JDK1.8Hadoop和Spark的老版本对高版本JDK支持不完善Hadoop3.3.x支持原生EC2和GPU调度稳定且资料多Spark3.2.x兼容Hadoop3.xScala 2.12编译版本SpringBoot2.7.x原生支持JDK8比3.x更稳MySQL8.0使用率最广驱动兼容性好Scala2.12.15和Spark 3.2.x配套不建议直接上最新版本。Hadoop 3.4、Spark 3.5这些新版本往往需要JDK17支持而SpringBoot 3.x也强制JDK17JDK版本一变就会连带出一堆兼容性问题。做毕设的优先级是“稳定跑通”而不是“用最新”。5.2 Hadoop伪分布式搭建与HDFS初始化这个环节网上教程满天飞但真正一次过的很少核心步骤和坑点是固定的。配置hadoop-env.sh指定JAVA_HOME路径。修改core-site.xmlproperty namefs.defaultFS/name valuehdfs://localhost:9000/value /property修改hdfs-site.xmlproperty namedfs.replication/name value1/value /property property namedfs.namenode.name.dir/name value/usr/local/hadoop/data/name/value /property修改yarn-site.xml配置ResourceManager地址property nameyarn.resourcemanager.hostname/name valuelocalhost/value /property property nameyarn.nodemanager.vmem-check-enabled/name valuefalse/value /property重点说一个最坑的配置yarn.nodemanager.vmem-check-enabled必须设为false。否则Spark任务在YARN上运行时极容易因为虚拟内存超过限制被kill掉。这个参数不配你在提交Spark任务时报错会一脸蒙。start-dfs.sh和start-yarn.sh启动服务用jps命令检查进程NameNode、DataNode、ResourceManager、NodeManager缺一不可。5.3 Spark任务的提交与参数调优Spark分析任务开发调试完成后提交到YARN上运行。这里的提交参数非常讲究直接决定任务能不能跑完。推荐一个低成本稳定的参数组合spark-submit \ --class com.example.spark.BrandHotAnalysis \ --master yarn \ --deploy-mode client \ --driver-memory 1g \ --executor-memory 2g \ --executor-cores 2 \ --num-executors 2 \ --conf spark.sql.shuffle.partitions10 \ spark-hadoop-project-1.0.jar有几个容易被忽略但影响全局的参数spark.sql.shuffle.partitions默认是200。在数据量只有几万条时200个分区完全是浪费资源会产生大量小文件和空task。改成10甚至5任务执行的耗时会显著下降。spark.default.parallelism同样要调小。本地模式下RDD默认的分区数就是一个坑不调小的话生成的结果文件会非常多给后续MySQL写入增加压力。如果任务中出现OOM优先检查executor-memory和存储级别比如MEMORY_AND_DISK还是MEMORY_ONLY。Spark默认RDD缓存是MEMORY_ONLY大数据量的DataFrame缓存时极易OOM。5.4 数据导入与预处理的完整链路数据源的选择有三个方向公开数据集、模拟生成器、合规爬虫。对于毕设而言最推荐的是自己写一个Python脚本生成模拟数据这样数据格式完全可控字段覆盖率100%数量可以自由调节。做10万条商品数据和50万条行为日志生成的CSV文件放在HDFS的/ods目录下。清洗逻辑是整个预处理环节的核心。建议在Spark里做以下几件事丢弃商品ID为空或品牌为NULL的记录丢弃价格小于0或大于10万的异常值对时间戳做格式统一转成yyyy-MM-dd HH:mm:ss去重同一用户1分钟内对同一商品的行为视为一条记录。这个清洗逻辑可以单独写一个DataCleanJob清洗后的数据写入HDFS的/dwd/goods_clean和/dwd/behavior_clean。扫码这套流程走完后再交给分析模型消费。6. 常见问题与排查技巧实录6.1 高频启动故障实录启动时NameNode启动失败但DataNode正常。多数情况是格式化时叠加了多个NameNode目录或者dfs.namenode.name.dir里的current目录损坏。解决方案先stop-all.sh全部停止再hdfs namenode -format -force重新格式化。需要注意的是格式化之前先确认/dwd和/ads下的数据是否备份了否则格式化之后全没了。启动时报Permission denied。HDFS默认权限系统会导致Java程序写入HDFS时出现这个错。开发阶段直接暴力解法把HDFS根目录权限设成777hdfs dfs -chmod -R 777 /这个命令在生产中绝不能用但单机伪分布式下开发调试最省事。真实项目场景中应该用Kerberos认证或配置代理用户组来精确控制权限毕设项目到这里点到为止就行。8088端口看不到YARN任务列表。这个问题的根源多半是yarn-site.xml配了奇怪的参数例如yarn.resourcemanager.webapp.address没有配对。通常使用8088默认端口时不需配置但如果改过端口或配了高可用相关的参数就要去检查webapp.address的配置是否和当前环境匹配。另外新版本的Hadoop RM的Web UI是从8088起跳但如果你设置了yarn.resourcemanager.ha.enabled为trueWeb UI端口并不是8088而是另一个数值这也是一个容易混乱的点。6.2 Spark任务资源不足与OOM排查YARN模式跑Spark任务最常见的错误是Container killed by YARN for exceeding memory limits. 2 GB of 2 GB physical memory used.这个报错的本质是YARN对物理内存和虚拟内存的限制触发了容器的强制回收。排查手段如下先确认任务跑在哪个Stage上看Web UI的Stages标签页观察输入数据和Shuffle大小判断是输入数据过大还是Shuffle产生的临时数据过多。如果是Shuffle问题优先考虑加内存配比或减少分区数分区数减少意味着Shuffle文件数量减少堆内存压力自然会降。实在解决不了就回到前文说的开关yarn.nodemanager.vmem-check-enabledfalse关闭虚拟内存检查。这一步在很多环境里是必加的因为Java虚拟机自身占用的虚拟内存很高但实际物理内存很低默认检查策略会误杀很多正常的Spark任务。6.3 MySQL与HDFS数据一致性问题的解决Spark任务跑完后写入MySQL的数据往往存在一个问题如果某天任务重跑导致结果表和前一天的数据对不上前端大屏展示就会出现“上午显示高热度下午换成低热度”的诡异情况。解决思路是结果表不仅要有最新快照还要有历史版本ads_brand_hot表加两个分区字段stat_date和biz_type查询时取每个品牌每个统计日期下有效日期最新的数据。用窗口函数row_number() over(partition by brand order by stat_date desc)取最新一条即可。在Spark写库时用overwrite覆盖当天分区这样既保留历史又能保证当天数据准确刷新。6.4 大屏数据不刷新的排查路径前端大屏打开后数据一直不更新按照这个顺序排查最高效第一看浏览器Network面板后端接口是否有返回。500还是200第二看MySQL里的数据是否更新。如果表里的数据是前天的一半说明Spark今天没有正常产出结果去YARN上看任务日志。第三看定时调度是否被触发。如果你用SpringBoot的Scheduled或者Cron表达式可能因为服务器时区不对导致凌晨的任务没跑起来。第四看ECharts的数据格式是否正常。返回里的数值如果是字符串ECharts的取值范围计算会出问题。用控制台打印一下组件的series数据一眼就能定位问题。排查路径的本质是“端到端数据完整性回溯”前端拿到数据的前提是后端能查到后端能查到的前提是Spark写入了Spark写入了的前提是数据源和任务调度都正常。按这条链从后往前查准能定位。7. 从一个源码项目到一份能讲的答辩素材这套系统的源码、文档、调试过程和大屏效果拿到手之后建议做三件事把它“变成自己的东西”第一把所有常量参数换成你自定义的指标和公式。比如把需求热度权重从0.25/0.2/0.25/0.3改成适合你研究场景的比例或者增加一个“成色折价系数”的调节参数。答辩时老师问你“为什么这么设权重”你可以说基于实际业务调研和试算结果而不是“网上代码就这么写的”。第二整理一份部署说明书。把环境搭建的关键配置、启动命令、认证方式、数据流程画成图放进文档里。这份文档的价值不只是毕设评阅更是以后投简历时“项目经历”模块的真实素材。第三刻意做一次失误演练。故意把HDFS的副本数设成3或者故意把Spark的executor内存调得很小观察系统会有什么异常。把这些异常和修复过程记录下来因为面试官最喜欢问的就是“你在这个项目里遇到的最大的坑是什么”你答一个“YARN虚拟内存检查杀任务”的细节比背十篇八股文都管用。做大数据方向的毕设拼的不是谁的架构更高大上而是谁能在答辩时把一条数据链路完整、可信地讲清楚。从HDFS上的原始数据到Spark里的分析模型到MySQL里的结果表再到可视化大屏上的每一张图表每一步都有依据、都有对比、都有踩坑记录这个项目读过之后你获得的远不止一份源码。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

4种扫描模式怎么选?Pentest Swarm AI从Bug Bounty到CTF夺旗的场景使用指南 2026/10/2 16:25:28

4种扫描模式怎么选?Pentest Swarm AI从Bug Bounty到CTF夺旗的场景使用指南

4种扫描模式怎么选?Pentest Swarm AI从Bug Bounty到CTF夺旗的场景使用指南 【免费下载链接】Pentest-Swarm-AI Autonomous penetration testing using a swarm of AI agents. Orchestrates recon, classification, exploitation, and reporting specialists with Re…

阅读更多 →
Sql 2008 清楚日志:TaoToken 统一 Key 通道下的数据库日志清理与验证 2026/10/2 16:25:15

Sql 2008 清楚日志:TaoToken 统一 Key 通道下的数据库日志清理与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI Agent 为什么重新拥抱 CLI 2026/10/2 16:25:15

AI Agent 为什么重新拥抱 CLI

过去,命令行常被看成程序员的专属工具:黑色窗口、精确参数、输错一个字符就报错。到了 AI Agent 时代,这套看似古老的交互方式反而重新站到了台前。 原因并不玄乎。大语言模型以文本为输入和输出,CLI 也是文本进、文本出&#xf…

阅读更多 →
LLM之Agent(六十一)|拆解 Coding Agent 的 harness:从零构建你的第一个 AI 编程助手 2026/10/2 16:25:15

LLM之Agent(六十一)|拆解 Coding Agent 的 harness:从零构建你的第一个 AI 编程助手

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
短视频app搭建:用MediaStore获取手机图库最新视频缩略图(含TaoToken配置) 2026/10/2 16:25:15

短视频app搭建:用MediaStore获取手机图库最新视频缩略图(含TaoToken配置)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
新手接入 Claude API,最容易忽略的五个配置项:TaoToken 统一 Key 通道实践 2026/10/2 16:25:14

新手接入 Claude API,最容易忽略的五个配置项:TaoToken 统一 Key 通道实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉