Kaka Blog

追求自我价值的实现

《小狗钱钱》读后感

前言 最近参加了一个投资训练营,开始之前给我们布置了一项任务,读《小狗钱钱》这本书。 一开始我对这个书名并不感兴趣,还以为是这个训练营他们自己写的。后来发现在微信读书上也有,就开始在微信读书上看这本书。 作者介绍 《小狗钱钱》的作者博多·舍费尔1960年9月10日出生在德国科隆。16岁移民美国,在加州一所高等学校毕业后,先后在美国旧金山和墨西哥学习法律。26岁时他的公司遇到了财务危机...

旋转数组

题目链接 题目 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例2: 输入: [-...

记一次网站没响应排查过程

现象描述 一天上班,同事跟我汇报给客户做的网站访问不了,我打开网站,响应很慢,几乎打不开,我登录到服务器,重启了服务,第一次访问还能进去,接着就几乎进不去,重复重启了好几次,就可以正常访问了,就没再去管它。 第二天,同事汇报网站又打不开了。我这次采用同样的方法,结果没有效果,在网上找了一些资料,修改了系统配置,结果又正常了。 到了第三天,同事又汇报,网站八点多的时候还可以访问,现在又访...

使用CDH上的Flume

Flume简介 Flume是Cloudera提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据发送方用于收集数据,同时Flume提供对数据的简单处理,并将数据处理结果写入各种数据接收方的能力。 2010年11月Cloudera开源了Flume的第一个可用版本0.9.2,这个系列版本被统称为Flume-OG,重构后的版本统称为Flume...

使用Impala和Hive查询HBase

准备HBase测试表 测试表如下: hbase(main):003:0> scan 'student' ROW COLUMN+CELL 001 ...

随机数索引

题目链接 题目 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。 注意: 数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。 示例: int[] nums = new int[] {1,2,3,3,3}; Solution solution = new Solution(nums); // pick(3) 应...

H2O 生成

题目链接 题目 现在有两种线程,氢 oxygen 和氧 hydrogen,你的目标是组织这两种线程来产生水分子。 存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。 氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。 这些线程应该三三成组突破屏障并能立即组合产生一个水分子。 你必须保证...

Java并发之Semaphore

简介 Semaphore是一种计数信号量,用于管理一组资源,内部是基于AQS的共享模式。它相当于给线程规定一个量从而控制允许活动的线程数。 应用场景 Semaphore与CountDownLatch相似,不同的地方在于Semaphore的值被获取到后是可以释放的,并不像CountDownLatch那样一直减到底。它也被更多地用来限制流量,类似阀门的 功能。如果限定某些资源最多有N个线程...

Java并发之AQS

简介 AQS(AbstractQueuedSynchronizer),意思是抽象的列队式同步器,它定义了一套多线程访问共享资源的同步器框架,常用的实现类有ReentrantLock、Semaphore、CountDownLatch等。 AQS定义两种资源共享方式:Exclusive(独占,只有一个线程能执行,如ReentrantLock)和Share(共享,多个线程可同时执行,如Sema...

Java并发之CyclicBarrier

CyclicBarrier介绍 作用 它允许一组线程相互等待,直到到达某个公共屏障点。 业务场景 CyclicBarrier主要是实现了多个线程之间相互等待,直到所有的线程都满足了条件之后各自才能继续执行后续的操作,描述的多个线程内部相互等待的关系。 使用 初始化:用一个给定的计数器来初始化。 await():调用await方法的线程会一直处于阻塞状态,且计数器加1,当...