什么是fail-fast机制?
什么是快速失败机制?
fail-fast 机制,即快速失败机制,是java集合(Collection)中的一种错误检测机制。当在迭代集合的过程中该集合在结构上发生改变的时候,就有可能会发生fail-fast,即抛出ConcurrentModificationException异常。fail-fast机制并不保证在不同步的修改下一定会抛出异常,它只是尽最大努力去抛出,所以这种机制一般仅用于检测bug。
快速失败机制经常出现在我们的集合操作中,快速失败机制是Iterator区别于Enumeration的一大特点。下面是一个fail-fast的示例。
上面的list存储的是String类型的数据,然后将这个list类型的数据进行遍历时删除索引为3的元素值为3的数据值,但是list存储的是String类型所以会出发快速失败机制,日志中会产生ConcurrentModificationException异常,如下所示:
Hadoop学习笔记
HDFS概述NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和和块所在的DataNode等。
DataNode(dn):在本地文件系统存储文件数据块以及数据块的校验和。
Secondary NameNode(2nn):用来监控HDFS的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
yarn架构图
常见的正则表达式
为什么不能一直格式化NameNode,格式化NameNode需要注意什么?集群在工作的时候他的datanode的集群id和namenode的集群id是一样的,这样才能保证集群的正常工作,如果你格式化了namenode的集群id这个时候你的datanode的集群id是没有改变的,他们两个不一致的话集群无法正常工作。
如果需要格式化NameNode的信息,那就需要datanode中的关于集群id的信息删除;
关于YARN
ResourceManager:集群资源的总管NodeManager:单个节点资源的总管
HDFS的优缺点
优点
1.高容错性
2.适合处理大数据
3.可构建在廉价 ...
Python笔记
在print(r’Hello,Python’)中的r是什么意思?r代表的是原始字符串标识符,也就是说 用r’ ‘表示’ ‘内部的字符串默认不转义
输出:print()eg.print('The quick brome fox','jumps over','the lazy dog')
The quick brome fox jumps over the lazy dog
输入:input()上述命令即可进行人机交互了 eg.name=input() Daniel
可以在input里面放入一些提示信息如下所示
name=input('please input your name:')
print('hello,',name)
运行上面的代码结果如下所示
please input your name:Daniel
hello Daniel
字符编码对于单个字符,Python提供了ord()函数获取字符的整数表示和chr()函数把编码转换成对应的字符:
>>>ord( ...
Linux笔记
linux是在日常开发中常用的一个操作系统,但是linux中的指令实在太多了,这篇博客主要是记录平时常用的一些指令进行汇总。
如何进行secureCRT连接的不同界面之间的切换——Alt+”Num”如图所示为4个不同的连接的页面,我们在进行切换时直接按住 Alt+”连接界面所处的位置”
如何在linux中关掉一些进程scp 文件安全拷贝命令( secure copy)scp -r 本地文件地址 username@ip:目的账户的保存地址(如果是文件的话就不需要加上 -r 了)
xsync集群分发脚本在进行集群配置的时候可能会需要在master上进行了配置,然后有需要将配置好的文件逐个传输到其他的文件夹下面,这样是非常的耗费精力的,为了实现快速的进行向各个节点的文件传输,我们这里采取配置xsync集群分发脚本。
集群时间的同步操作
牛顿迭达法
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要,牛顿迭达法就是一种有效的求近似根的方法。
一、问题引入
##实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例 1:
输入: 4
输出: 2
示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去
###此处要求算的是一个数的平方根,所以我们可以很合理的考虑使用牛顿迭达法(也称牛顿法或牛顿-拉夫森法)
###一、牛顿法的基本思想:
通过迭代来实现,每次运算都让结果比之前好一点。
哪怕只好一点点,在很多次迭代之后也可以得到一个很好的结果甚至最优或期望的结果。
###二、牛顿法的目的:
牛顿法就是通过使原方程泰勒展开的一阶近似等于零不断获 ...
易忘的一些琐碎操作
这篇博客记录的是一些琐碎但重要的内容
一、如何写一篇博客并部署到github上?
第1步:首先在博客所在的文件目录下打开git客户端,新建一个markdown文件
hexo new post "article title"
第2步:书写博客,具体的markdown的语法格式参考如下:
markdown语法
第3步:清除本地缓存
hexo clean
第4步:进行渲染
hexo generate 简写作 hexo g
第5步:部署到本地
hexo server 简写作 hexo s
此时会弹出本地链接地址进行浏览
第6步:部署到git服务器
hexo deploy 简写作 hexo d
---
#二、运行web项目时发生了端口已占用如何解决?
第一步:打开命令窗口查看对应端口号的进程及其PID
Windows+R——打开命令窗口
netstat -ano——查看具体进程的pid
第2步:打开任务管理器,在“详细”处根据pid找到进程然后强制关闭
markdown常用语法
如何用markdown写博客?需要的语法都在这里
标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
一级标题二级标题三级标题四级标题五级标题
引用
>一级引用
>
>>二级引用
>
>一级引用
一级引用
二级引用
一级引用
行开头加“点”
* red
* green
* blue
red
green
blue
加上序号
1.red
2.green
3.red
1.red
2.green
3.red
代码块区域:直接点上面的code“<>”就可以了;
public class Hello{
public static void main(String[] args){
System.out.println("Hello MarkDown);
}
}
斜体
*这是斜体的方式*
_这是斜体的方_
这是斜体的方式
...
二叉树
关于二叉树的定义以及遍历方式
#二叉树二叉树:任何一个节点的子节点数量不超过2,二叉树的子节点分为左节点和右节点
满二叉树:所有叶子节点都在最后一层,而且节点的总数为Math.pow(2,n)个,其中n是指树的高度
完全二叉树:所有叶子节点都在最后一层或者倒数第二层,且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续完全二叉树是可以从左向右一直数下去的,如果出现了数数过程中的不连续,那么就说明不是一棵完全二叉树(如果图中没有6和7,那么就不是一棵完全二叉)
##树的遍历对于下图的二叉树进行遍历时,其三种遍历顺序结果为
前序遍历:ABCDEFGHK
中序遍历:BDCAEHGKF
后序遍历:DCBHKGFEA
前序遍历: 中左右进行遍历时,先从最中间的根节点开始,然后是左子树,左子树的遍历也是按照先中间,再左边,然后右边的顺序进行的,遍历完左子树,再进行右子树的遍历。先从最中间开始,A,然后再到左子树AB,B没有左节点,故ABC,C结束后再C的先左右节点,ABCD,然后到了A的右子树,查找顺序是一样的,就不再进行赘述了得到ABCDEFGHK
中序遍历: 左中右先从 ...