摘要:
1. 准备虚拟机(最小化安装)
2. 配置一台纯净版模板机
-- 固定ip地址、修改主机名
-- 用xshell工具连接模板机
-- 通过yum安装方式安装必要的软件
-- 关防火墙
-- 修改hosts文件
-- 创建普通户用(atguigu)并且提升它能拥有root权限
-- 在Linux的/opt目录下创建 software 和 module
-- 将software 和 module 目录的所有者和所属组修改为 atguigu
3. 准备hadoop102 机器(通过克隆模板机的方式创建)
-- 修改IP
-- 修改主机名 阅读全文
摘要:
Hadoop的组成,Hadoop的组成主要分为三个部分,分别为最著名的分布式文件系统(HDFS)、MapReduce框架、储存系统(HBase)等组件。
HDFS:数据切割、制作副本、分散储存
MapReduce:拆解任务、分散处理、汇整结果
HBase:分布式储存系统 阅读全文
摘要:
今天在做算法题的时候学习到了一种新的解题方法--摩尔投票法
原题是leetcode上的多数元素问题;
"给定一个大小为 n 的数组,找到其中的多数元素.多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素"
解题思路是这样的,暂时选定第一个元素为候选人,给一个初始票数为1,遍历数组每当遇到与候选人相同的数,票数则加一,如果不相同则减一.如果等于0则更换下一个候选人,初始票数为1
遍历完成之后剩下的那个候选人就是这个数组里面的多数元素,因为题目里面规定了多数元素在数组中出现的次数一定是大于n/2的,所有最后候选人的票数一定是大于等于1的(如果数组中存在多数元素); 阅读全文
摘要:
为什么是16384(2^14)个?
在redis节点发送心跳包时需要把所有的槽放到这个心跳包里,以便让节点知道当前集群信息,16384=16k,在发送心跳包时使用bitmap压缩后是2k(2 * 8 (8 bit) * 1024(1k) = 2K),也就是说使用2k的空间创建了16k的槽数。
虽然使用CRC16算法最多可以分配65535(2^16-1)个槽位,65535=65k,压缩后就是8k(8 * 8 (8 bit) * 1024(1k) = 8K),也就是说需要需要8k的心跳包,作者认为这样做不太值得;并且一般情况下一个redis集群不会有超过1000个master节点,所以16k的槽位是个比较合适的选择。
作者原话:
1、普通心跳数据包携带节点的完整配置,该配置可以用旧配置以幂等方式替换,以便更新旧配置。这意味着它们包含原始形式的节点的槽配置,16k的槽配置需要使用2k内存空间,但是使用65k槽将使用8k的内存空间。
2、同时,由于其他设计折衷,Redis集群不可能扩展到超过1000个节点。 阅读全文
摘要:
缓存机制
一.工作原理
1.为什么redis适合做缓存?
缓存的两个特征,分别是可以快速访问;缓存写满时,数据需要被淘汰。而 Redis 天然就具有高性能访问和数据淘汰机制,正好符合缓存的这两个特征的要求,所以非常适合用作缓存。
2.redis做缓存的两种模式
只读缓存和读写缓存,
读写缓存提供了同步直写和异步写回这两种模式,
同步直写模式侧重于保证数据可靠性,
而异步写回模式则侧重于提供低延迟访问,
我们要根据实际的业务场景需求来进行选择。
举个例子,在商品大促的场景中,商品的库存信息会一直被修改。如果每次修改都需到数据库中处理,就会拖慢整个应用,此时,我们通常会选择读写缓存的模式。而在短视频 App 的场景中,虽然视频的属性有很多,但是,一般确定后,修改并不频繁,此时,在数据库中进行修改对缓存影响不大,所以只读缓存模式是一个合适的选择。
3.只读缓存和使用直写策略的读写缓存有什么区别吗?
只读缓存是牺牲了一定的性能,优先保证数据库和缓存的一致性,它更适合对于一致性要求比较要高的业务场景。 阅读全文
摘要:
前几天接触了Spring Cloud,了解了Eureka,现在简单的对几个比较重要的点做一个小总结,算是小小的复习;
首先是Eureka的简单的工作原理,Eureka框架包含两个组件,一个是Eureka Server,一个是Eureka Client;
Eureka Server叫服务注册中心,每个服务启动后都要注册在这;
Eureka Client叫服务实例,分为服务提供者和服务消费者,服务之间是通过REST调用的,Eureka Client内置一个使用负载轮询算法的负载均衡器; 阅读全文
摘要:
解决:Error:java: 无效的源发行版: 12
解决的方法是:
1.shift+ctrl+alt+s打开Project Structure,找到Project Settings下的Project,将Project SDK下的框修改为1.8版本
2.在Modules选择你的项目->选择你的jdk版本为8
3.File->Setting:查找java compiler->Target bytecode version 修改为8(你的jdk版本,同样注意父级项目)
4.重新启动 阅读全文
摘要:
org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [oracle.xdb.XMLTypeFactory]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. 阅读全文
摘要:
maven build 的时候报错 Could not find artifact pom:001-SNAPSHOT 异常 阅读全文
摘要:
题目描述:
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 阅读全文