- 博客(119)
- 资源 (12)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 jdk 源码分析(0) java 源码分析汇总
jdk源码分析汇总:后续会不断添加jdk 源码分析(17)java Semaphore 源码解析及与lock对比jdk 源码分析(16)java CyclicBarrier 源码解析jdk 源码分析(15)java CountDownLatch 源码解析jdk 源码分析(14)java ThreadLocaljdk 源码分析(13)java Ex
2017-08-05 13:21:51
1099
原创 spark 集群添加jar包 正解
前置1、先说一下spark-submit 提交命令 ,应该采用 如下路径的spark-submit,因为这样才会读取spark-default.conf>> /opt/cloudera/parcels/CDH/lib/spark/spark-submit2、如果无法找到正确的路径,采用配置方式如:spark-submit --class org.apache.spark.examples.SparkPi --master yarn --properties-fil
2021-06-23 20:44:11
2197
转载 LTR方法总结 记录一下吧!
LTR方法总结 <记录下,免得忘了,直接看原文吧>原文地址:https://www.jianshu.com/p/629fdbf2bfc5
2020-07-27 21:22:18
970
原创 netty 学习系列 jstack
blind NioEventLoop到MultithreadEventLoopGroup at io.netty.util.concurrent.DefaultEventExecutorChooserFactory$PowerOfTwoEventExecutorChooser.next(DefaultEventExecutorChooserFactory.java:57) at i...
2019-07-31 15:46:55
338
原创 netty 学习系列 ChannelOption
Netty之ChannelOption一、详情 在用netty作为底层网络通信的时候关于ChannelOption的参数让我一直模糊不清楚,于是去看一下linux网络编程,发现ChannelOption的各种属性在套接字选项中都有对应 下面简单的总结一下ChannelOption的含义已及使用的场景 1、ChannelOption.SO_BACKLOG ChannelOpti...
2019-07-31 15:45:34
353
原创 netty 学习系列 其他杂七杂八
1、选择器的极限挑战:netty的group 相当于一个线程池,选择线程有两种方式。public EventExecutorChooser newChooser(EventExecutor[] executors) { if (isPowerOfTwo(executors.length)) { return new PowerOfTwoEventExecutorC...
2019-07-31 15:43:37
191
原创 大话hbase
两周没有写东西了,因为不知道传递什么东西好,今天才知道这里大部分人对大数据基础组件都是很了解,所以这周开始大白话基础组件。大话hbase:功能1:基于某一条索引快速定位该条数据。其他功能:其他功能都是基于功能1之上。为了功能而功能。比如统计所有的条数counter。比如查询某一段时间断范围的值等等。都是基于上面的功能之上做的增强。我们谈谈设计:定位也就是查找。怎么才能快速定位。...
2019-07-31 15:13:51
270
原创 大数据维护指南(2)
1、关于代码编写:大S 主要采用spark来控制主要流程。不管是kafka到hdfs,还是HDFS到hbase,以及后面的任务。所以spark的代码一定要高质量。1、如果你spark访问hbase,访问kafka,尽量参考我们提供的spark提供的用例代码。我相信你有能力写好自己的接口,但你不该发费太多时间去研究这些。后续调优发的时间远比你用的多。除非提供的接口已经无法满足你的要求。我们...
2019-07-31 13:09:53
589
原创 大数据维护指南(1)
FI维护组每年遇到的问题几千,相信我们的经验能减少你们的走的弯路。针对大S的开发场景。我个人构建每周一学。主要讲解二次开发,开发过程中的注意点。spark篇:1、spark-submit 任务spark-submit 任务由客户端提交。修改任何配置都只是需客户端Conf下的文件。包括访问hbase,hdfs的客户端参数。2、如果想修改日志级别,可以修改下面文件的配置。log4j.p...
2019-07-31 12:49:45
1035
原创 zookeeper 系列(3) create 流程(1)
create 流程主要是zkcli 里的create命令为入口,分析客户端解析命令,发送命令,服务端接收命令,解析命令,到以leader接收的prequestProcesser的流程流程图片可能不太清楚,截图如下:解析流程发送包装发送流程服务器接收流程, 这部分在服务器启动过程有详细分析,可以参考流程。 初步处理流程。后面还有zab的流程。待续......
2018-04-05 13:57:02
1358
原创 hbase 源代码解析(23)truncate 和truncate_preserve流程分析
命令作用:清空表数据,但是保留表结构,分析原因:今天定位一个奇怪的现象,当hbase建立4个region的表,然后用truncate命令时,出现1个region在线而有4个region offline,然后继续put数据,制定split到4个region时,使用truncate_preserve发现出现9个offline,7个failed,并且再put数据时出现表不存在,问题还在定位中。所以需
2017-10-24 22:56:39
7511
2
原创 深度学习笔记(九)AutoEncoder自动编码器
前面的神经网络都是是基于监督的网络,这一章节主要是介绍非监督学习网络,原理很简单,自己学习,然后将学习的内容反过来生存初始状态,然后对比,×自动编码器是一种尽可能复现输入信号的神经网络×自动编码器必须获取到代码输入数据的最主要的因素,类似于PCA,尽量找到主要成分基于监督的学习 监督学习会有target,通过对比prediction和ta
2017-09-04 23:20:13
1826
原创 深度学习笔记(八)LSTM长短期记忆网络
上一个章节(RNN)最后的时候分析, 当t-k远大于0的时候,如果小于零,将会变成一个很小值,如果大于零,将会变成一个很多的数,前者就是梯度消失,后者就是梯度爆炸,LSTM主要是解决这个问题。梯度消失图如下:其实,长短时记忆网络的思路比较简单。原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。那么,假如我们再增加一个状态,即
2017-09-04 22:13:00
8147
原创 深度学习笔记(七) RNN循环神经网络
这个只是自己的学习笔记,文章内容是从很多地方总结的。只是方便自己的查阅之余能对你有所帮助。前一个章节的CNN主要处理图片的问题,主要是空间角度的转换,这个章节的RNN主要是时间角度。主要处理前面的输入对未来的影响,或者未来的输入对 前面的影响。举例1 NLP前面对后面的影响选择:1)小红是中国人,我在上海见到了()
2017-09-04 20:54:08
845
原创 深度学习笔记(六) cnn 卷积神经网络
1)卷积神经网络是一种前馈神经网络,前面讲的网络包括full NN,感知器都是前馈网络,BP是一种前馈网络的训练方法。2)卷积神经网络主要是降维,有点类似PBACNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特
2017-09-03 22:01:32
5415
原创 深度学习笔记(五) 代价函数的梯度求解过程和方法
作为自己的笔记系列,方便自己查阅和理解。1)什么是梯度梯度本意是一个向量(矢量)当某一函数在某点处沿着该方向的方向导数取得该点处的最大值,即函数在该点处沿方向变化最快,变化率最大(为该梯度的模)。在二元函数的情形,设函数z=f(x,y)在平面区域D内具有一阶连续偏导数,则对于每一点P(x,y)∈D,都可以定出一个向量(δf/x)*i+(δf/y)*j
2017-08-31 22:30:24
25804
1
原创 深度学习笔记(四) cost function来源和证明
1)什么是代价函数WIKI的解释:Cost functionIn economics, the cost curve, expressing production costs in terms of the amount produced.In mathematical optimization, the loss function, a function
2017-08-25 22:58:06
3140
原创 深度学习笔记(三)back propagation(BP) 原理和求解过程
上一章分析基本神经网络以及怎么训练网络过程。里面有用到提到BP (反向传播的求解)1)BP 其实是一种思想首先我们看一个计算式子e=(a+b)∗(b+1)的图模型:如下左图所示, 其中,c,d表示中间结果,边的方向表示一个结点是另一个结点的输入。 假设输入变量a=2,b=1时,图中各结点的偏导计算结果如下: 利用正向微分算法,
2017-08-24 22:52:08
8336
1
原创 深度学习笔记(二)神经网络
1)发展历史因为感知器只能 处理线性问题,当Hinton在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题原理:上一个章节介绍了感知器,分析了感知器为啥不可以解决非线性问题。如果将激活函数改为sigmoid或者relu将能过够处理非线性问题。同时多层感知器出现,经证明,多层感知器能表示任何
2017-08-23 22:40:10
1261
原创 深度学习笔记(一)感知器
刚忙完一个项目,最近时间相对比较多,所以上午一般对spark的源码分析,下午研究深度学习,spark源码分析文档在公司写的,没法外传,下午深度学习没有写博客,所以想晚上写一个系列。这个系列主要是针对这对时间的对深度学习写一个备忘录,同时加深一点印象。所有的内容都是在网上,书上看到的,我只是做一些终结和看法。1)深度学习发展历史:这一章节主要分析感
2017-08-23 21:24:53
4230
原创 spark 源代码分析 (二)spark启动过程
下载spark后,调用shell脚本启动:./bin/spark-shell --master local[2]接下来将分析这个一个过程。spark-shell会启动--class org.apache.spark.repl.Main,参数--name"Spark shell""$@" ,然后会调用spark-submitcygw
2017-08-15 20:36:34
862
原创 jdk 源码分析(21)java 动态代理和反射
java动态代理用在很多地方。spring框架,RPC框架中都使用了动态代理,动态代理很重要。首先看看静态代理:相对静态代理而已,静态代理需要对每一个方法做一次处理。如下:定义一个实体列,交个代理类,然后由代理帮忙做事 public static void main(String[] args) { People people = new S
2017-08-09 23:09:40
587
原创 jdk 源码分析(20)java NIO包简单分析
优点,采用多路复用,而且因为采用buffer机制,当读写buffer时不需要阻塞。nio 也有缺点,因为nio需要很多代码去出去半包问题,而底层采用epoll也是有问题,这些问题在多并发是可能出现,因为这些问题,所以出现netty,netty能快速开发出稳定的通信框架,所以spark/kafka都有netty。
2017-08-08 22:05:16
2655
1
原创 jdk 源码分析(19)java net包简单分析
net里的网络连接是阻塞的,如果服务器端使用,一般每获取一个请求后启动一个新的线程,然后由新的线程处理数据。不再服务器接收请求的那里直接处理。当然也可以像nio那样,将一个线程专门处理接收,然后启动一个线程池,专门接收数据,然后一个线程池处理数据,一个线程池会写数据。
2017-08-05 23:45:35
1076
原创 jdk 源码分析(18)java io包分析
总结:io分为读output和写input,同时通过解码可以分为字符流Reader和字节流InputStream。通过组装DataInput可以读取int,long和float和short等。通过ObjectInputStream序列化和反射可以直接读成对象readUTF等。
2017-08-05 16:22:23
702
原创 jdk 源码分析(17)java Semaphore 源码解析及与lock对比
总结:应该可以说Semaphore 如果说是一种特殊的lock:(因为大家首先首先lock才这么说,应该是lock是一种特殊的Semaphore)1)lock 是独占,一人享用,而Semaphore是一个多人使用,lock是电影院的VIP单人间,而Semaphore是大厅。 2)lock和Semaphore都需要排队,都有两种排队方式:公平和非公平。3)lock和Semaphore都是改变state变量,只是lock争夺0变成1,而Semaphore是争一个非零的值,因此几率大很多。4)如果初始是
2017-08-05 12:38:51
478
原创 jdk 源码分析(16)java CyclicBarrier 源码解析
CyclicBarrier 的实现很简单,1)定义两个变量parties 和count,2)每次线程将count减少1,如果减少完之后count!=0,进程竟然await 。如果count==0. signalAll所有线程,同时将count置为parties,开始新的一轮3)Generation是里面的一个标准,用于中断CyclicBarrier等。所以新的一轮是会重新new 一个Generation
2017-08-05 11:38:39
447
原创 jdk 源码分析(15)java CountDownLatch 源码解析
CountDownLatch 和lock的机制很相似,(参考lock:jdk 源码分析(7)java ReentrantLock结构)相同点:1)lock需要队列保存竞争的线程,CountDownLatch需要队列(链表)保持等待的线程线程,2)都需要park和unpark。不同点:1)lock (重入锁)是争论的谁能将state 变成1,而CountDownLatch 是大家一起齐心协力将state 变成0,2)lock 是改变不了state的线程park,而CountDownLatch 是需
2017-08-05 10:51:13
495
原创 jdk 源码分析(14)java ThreadLocal
优点:各自线程维护自己的变量,能在线程里任何位置设置值,读取值,不需要通过参数在方法或对象中显示传递。
2017-08-04 23:01:15
351
原创 jdk 源码分析(13)java ExecutorService 和Executors
线程池首先判断有多少可以运行,1)如果可以运行,直接加入到workers 集合中,并且里面启动包装类worker,worker,在执行完当前线程后会去线程池中寻找下一个线程,并且执行2)如果当前执行的线程大于设定的数目,就线程放入缓存队列queue 里面。这里的线程,会在上(1)中执行后调用。
2017-08-04 22:24:05
434
原创 jdk 源码分析(12)java condition 条件锁
在分析ReentrantReadWriteLock 时知道多个线程在争论一个state,那么当时数据放在那里呢。都是放在syns里,这个类继承了AbstractQueuedSynchronizer,而里面的node(链表)就是存储数据的。所以其实所有的lock 是离不开的队列的。今天的condition 也是离不开队列,也离不开lock,所以其实现类就放在AbstractQueuedSynchro...
2017-08-03 23:11:35
449
原创 jdk 源码分析(11)java ArrayBlockingQueue 缓存队列分析
队列没有什么,如图,分为头和尾,都是FIFO(先进先出),用数组和链表都能存储数据,数组当poll 数据后,需要整体移位(当然循环数组也是可以不移位的。),链表就方便很多。插入时在头部添加一个,删除是在尾部直接删除,
2017-08-03 22:29:33
456
原创 jdk 源码分析(10)java unsafe 分析
cas大意就是先去获取一次结果,如果结果和现在不同,就直接返回,因为有其他人修改了;否则会一直尝试去修改。直到成功。
2017-08-03 21:37:35
3200
原创 jdk 源码分析(9)java ReentrantReadWriteLock分析
ReentrantReadWriteLock将分为两种情况,read/write,两种之间存在竞争关系,而且write里面竞争是你死我活,但是read则是共享社会。write 和前面的reentrantlock很类似,所以里面的规则也是一样。需要分为公平与不公平,也需要排队。
2017-08-02 23:49:38
351
原创 jdk 源码分析(8)java synchronized和锁lock对比
因为synchronized 是关键字,无法看到源代码,所以只能做一个简单的分析对比了,synchronized 能锁方法,也能锁代码块,其实也是一种重入锁(也就是自己的锁,自己可以进去),代码块或方法离开,自动释放锁。lock:lock能做synchronized能做的所有的事情,但是lock 能过在资源竞争地方,通过投票等方法让其他锁释放。而sync
2017-08-02 22:52:28
1642
原创 jdk 源码分析(7)java ReentrantLock结构
lock看上去很牛,其实真的很牛,如果你仔细研究代码发现,所以的lock都只是去争一个变量stateprivate volatile int state;如果你能将这个state从零变成1,你就可以获得资源,因为要判断是谁获得了这个state,所以需要保留这个线程的对象。因为要记录有哪些线程在争论lock,所以需要队列,既然有队列,就有队列的机制,公平机制(先到先得),非公平机制(可能存在饿死的线程,一直得不到)。这里的队列是用Node组成的链表,记录了head和tail。
2017-08-02 22:39:21
320
原创 jdk 源码分析(6)java BitSet结构
如果有一个Set 里面存放了(整数)1,3,4,5,23,23,12,65这些数,如果直接存储需要8×32位 ;如果采用位图,只需要用两个long整型串联。
2017-08-02 21:39:23
316
原创 jdk 源码分析(5)java ConcurrentSkipListMap结构
跳表结构之下往上分层,比如需要找117,首先会判断最高层,先比较21,在比较37 ,再比较37左边的,因为左边结束了,所以只能往下走,一直找到目标为止:寻找规则,从最高层开始,先右,再下,直到最后。
2017-08-02 21:02:09
348
交通灯定时控制系统实验报告 含Multisim仿真图 含555定时器引脚图
2009-12-14
交通灯定时控制系统的设计、制作 Multisim仿真图
2009-12-06
多功能数字时钟设计报告 用555定时器 160计时器 仿真图 Multisim
2009-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人