- 博客(21)
- 资源 (4)
- 收藏
- 关注
原创 Spark 深入解析
RDD(Resilient Distributed Dataset)是 Spark 最核心的数据抽象,它解决了分布式计算中的。Spark 是目前最流行的分布式计算框架之一,特别适用于大规模数据处理和机器学习任务。,并行计算时,每个分区的 Task 会在不同的 Executor 里运行,避免单点瓶颈。RDD 是 Spark 最基础的数据抽象,它提供了分布式计算的灵活性,但。来弥补 RDD 的不足,使得大数据计算更高效、更易用。,Spark 通过 DAG 追踪数据计算过程,以支持。
2025-03-06 18:23:16
1111
原创 Hive 组件
Hive 通过 SQL(HiveQL)提供对 HDFS 数据的查询能力。SQL 解析过程包括 AST 生成、优化、物理执行计划等。Hive 通过 MapReduce 任务执行 SQL,主要涉及 Map、Shuffle、Reduce 阶段。面对大数据表,Hive 提供 Map Join、Sort-Merge Join 等优化策略。Hive 使用 ANTLR 解析 SQL 并生成 AST(抽象语法树)。Hive 适用于离线数据分析、批量数据处理、结构化数据查询,但对于实时查询。
2025-03-06 13:59:10
567
原创 分布式网络
指的是一种计算机网络架构,其中计算资源(计算、存储、数据处理等)分布在多个物理或逻辑上的节点上,而不是集中在单一的服务器或数据中心中。)是一种数据存储架构,它将数据分布在多个物理或逻辑服务器上,而不是集中在单台机器上。将大规模数据拆分成小块(Shard/Chunk),分布到不同的存储节点上,提高存储性能和扩展性。同一份数据存储多个副本,保证在部分节点故障时,数据仍然可用,提高数据可靠性。:多个服务部署在不同机器上,使用 gRPC、HTTP 进行通信。:腾讯云、阿里云、AWS 等提供的云存储、云计算服务。
2025-03-05 17:14:43
1644
原创 Kafka底层结构
的方式存储数据,底层存储采用**Segment(日志分段)+ Index(索引)**的方式管理数据。其底层设计确保了 Kafka 在。当消费者加入/退出消费者组,Kafka 会进行。消费者从 Kafka 拉取数据,采用。等场景下的高效运作。
2025-03-03 11:14:06
682
原创 Redis
RDB更适合对性能要求高、可以接受短时间数据丢失的场景(例如缓存、备份等)。AOF更适合对数据持久性要求高、不能接受任何数据丢失的场景(例如交易系统、实时应用等)。结合使用提供了更强的数据安全性和恢复能力,同时在不同的场景下做出平衡。缓存穿透缓存雪崩和缓存击穿。这三种问题主要与缓存的设计和使用方式有关,了解它们的概念及解决方法是避免缓存失效带来性能问题的关键。缓存穿透:防止无效请求查询缓存,减少数据库负载。解决方案包括缓存空值和布隆过滤器。缓存雪崩:大量缓存同时失效,导致数据库压力剧增。
2025-03-03 10:53:32
642
原创 ThreadLocal 详解及 ThreadLocalMap 结构
是 Java 提供的一种线程本地存储机制,它允许在同一线程内共享变量,但不同线程之间的数据相互隔离。每个线程都有自己的变量副本,不会与其他线程共享。适用于线程安全的共享变量管理,避免了锁竞争,提高了性能。典型应用场景包括用户会话管理、事务管理、线程上下文传递等。通过存储数据,每个线程维护自己的。采用开放地址法存储 Entry,Key 是的弱引用,Value 是存储的数据。set()存储、get()获取、remove()删除,避免内存泄漏。适用于线程隔离的上下文管理。
2025-02-27 16:54:31
441
原创 Java 中的同步器
Semaphore用于控制资源的访问数量。用于等待多个事件的发生。用于多个线程达到同步点时共同继续执行。这些同步器帮助在并发编程中解决各种协调问题,提高程序的可靠性和可控性。
2025-02-27 15:16:10
263
原创 Synchronized 和 ReentrantLock 的异同
使用场景如果只是需要简单的同步,更方便且易于使用。如果需要更多的灵活性,比如可中断、尝试锁、或者条件变量等,更适合。提供了更多的功能,但需要手动管理锁的获取和释放,容易出错;而则更简单易用,适合不需要复杂同步的情况。
2025-02-27 15:08:05
428
原创 Java虚拟机(JVM)
JVM(Java Virtual Machine,Java虚拟机)是Java程序的运行环境,它充当了Java程序和操作系统之间的中介。JVM使得Java具有跨平台的能力,即“编写一次,到处运行”。它将Java字节码(编译后的Java代码)解释为机器代码并执行,确保了不同平台上Java应用的行为一致性。JVM主要由几个关键部分组成,确保了Java程序的执行和内存管理。
2025-02-27 15:03:29
588
原创 java的内存模型
Java内存模型(JMM)确保了多线程环境下共享变量的访问规则,提供了可见性、原子性和一致性保证。JMM通过volatile、内存屏障、等机制来协调线程间对内存的操作,避免并发问题。掌握JMM是理解Java多线程编程的关键。
2025-02-27 14:48:58
505
原创 java的线程池及动态线程池
Java 线程池(Thread Pool)是 Java 并发编程中的重要组件,主要用于管理和复用线程,以提高程序的并发性能、减少线程创建和销毁的开销,并防止资源耗尽。Java 提供了 包下的 框架来管理线程池。在高并发环境下,如果每个任务都创建一个新线程:Java 提供了 框架来管理线程池,其中主要的类包括: 是 Java 线程池的核心实现类,其构造方法如下:3.1 参数解析: (核心线程数)(最大线程数) & (非核心线程存活时间 & 时间单位)(任务队列)(线程工厂)(拒绝策略)任
2025-02-27 11:29:38
1885
原创 时间复杂度和空间复杂度计算规则
(Big-O Notation)表示,省略常数和低阶项,关注。(不包括输入数据本身),也用大 O 记号。时间复杂度和空间复杂度用于衡量算法的。之间的增长关系,常用。
2025-02-27 11:01:33
409
原创 ArrayList和LinkedList的区别
ArrayList和LinkedList都是 Java 中List接口的实现类,但它们的底层实现和适用场景不同。
2025-02-27 10:54:44
331
原创 ConcurrentHashMap原如何保证的线程安全
的扩容过程中,每个旧桶(bucket)在完成迁移后,会被替换为一个特殊的 ForwardingNode。JDK 1.8 版本优化了并发控制,减少了锁的粒度,提高了并发性能,是目前推荐的实现方式。的哈希表扩容方式,旨在减少扩容过程中对系统性能的影响。3、如果旧表还没有迁移完,新表又进行了一轮扩容会怎么办。采用**Segment(分段锁)**机制,每个。策略,避免一次性搬迁所有数据,而是。策略,保证数据正确迁移并完成扩容。导致新表又触发了一轮扩容,的扩容过程中,它采用。,不会阻塞整个系统。
2025-02-27 10:37:10
634
原创 页面table导出Excel
因工作需要, 需要将页面自己拼的Excel报表导出Excel,于是网上找了一点东西,自己来写了一个,下面是demo。导入js文件,同时需要jQuery.js支持。<script src="table2excel.js"></script> $("#table_1").table2excel({ exclude: ".excludeTh...
2018-12-03 13:51:05
636
原创 linux下安装jdk
这段时间开始学习linux了,在文本界面玩了好几天后,觉得还是要开始自己的老本行了,于是就装上了jdk,结果发现在linux下安装应用有其独特的地方,以前只在windows下开发,所有的软件都是解压,然后运行解压后的setup.exe文件,然后就能用了,在linux上才更清醒的认识到软件的安装和使用是怎能回事了,废话不多说,开始安装;先下载jdk,这个不用说都知道,可以进官网下,也可以
2017-06-08 20:25:33
501
原创 第七届蓝桥杯决赛—反幻方
反幻方我国古籍很早就记载着2 9 47 5 36 1 8这是一个三阶幻方。每行每列以及对角线上的数字相加都相等。下面考虑一个相反的问题。可不可以用 1~9 的数字填入九宫格。.使得:每行每列每个对角线上的数字和都互不相等呢?这应该能做到。比如:9 1 28 4 37 5 6你的任务是搜索
2017-05-03 13:09:59
2906
1
原创 蓝桥杯决赛真题—愤怒的小鸟
愤怒小鸟X星球愤怒的小鸟喜欢撞火车!一根平直的铁轨上两火车间相距 1000 米两火车 (不妨称A和B) 以时速 10米/秒 相对行驶。愤怒的小鸟从A车出发,时速50米/秒,撞向B车,然后返回去撞A车,再返回去撞B车,如此往复....两火车在相距1米处停车。问:这期间愤怒的小鸟撞 B 车多少次?注意:需要提交的是一个整数(表示撞
2017-05-02 21:36:11
4637
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人