设计模式总结03–行为型模式

设计模式总结03–行为型模式1 模板方法1.1 设计意图1.2 解决要点1.3 优缺点优点缺点2 策略模式2.1 设计意图2.2 解决要点2.3 优缺点优点缺点3 责任链模式3.1 设计意图3.2 解决要点3.3 优缺点优点缺点4 观察者模式4.1 设计意图4.2 解决要点4.3 优缺点优点缺点5 中介者模式5.1 设计意图5.2 解决要点5.3 优缺点优点缺点6 状态模式6.1 设计意图6.2 解决要点6.3 优缺点优点缺点7 命令模式7.1 设计意图7.2 解决要点7.3 优缺点优点缺点8 迭代器模式8
分类: 其他 发布时间: 03-22 10:27 阅读次数: 0

执行Ambari-DDL-MySQL-CREATE.sql脚本出现报错的解决方法。

首先,数据库是正常的。执行Ambari-DDL-MySQL-CREATE.sql该脚本出现错误,可能是数据库ambari不存在所导致、或者用户ambari不存在所导致,或者编码导致,或者其它错误,这是我的推断。之后我一个一个去排除,都不是这些问题,然后我把脚本里面的sql代码考出来运行就成功了。原因是:源码里面没写好选择数据库的代码。。。。。确实,经过验证,如果把源码直接复制出来贴上去的话...
分类: 其他 发布时间: 03-22 10:26 阅读次数: 0

ambari报错解决

报错1:Using python /usr/bin/pythonStarting ambari-serverAmbari Server running with administrator privileges.ERROR: Exiting with exit code -1. REASON: Before starting Ambari Server, you must copy t...
分类: 其他 发布时间: 03-22 10:26 阅读次数: 0

分布式技术栈1.1–基础理论之CAP理想到BASE现实

CAP理想到BASE现实引言引言
分类: 其他 发布时间: 03-22 10:26 阅读次数: 0

解决CodeBlocks组件缺失与丢失(SpellChecker: Thesaurus files 'C:\CodeBlocks\share\codeblocks\SpellChecker\....)

具体情况:SpellChecker: Thesaurus files 'C:\CodeBlocks\share\codeblocks\SpellChecker\th_en_US.idx not found解决方法:下载缺失的东西放到对应目录,然后重启:下载: 链接:CodeBlocks缺失字典下载提取码:tvx0复制这段内容后打开百度网盘手机App,操作更方便哦下载完之后将两个文...
分类: 其他 发布时间: 03-22 10:26 阅读次数: 0

分布式技术栈1.2–基础理论之2PC与3PC分布式事务

2PC与3PC分布式事务引言1 两阶段提交模型1.1 原理介绍1.1.1 准备阶段1.1.2 提交阶段1.2 优缺点总结1.2.1 优点1.2.1 缺点2 三阶段提交模型2.1 原理介绍2.1.1 询问阶段2.1.2 准备阶段2.1.3 提交阶段2.2 优缺点总结2.2.1 优点2.2.1 缺点引言分布式一致性,可以分为强一致性、弱一致性和最终一致性。其中两阶段提交模型(2PC)和三阶段提交模...
分类: 其他 发布时间: 03-22 10:26 阅读次数: 0

codeblocks编译C++程序后运行弹窗报错:不支持的16位应用程序 已解决!

把电脑上面的安全管家卸载,然后下载360安全卫士,去系统修复那里直接修复即可。 然后要卸载原来的codeblocks,用360清理一下残留的垃圾,然后重启,然后重新安装,之后不能使用之前编译过的项目,要重新新建项目使用,就算原项目重新编译也不行。原因分析是: 注册表被篡改,不知道是什么程序篡改的,目测是电脑管家等电脑软件篡改的,因为我把电脑管家卸载之后下载360就正常了(也有可能是电脑管家没有...
分类: 其他 发布时间: 03-22 10:26 阅读次数: 0

分布式技术栈1.3–基础理论之常见几种补偿提交事务模型

常见几种补偿提交事务模型引言1 TCC模型1.1 原理介绍1.1.1 尝试阶段1.1.2 确认/取消阶段1.2 优缺点总结1.2.1 优点1.2.1 缺点2 本地消息表2.1 原理介绍2.1.1 生产方2.1.2 消费方2.2 优缺点总结2.2.1 优点2.2.1 缺点3 Sagas模型3.1 原理介绍3.2 优缺点总结3.2.1 优点3.2.1 缺点引言补偿提交是实现分布式最终一致性的一种思...
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

分布式技术栈2.1–常见算法之Paxos算法理论与应用

Paxos算法理论与应用实践引言1 原理1.1 Basic Paxos算法1.1.1 算法过程1.1.2 美中不足1.2 Multi Paxos算法1.2.1 算法思想1.2.2 再度升华2 应用2.1 无中心多节点备份2.1.1 数据操作算法2.1.2 节点加入/移除2.1.3 运维事项引言Paxos算法是著名的分布式强一致性算法。它是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。1 原理Paxos算法解决各个节点如何就某个值或操作达成一致,这个过程
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

分布式技术栈2.2–常见算法之Raft算法理论与应用

Raft算法理论与应用引言1 原理1.1 算法过程1.2 美中不足1.3 再度升华2 应用引言在分布式系统中,为了满足分区容错,即当某个节点宕机、还能正常服务且数据不丢失。常常采用多节点备份,然后在多个节点选择一个主节点提供读写操作,其他节点只提供读取操作。Raft算法便是一种比较普遍的主节点竞选算法。1 原理算法中节点有三个状态:leader、follower和candidate。leader是节点被选为主节点状态、follower是节点作为从节点的状态、candidate是主节点失联后竞选自己为
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

leveldb源码剖析1.1–基础概述之源码搭建

leveldb源码剖析01–基础概述之源码搭建引言1 源码下载2 环境配置3 源码简介引言leveldb是一个开源的单机KV存储库,其作者是谷歌工程师Jeff Dean和Sanjay Ghemawat。很多开源LSM存储引擎都基于或使用leveldb,例如rocksdb。1 源码下载源码下载地址:https://github.com/google/leveldb2 环境配置3 源码简介关键源码目录介绍:db 数据库功能核心实现模块;include 对外API头文件模块;port
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

leveldb源码剖析1.2–基础概述之整体架构

leveldb源码剖析02–基础概述之整体架构引言1 整体架构2 设计术语引言leveldb采用LSM树(Log Structured-Merge Tree)实现,通过放弃部分读性能换取写性能的提升。将传统的随机写文件,转换为顺序追加写文件。1 整体架构整个leveldb核心架构如下:共分为上下两层:上层为内存架构、下层为文件系统架构。当进行数据写入的时候:首先,将数据追加写入的日志文件;然后,添加到MemTable缓存中;当MemTable超过一定阈值,就会转为immutable MemTa
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

谈谈为什么选择pyecharts新版本1.x而不选择旧版本0.5.x?

版本对比:0.5.x :0.5.x 版本已经不再进行维护。0.5.x版本支持的python版本以及依赖包版本比较旧。0.5.x版本的可视化图表太少、无法满足可视化工作的需求。0.5.x版本相对稳定,因为没有人对其进行维护,也就不会引入新的bug。0.5.x版本支持的平台少。(比如不支持Tornado)0.5.x仅仅支持函数调用,非常容易上手。1.x版本:1.x版本还在继续维...
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

leveldb源码剖析1.3–基础概述之文件分类

leveldb源码剖析03–基础概述之文件系统引言1 核心文件2 其他文件引言之前介绍了关于leveldb的源码搭建和整体架构,这篇主要是了解leveldb主要的文件系统和它们的存储内容及功能目标。1 核心文件log文件log文件是持久化写入到MemTable中的数据,每个MemTable对应生成一个log文件。即在MemTable转为immutable MemTable的时候,就会新生成一个log文件持久化后续新写入的数据。此外,打开数据库时,会生成第一个MemTable缓存和对应的log文件
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

leveldb源码剖析1.4–基础概述之存储格式

leveldb源码剖析04–基础概述之存储格式引言1 log文件1.1 WriteBatch引言前面讲了leveldb的关键文件,现在主要介绍各类关键文件的数据格式,这对我们阅读和理解leveldb源码是很有必要的。1 log文件1.1 WriteBatchleveldb将Put/Delete/Write封装成WriteBatch对象,然后将WriteBatch序列化后写入log文件。其中WriteBatch序列化后的格式如下:Sequeue:所有的写入数据操作都是严格排序的。该字段为第一个
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

leveldb源码剖析2.1–核心设计之内存池实现

leveldb源码剖析05–核心设计之内存池实现引言1 数据结构2 源码解读2.1 源码解读2.2 发现问题引言为了更加合理地使用内存,在leveldb中实现了自定义的内存池。1 数据结构leveldb的内存池实现类为Arena,其核心数据域如下:首先,用一个vector类型的blocks_存储分配的一块块内存;用alloc_ptr_指向最新申请的内存中未使用内存的首地址;用alloc_bytes_remaining_表示最新申请的内存中未使用内存的字节大小;特别地,memory_usage_统
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

leveldb源码剖析2.2–核心设计之mem缓存

leveldb源码剖析06–核心设计之mem缓存引言1 跳表原理1.1 数据结构1.2 数据查询1.3 插入节点1.4 删除节点2 源码解读引言无论是MemTable、还是immutable MemTable,在leveldb源码实现中都是MemTable类型。其核心数据结构是跳表。1 跳表原理1.1 数据结构跳表主要是优化传统有序链表的操作时间复杂度,借鉴于二分查找算法。其结构如下图:图中是一个最大高度为3的跳表。表头有3个指针域,数据节点为1到3个指针域。所有的指针域指向后续节点的基地址,
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

安装好pyecharts1.x版本或者0.5.11版本 以及相关包后在关于JupyterNotebook和本地html调用图像无法显示的问题解决方法!

首先,原因分析:不是绘图语法错误之类的,因为没有报错,语法也正常。会不会是某个程序冲突导致的呢?这也不对啊,我在虚拟环境中试过了。既然和网页有关,会不会是js或者css的问题???不太确定,但有嫌疑。于是,我也不想瞎猜了,有事去官网就对了。这不,官网的说法:就是下面这个默认值是罪魁祸首。解决方法: 官方解决获取 pyecharts-assets 项目 $ git clon...
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0

Python ML常用库安装-详细滴

更新pip:pip install --upgrade pippython -m pip install --upgrade pip安装keraspip install keras安装sklearn:pip install -U scikit-learn安装tensorflow:官网:tensorflow官网1.CPU版本:pip install tensorflow-cpupip install tensorflow (这样也是默认安装cpu版本)pip install te
分类: 其他 发布时间: 03-22 10:25 阅读次数: 0