概念介绍 MapReduce 是一种用于处理和生成大规模数据集的编程模型。 它将整个计算过程分为两个核心阶段:Map(映射) 和 Reduce(归并)。在 Map 阶段,数据被分成小块并并行处理,提取出中间的键值对结果;在 Reduce 阶段,框架会将所有具有相同键的数据聚合起来,由用户定义的逻辑进行归并处理,最终输出结果。 MapReduce 的…
配置要求 目标是配置一个基本的 Hadoop 分布式集群: 一台主节点:master 一台从节点:slave1 支持:HDFS + YARN Java 已配置 Hadoop 已安装成功,路径在 /opt/hadoop(你可替换为实际路径) 使用 hadoop version 命令测试 注:前置参考资料在文末,建议先按照前置参考资料进行安装配置到 h…
通用命令 1. KEYS <pattern> ---------------------------------- 作用:根据通配符匹配,列出所有符合条件的 key。 示例: KEYS user:* # 匹配所有以 user: 开头的 key 返回值:匹配的 key 列表 注意:遍历全库,性能差,**生产环境建议使用 SCAN 命令替代**。…
什么是NoSQL? NoSQL 是 "Not Only SQL" 的缩写(起初也有另一种解释为“No SQL”),表示“不仅仅是 SQL”。它泛指一类 非关系型数据库,与传统的关系型数据库(如 MySQL、PostgreSQL)不同,它们通常不使用固定的表结构(没有严格的“表、行、列”模型),而是采用更灵活的数据模型来存储数据。 NoSQL 的设计…
1. DAC(Discretionary Access Control) 自主访问控制 核心特点: 资源拥有者决定权限:用户对其拥有的资源(如文件)有控制权,可以授予或撤销他人的访问权限。 权限可继承/传播:被授权的用户可以继续把权限授予其他用户(这可能导致“权限扩散”)。 举例: 用户 A 拥有一个文件 file.txt,他设置权限让用户 B 也…
在嵌入式系统中,任务之间的通信是实现并发、同步和资源共享的关键。FreeRTOS 提供了多种通信机制,以满足不同的应用场景和性能要求。本文将重点介绍三种常用的通信方式:消息队列(Queue)、邮箱(Semaphore)和任务通知(Task Notification),并通过代码示例分析其适用场景和使用方法。 一、消息队列(Queue) 概述 消息队…
贪婪算法(Greedy Algorithm) 1. 基本思想 每一步都做当前看来最优的选择(即局部最优),希望通过一系列局部最优,达到整体最优。 特点是只顾眼前(每次选择最优),不回溯。 2. 贪婪问题分类 绝对贪婪问题: 每一步的局部最优选择,最终一定得到全局最优解。 例子:活动安排问题、最小生成树问题。 相对贪婪问题: 贪婪算法得到的解不是全局…
项目理解 一个使用了ActiveMQ消息队列的订单-物流系统,两个系统之间通过消息队列来通信,主要有order.created.queue和logistics.updated.queue两个消息队列。 order.created.queue是一个订单创建消息队列。当新订单创建时,系统会将订单信息发送到此队列,通知其他系统或者服务去处理与该订单相关的…
分治算法 分治思想: 分治算法是一种将一个复杂问题分解成多个较小的子问题,通过递归解决子问题,再将子问题的解合并起来,得到原问题的解。分治思想的核心是通过将问题规模减小、分解和组合来简化问题的解决。 分治算法的基本步骤: 分解:将问题划分为多个规模较小、结构与原问题类似的子问题。 解决:递归地解决这些子问题,当子问题的规模足够小或问题简单时,可以直…
一个Spring的AOP练习程序。 \---springdemo │ SpringDemoApplication.java │ ├─aop │ MyAspect.java │ ├─controller │ Test.java │ └─service Another.java 对于Spring来说,其AOP的实现十分简单。只需要在导入相关依赖之后在注…