Spark微博舆情分析系统 情感分析 爬虫 Hadoop和Hive 贴吧资料 双平台 讲解视频 大内容 Hadoop ✅

news/2025/11/20 19:09:11/文章来源:https://www.cnblogs.com/gccbuaa/p/19248325

博主介绍选择放心、选择安心毕业✌就是:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业方案实战6年之久,累计开发方案作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,选择我们,就
> 想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。

点击查看作者主页,了解更多项目!

感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,计划以及论文编写等相关问题都可以给我留言咨询,希望援助同学们顺利毕业 。

1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅

2、最全计算机专业毕业设计选题大全(建议收藏)✅

1、项目介绍

Spark微博舆情分析框架 情感分析 爬虫 Hadoop和Hive 贴吧数据 双平台 讲解视频 大数据 毕业设计

技术栈:

论坛数据(百度、微博)
Python语言、requests爬虫工艺、 Django框架、SnowNLP 情感分析、MySQL数据库、Echarts可视化
Hadoop、 spark、hive 大数据技术、虚拟机

2、项目界面

(1)首页–信息概况
在这里插入图片描述

(2)贴吧用户地址分布分析、微博用户地址分布分析(中国地图)
在这里插入图片描述
(3)帖子分析

在这里插入图片描述

(4)舆情分析
在这里插入图片描述

(5)评论分析

在这里插入图片描述

(6)词云图分析

在这里插入图片描述

(7)贴吧数据中心、微博数据中心

在这里插入图片描述

(8)微博评论中心、贴吧评论中心

在这里插入图片描述

(9)热词统计分析

在这里插入图片描述

(10)注册登录

在这里插入图片描述

(11)后台管理

在这里插入图片描述

3、项目说明

项目功能模块介绍

一、数据采集模块
  1. 微博爬虫

    • spiderWeiboNav.py:从微博导航分组接口获取分类信息并保存到本地文件。
    • spiderWeibo.py:根据分类信息爬取微博文章的详细内容。
    • spiderWeiboDetail.py:爬取微博评论资料并保存。
    • changeData.py:对微博数据进行清理,去除换行符等。
  2. 贴吧爬虫

    • spiderTieba.py:爬取百度贴吧指定主题的资料。
    • spiderTiebaDetail.py:爬取帖子的回复内容。
    • hotWordDeal.py:对帖子内容进行词频统计并提取热词。
二、数据分析与可视化模块
  1. 数据概况

  2. 用户地址分布分析

  3. 帖子分析

  4. 舆情分析

  5. 评论分析

  6. 词云图分析

  7. 热词统计分析

三、数据存储与管理模块
  1. 贴吧数据中心

    • 存储和管理贴吧相关的数据。
  2. 微博数据中心

    • 存储和管理微博相关的数据。
  3. 评论中心

    • 存储和管理微博和贴吧的评论信息。
四、用户交互模块
  1. 注册登录

  2. 后台管理

五、技术架构
  • 数据采集:使用 Python 的 requests 爬虫技术。
  • 情感分析:使用 SnowNLP 进行情感分析。
  • 数据存储:利用 MySQL 数据库存储数据。
  • 大数据处理:使用 Hadoop、Spark 和 Hive 进行大数据处理。
  • 可视化:使用 Echarts 进行数据可视化。
  • Web 框架:使用 Django 框架构建前端界面。

4、核心代码

#coding:utf8
# 导包
from pyspark.sql import SparkSession
from pyspark.sql.functions import monotonically_increasing_id
from pyspark.sql.types import StringType, StructField, StructType, IntegerType, FloatType
from pyspark.sql.functions import count, mean, col, sum, when, max, min, avg, to_timestamp, current_timestamp, unix_timestamp, to_date, expr, coalesce, lit
if __name__ == '__main__':
# 构建 SparkSession
spark = SparkSession.builder.appName("sparkSQL").master("local[*]").\
config("spark.sql.shuffle.partitions", 2). \
config("spark.sql.warehouse.dir", "hdfs://node1:8020/user/hive/warehouse"). \
config("hive.metastore.uris", "thrift://node1:9083"). \
enableHiveSupport().\
getOrCreate()
# 读取数据表
tiebadata = spark.read.table('tiebadata')
weibodata = spark.read.table('weibodata')
tiebaComment = spark.read.table('tiebaComment')
weiboComment = spark.read.table('weiboComment')
tiebaHotword = spark.read.table('tiebaHotword')
weiboHotword = spark.read.table('weiboHotword')
# 需求一:时间统计
# 将时间列转换为日期格式
tiebadata = tiebadata.withColumn('postTime', to_date(col("postTime"), "yyyy-MM-dd HH:mm:ss"))
weibodata = weibodata.withColumn('createdAt', to_date(col("createdAt"), "yyyy-MM-dd"))
# 按日期分组统计帖子数量,并计算与当前日期的天数差
result1 = tiebadata.groupby("postTime").agg(count('*').alias("count"))
result2 = weibodata.groupby("createdAt").agg(count('*').alias("count"))
result1 = result1.withColumn("days_diff", expr("datediff(current_date(), postTime)"))
result2 = result2.withColumn("days_diff", expr("datediff(current_date(), createdAt)"))
result1 = result1.orderBy("days_diff")
result2 = result2.orderBy("days_diff")
# 重命名列并合并两个结果
result1 = result1.withColumnRenamed("count", "post_count")
result2 = result2.withColumnRenamed("count", "created_count")
combined_result = result1.join(result2, result1.postTime == result2.createdAt, "outer")\
.select(
coalesce(result1.postTime, result2.createdAt).alias("date"),
coalesce(result1.post_count, lit(0)).alias("post_count"),
coalesce(result2.created_count, lit(0)).alias("created_count"),
)
combined_result = combined_result.orderBy(col("date").desc())
# 将结果保存到 MySQL 和 Hive
combined_result.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "dateNum"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
combined_result.write.mode("overwrite").saveAsTable("dateNum", "parquet")
spark.sql("select * from dateNum").show()
# 需求二:类型统计
# 统计微博和贴吧帖子的类型分布
result3 = weibodata.groupby("type").count()
result4 = tiebadata.groupby("area").count()
# 将结果保存到 MySQL 和 Hive
result3.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "weiboTypeCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result3.write.mode("overwrite").saveAsTable("weiboTypeCount", "parquet")
spark.sql("select * from weiboTypeCount").show()
result4.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "tiebaTypeCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result4.write.mode("overwrite").saveAsTable("tiebaTypeCount", "parquet")
spark.sql("select * from tiebaTypeCount").show()
# 需求三:帖子排序点赞
# 按点赞数降序排列,取前 10 条记录
result5 = weibodata.orderBy(col("likeNum").desc()).limit(10)
result6 = tiebadata.orderBy(col("likeNum").desc()).limit(10)
# 将结果保存到 MySQL 和 Hive
result5.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "weiboLikeNum"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result5.write.mode("overwrite").saveAsTable("weiboLikeNum", "parquet")
spark.sql("select * from weiboLikeNum").show()
result6.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "tiebaLikeNum"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result6.write.mode("overwrite").saveAsTable("tiebaLikeNum", "parquet")
spark.sql("select * from tiebaLikeNum").show()
# 需求四:点赞区间分类
# 将微博和贴吧帖子的点赞数分为不同区间
weibodata_like_category = weibodata.withColumn(
"likeCategory",
when(col("likeNum").between(0, 1000), '0-1000')
.when(col("likeNum").between(1000, 2000), '1000-2000')
.when(col("likeNum").between(2000, 5000), '2000-5000')
.when(col("likeNum").between(5000, 10000), '5000-10000')
.when(col("likeNum").between(10000, 20000), '10000-20000')
.otherwise('20000以上')
)
result7 = weibodata_like_category.groupby("likeCategory").count()
tiebadata_like_category = tiebadata.withColumn(
"likeCategory",
when(col("likeNum").between(0, 50), '0-50')
.when(col("likeNum").between(50, 100), '50-100')
.when(col("likeNum").between(100, 200), '100-200')
.when(col("likeNum").between(200, 500), '200-500')
.when(col("likeNum").between(500, 1000), '500-1000')
.otherwise('2000以上')
)
result8 = tiebadata_like_category.groupby("likeCategory").count()
# 将结果保存到 MySQL 和 Hive
result7.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "wLikeCategory"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result7.write.mode("overwrite").saveAsTable("wLikeCategory", "parquet")
spark.sql("select * from wLikeCategory").show()
# sql
result8.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "tLikeCategory"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result8.write.mode("overwrite").saveAsTable("tLikeCategory", "parquet")
spark.sql("select * from tLikeCategory").show()
# 需求五:评论量分析
# 将微博和贴吧的评论量分为不同区间
weibodata_com_category = weibodata.withColumn(
"comCategory",
when(col("commentsLen").between(0, 10), '0-10')
.when(col("commentsLen").between(10, 50), '10-50')
.when(col("commentsLen").between(50, 100), '50-100')
.when(col("commentsLen").between(100, 500), '100-500')
.when(col("commentsLen").between(500, 1000), '500-1000')
.otherwise('1000以上')
)
tiebadata_com_category = tiebadata.withColumn(
"comCategory",
when(col("replyNum").between(0, 10), '0-10')
.when(col("replyNum").between(10, 50), '10-50')
.when(col("replyNum").between(50, 100), '50-100')
.when(col("replyNum").between(100, 500), '100-500')
.when(col("replyNum").between(500, 1000), '500-1000')
.otherwise('1000以上')
)
result9 = weibodata_com_category.groupby("comCategory").count()
result10 = tiebadata_com_category.groupby("comCategory").count()
# 合并微博和贴吧的评论量统计结果
combined_result2 = result9.join(result10, result9.comCategory == result10.comCategory, "outer") \
.select(
coalesce(result9.comCategory, result10.comCategory).alias("category"),
coalesce(result9['count'], lit(0)).alias("weibo_count"),
coalesce(result10['count'], lit(0)).alias("tieba_count"),
)
# 将结果保存到 MySQL 和 Hive
combined_result2.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "ComCategory"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
combined_result2.write.mode("overwrite").saveAsTable("ComCategory", "parquet")
spark.sql("select * from ComCategory").show()
# 需求六:评论分析
# 对微博评论的点赞数进行区间分类
weibodata_comLike_category = weiboComment.withColumn(
"comLikeCategory",
when(col("likesCounts").between(0, 10), '0-10')
.when(col("likesCounts").between(10, 50), '10-50')
.when(col("likesCounts").between(50, 100), '50-100')
.when(col("likesCounts").between(100, 500), '100-500')
.when(col("likesCounts").between(500, 1000), '500-1000')
.otherwise('1000以上')
)
result11 = weibodata_comLike_category.groupby("comLikeCategory").count()
# 将结果保存到 MySQL 和 Hive
result11.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "comLikeCat"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result11.write.mode("overwrite").saveAsTable("comLikeCat", "parquet")
spark.sql("select * from comLikeCat").show()
# 需求七:评论性别分析
# 统计微博评论的性别分布
result12 = weiboComment.groupby("authorGender").count()
# 将结果保存到 MySQL 和 Hive
result12.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "comGender"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result12.write.mode("overwrite").saveAsTable("comGender", "parquet")
spark.sql("select * from comGender").show()
# 需求八:评论地址分析
# 统计微博和贴吧评论的来源地址分布
result13 = weiboComment.groupby("authorAddress").count()
result14 = tiebaComment.groupby("comAddress").count()
# 将结果保存到 MySQL 和 Hive
result13.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "weiboAddress"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result13.write.mode("overwrite").saveAsTable("weiboAddress", "parquet")
spark.sql("select * from weiboAddress").show()
result14.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "tiebaAddress"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result14.write.mode("overwrite").saveAsTable("tiebaAddress", "parquet")
spark.sql("select * from tiebaAddress").show()
# 需求九:帖子情感得分分析
# 对微博和贴吧帖子的情感得分进行分类
weibodata_scores_category = weibodata.withColumn(
"emoCategory",
when(col("scores").between(0, 0.45), '消极')
.when(col("scores").between(0.45, 0.55), '中性')
.when(col("scores").between(0.55, 1), '积极')
.otherwise('未知')
)
tiebadata_scores_category = tiebadata.withColumn(
"emoCategory",
when(col("scores").between(0, 0.45), '消极')
.when(col("scores").between(0.45, 0.55), '中性')
.when(col("scores").between(0.55, 1), '积极')
.otherwise('未知')
)
result15 = weibodata_scores_category.groupby("emoCategory").count()
result16 = tiebadata_scores_category.groupby("emoCategory").count()
# 将结果保存到 MySQL 和 Hive
result15.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "weiboEmoCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result15.write.mode("overwrite").saveAsTable("weiboEmoCount", "parquet")
spark.sql("select * from weiboEmoCount").show()
# sql
result16.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "tiebaEmoCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result16.write.mode("overwrite").saveAsTable("tiebaEmoCount", "parquet")
spark.sql("select * from tiebaEmoCount").show()
# 需求十:热词情感分析
# 对微博和贴吧的热词情感得分进行分类
weibodata_Hotscores_category = weiboHotword.withColumn(
"emoCategory",
when(col("scores").between(0, 0.45), '消极')
.when(col("scores").between(0.45, 0.55), '中性')
.when(col("scores").between(0.55, 1), '积极')
.otherwise('未知')
)
tiebadata_Hotscores_category = tiebaHotword.withColumn(
"emoCategory",
when(col("scores").between(0, 0.45), '消极')
.when(col("scores").between(0.45, 0.55), '中性')
.when(col("scores").between(0.55, 1), '积极')
.otherwise('未知')
)
result17 = weibodata_Hotscores_category.groupby("emoCategory").count()
result18 = tiebadata_Hotscores_category.groupby("emoCategory").count()
# 将结果保存到 MySQL 和 Hive
result17.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "weiboHotEmoCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result17.write.mode("overwrite").saveAsTable("weiboHotEmoCount", "parquet")
spark.sql("select * from weiboHotEmoCount").show()
result18.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "tiebaHotEmoCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result18.write.mode("overwrite").saveAsTable("tiebaHotEmoCount", "parquet")
spark.sql("select * from tiebaHotEmoCount").show()
# 需求十一:热词得分区间分析
# 对微博和贴吧的热词情感得分进行区间分类
weiboHotWord_range_category = weiboHotword.withColumn(
"scoreCategory",
when(col("scores").between(0, 0.1), '0-0.1')
.when(col("scores").between(0.1, 0.2), '0.1-0.2')
.when(col("scores").between(0.2, 0.3), '0.2-0.3')
.when(col("scores").between(0.3, 0.4), '0.3-0.4')
.when(col("scores").between(0.4, 0.5), '0.4-0.5')
.when(col("scores").between(0.5, 0.6), '0.5-0.6')
.when(col("scores").between(0.7, 0.8), '0.7-0.8')
.when(col("scores").between(0.8, 0.9), '0.8-0.9')
.when(col("scores").between(0.9, 1), '0.9-1')
.otherwise('overRange')
)
tiebaHotWord_range_category = tiebaHotword.withColumn(
"scoreCategory",
when(col("scores").between(0, 0.1), '0-0.1')
.when(col("scores").between(0.1, 0.2), '0.1-0.2')
.when(col("scores").between(0.2, 0.3), '0.2-0.3')
.when(col("scores").between(0.3, 0.4), '0.3-0.4')
.when(col("scores").between(0.4, 0.5), '0.4-0.5')
.when(col("scores").between(0.5, 0.6), '0.5-0.6')
.when(col("scores").between(0.7, 0.8), '0.7-0.8')
.when(col("scores").between(0.8, 0.9), '0.8-0.9')
.when(col("scores").between(0.9, 1), '0.9-1')
.otherwise('overRange')
)
result19 = weiboHotWord_range_category.groupby("scoreCategory").count()
result20 = tiebaHotWord_range_category.groupby("scoreCategory").count()
# 将结果保存到 MySQL 和 Hive
result19.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "tiebaScoreCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result19.write.mode("overwrite").saveAsTable("tiebaScoreCount", "parquet")
spark.sql("select * from tiebaScoreCount").show()
result20.write.mode("overwrite"). \
format("jdbc"). \
option("url", "jdbc:mysql://node1:3306/bigdata?useSSL=false&useUnicode=true&charset=utf8"). \
option("dbtable", "weiboScoreCount"). \
option("user", "root"). \
option("password", "root"). \
option("encoding", "utf-8"). \
save()
result20.write.mode("overwrite").saveAsTable("weiboScoreCount", "parquet")
spark.sql("select * from weiboScoreCount").show()

感兴趣的可能先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目编程以及论文编写等相关问题都许可给我留言咨询,希望可以帮助同学们顺利毕业!

5、源码获取方式

由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。

点赞、收藏、关注,不迷路,下方查看获取联系方式

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LIB3:MISC固件库 - LI,Yi

介绍标准库中的MISC固件库1. misc.h * @file misc.h * @brief 本文件包含所有杂项固件库函数的函数原型(CMSIS 函数的补充功能)。1.1 变量声明 /** * @brief NVIC 初始化结构体定义 */typedef struct {uint8_…

AT_abc250_h [ABC250Ex] Trespassing Takahashi

推式子题 考虑如何求出任意一个点到离它最近的房子的距离? 有一个很巧妙的处理方法是,我们可以建一个超级源点,连向所有房子,权值设为 \(0\),然后在新图上跑一个最短路,就能求出所有点到离它最近的房子的距离 \(…

11/20

今天无事发生,明天没课,嘿嘿

Langchain Splitter源码阅读笔记(一)CharacterTextSplitter

一、TextSplitter TextSplitter继承自BaseDocumentTransformer,是一个抽象类,不能直接创建实例。核心(内部)属性有: _chunk_size: 每块大小 _chunk_overlap: 每块之间的重叠区大小 _length_function: 计算大小的方法…

《从“直接对话”到 “集成开发调用”:智谱 GLM-4.6 引领 Coding 场景的效率跃迁》 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:Visual Studio Code 高效开发完全指南(2025年更新版)

完整教程:Visual Studio Code 高效开发完全指南(2025年更新版)2025-11-20 18:57 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !im…

开源低代码平台落地痛点解析

开源低代码平台凭借自主可控、成本优化的优势,成为越来越多企业数字化转型的选择。但实际落地过程中,不少企业遭遇技术适配不畅、安全漏洞频发、维护成本失控等问题,导致项目推进受阻,甚至中途搁置。 很多企业误以…

开源低代码 vs 闭源低代码:深度对比与企业选型决策指南

企业数字化转型过程中,低代码平台的选型往往陷入 “开源还是闭源” 的两难。开源低代码的自主可控与闭源低代码的成熟稳定,分别击中了企业的不同核心诉求。但很多企业在选型时,仅基于 “是否免费”“是否易上手” 等…

day10-Dify对接本地大模型

今日内容 1 补充 1.1 dify服务开启和关闭 # 1 dify服务开启关闭-个人电脑,大部分同学都会关机--》服务器是永远不关机 7*24*365 稳定不停机运行-关机再重启,dify没启动,就访问不了-win/mac本地:启动,关闭dify服务…

Windows 11** 上安装 MySQL

在 Windows 11 上安装 MySQL 的流程和 JDK/Tomcat 类似,分为下载、安装、配置和验证四步。下面给你一个完整的操作指南 👇🖥️ 安装 MySQL 步骤 1. 下载 MySQL前往 MySQL 官方下载页面 推荐下载 MySQL Installer …

Windows 11 上安装 PostgreSQL

Windows 11 上安装 PostgreSQL🖥️ 安装 PostgreSQL 步骤 1. 下载 PostgreSQL前往 PostgreSQL 官方下载页面 推荐下载 EnterpriseDB 提供的 Windows 安装包 (Installer),它包含 PostgreSQL Server、pgAdmin 管理工具…

2025青岛防水补漏公司怎么选?首选青岛极冠快修,堵漏、漏水检测全业务覆盖,连锁企业值得信赖

随着城市建筑老化与极端天气频发,防水补漏成为维护建筑安全的关键需求。在2025年青岛防水服务市场中,青岛极冠快修(青岛尤卉防水)凭借十六年本地化服务经验与技术沉淀,成为众多家庭与企业客户的信赖选择。无论是屋…

WebRTC在低时延直播中的应用

本文分享自天翼云开发者社区《WebRTC在低时延直播中的应用》.作者:江****禄 随着互联网技术的发展,视频直播成为了许多行业中的关键应用,包括教育、娱乐、体育赛事和电子竞技等。在这些应用中,低时延直播尤为重要,…

合并 K 个升序链表-leetcode

题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: …

解码线程池

线程池核心概念 线程池是管理线程的缓冲机制,提前创建一定数量的线程存入 “池子” 中,任务到来时直接从池中取出线程执行,任务完成后线程不销毁,放回池中待命。其核心作用是减少线程频繁创建 / 销毁的开销,避免线…

Windows 11 上安装 JDK

在 Windows 11 上安装 JDK🖥️ 安装步骤详解 1. 下载 JDK前往 Oracle 官方下载页面 或 OpenJDK 官网Oracle下载共享账号 账号:83926039@qq.com 密码:Oracle1.推荐选择 长期支持版本 (LTS),如 JDK 11 或 JDK 17,…

cacti 监控 linux

Cacti 是一个基于 Web 的监控工具,主要用于监控 Linux 系统和网络设备。它使用 SNMP(Simple Network Management Protocol)来收集数据,并通过图形化界面展示监控数据。? 一、Cacti 的基本功能监控系统资源:CPU 使…

2025年成都电线电缆采购标杆厂家最新推荐:成都鑫佰亿,电力电缆/高压电缆/中压电缆/低压电缆/铜芯电缆/铝芯电缆/树立电线电缆品质新标准

随着国家电网建设持续投入、新能源产业快速发展及城乡配电升级需求增加,电线电缆行业已从传统基建配套逐步扩展至风电、光伏、新能源汽车充电设施等多个领域,2025年市场规模预计稳步增长。但行业扩张也带来厂商生产工…

2025年11月取暖器、电暖器十大品牌权威推荐:石墨烯取暖成主流,告别干燥严寒,解锁全屋舒适暖居体验

随着冬季气温逐渐走低,取暖器成为家庭、办公场景的刚需家电。如今的取暖设备早已不止于 “发热” 功能,更朝着高效速热、健康不燥、智能便捷、美学融合的方向升级。国家家用电器质量监督检验中心数据显示,符合 GB 4…