博客园 - 淩風
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=127057
2013-08-13T14:09:58Z
淩風
https://www.cnblogs.com/yshb/
feed.cnblogs.com
https://www.cnblogs.com/yshb/p/3256131.html
HBase-0.95.1源码分析之split - 淩風
split操作执行的是将HBase中较大的Region分为两个。因为split比较耗时,因此split是在独立的线程中完成的,相关类是CompactSplitThread。首先,CompactSplitThread中分区的方法主要是以下两个:CompactSplitThread.requestSplit(HRegion):检测是否需要分区,如果需要分区则调用requestSplit(HRegion, byte[])CompactSplitThread.requestSplit(HRegion, byte[]):执行分区操作CompactSplitThread.requestSplit(HReg
2013-08-13T14:10:00Z
2013-08-13T14:10:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】split操作执行的是将HBase中较大的Region分为两个。因为split比较耗时,因此split是在独立的线程中完成的,相关类是CompactSplitThread。首先,CompactSplitThread中分区的方法主要是以下两个:CompactSplitThread.requestSplit(HRegion):检测是否需要分区,如果需要分区则调用requestSplit(HRegion, byte[])CompactSplitThread.requestSplit(HRegion, byte[]):执行分区操作CompactSplitThread.requestSplit(HReg <a href="https://www.cnblogs.com/yshb/p/3256131.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/p/3147710.html
Hive优化 - 淩風
hive.optimize.cp=true:列裁剪hive.optimize.prunner:分区裁剪hive.limit.optimize.enable=true:优化LIMIT n语句hive.limit.row.max.size=1000000:hive.limit.optimize.limit.file=10:最大文件数1. 本地模式(小任务):需要满足以下条件: 1.job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB) 2.job的map数必须小于参数:hive.exec.mode.local.a...
2013-06-21T02:08:00Z
2013-06-21T02:08:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】hive.optimize.cp=true:列裁剪hive.optimize.prunner:分区裁剪hive.limit.optimize.enable=true:优化LIMIT n语句hive.limit.row.max.size=1000000:hive.limit.optimize.limit.file=10:最大文件数1. 本地模式(小任务):需要满足以下条件: 1.job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB) 2.job的map数必须小于参数:hive.exec.mode.local.a... <a href="https://www.cnblogs.com/yshb/p/3147710.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/p/3147632.html
Java多线程面试、笔试方向---后续补充 - 淩風
1.ThreadLocal类 线程级别的局部变量,为每个使用该变量的线程提供一个独立的变量副本,每个线程修改副本时不影响其他线程对象的副本。 ThreadLocal实例通常作为静态私有字段出现在一个类中。2.什么情况会抛出InvalidMonitorStateException异常 调用Object.wait()/Object.notify()/Object.notifyAll()中的任何一个方法时,如果当前线程没有获得该对象的锁,那么就会抛出 IllegalMonitorStateException 的异常3.Object.wait()和Thread.sleep() Object.wait.
2013-06-21T01:32:00Z
2013-06-21T01:32:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】1.ThreadLocal类 线程级别的局部变量,为每个使用该变量的线程提供一个独立的变量副本,每个线程修改副本时不影响其他线程对象的副本。 ThreadLocal实例通常作为静态私有字段出现在一个类中。2.什么情况会抛出InvalidMonitorStateException异常 调用Object.wait()/Object.notify()/Object.notifyAll()中的任何一个方法时,如果当前线程没有获得该对象的锁,那么就会抛出 IllegalMonitorStateException 的异常3.Object.wait()和Thread.sleep() Object.wait. <a href="https://www.cnblogs.com/yshb/p/3147632.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2013/04/03/2998163.html
Hive中JOIN操作 - 淩風
1. 只支持相等JOIN。2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业。3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后。SELECT /*+ STREAMTABLE(a) */ a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key1)//暗示4. JOIN在WHERE子句前进行处理。SELECT a.val, b.val FROM a LEFT OUTER JOIN b ON (a.key=b.key) WHERE a.ds='
2013-04-03T08:20:00Z
2013-04-03T08:20:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】1. 只支持相等JOIN。2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业。3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后。SELECT /*+ STREAMTABLE(a) */ a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key1)//暗示4. JOIN在WHERE子句前进行处理。SELECT a.val, b.val FROM a LEFT OUTER JOIN b ON (a.key=b.key) WHERE a.ds=' <a href="https://www.cnblogs.com/yshb/archive/2013/04/03/2998163.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/11/05/2756194.html
Java虚拟机类加载机制 - 淩風
虚拟机类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。Java语言里,类型的加载和连接过程是在程序运行期间完成的。类的生命周期: 加载 loading 验证 verification 准备 preparation 解析 resolution 初始化 initialization 使用 using 卸载 unloading有且只有以下四种情况必须立即对类进行”初始化”(称为对一个类进行主动引用):遇到new、getstatic、putstatic、invokestatic这四条字节码指令时(...
2012-11-05T15:56:00Z
2012-11-05T15:56:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】虚拟机类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。Java语言里,类型的加载和连接过程是在程序运行期间完成的。类的生命周期: 加载 loading 验证 verification 准备 preparation 解析 resolution 初始化 initialization 使用 using 卸载 unloading有且只有以下四种情况必须立即对类进行”初始化”(称为对一个类进行主动引用):遇到new、getstatic、putstatic、invokestatic这四条字节码指令时(... <a href="https://www.cnblogs.com/yshb/archive/2012/11/05/2756194.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/10/16/2725586.html
c++学习(四):函数 - 淩風
六、 函数1. 函数调用做了两件事情:用对应的实参初始化函数的形参,并将控制权转移给被调用函数。主调函数的执行被挂起,被调函数开始执行。函数的运行以形参的(隐式)定义和初始化开始。当执行到 return 语句时,函数调用结束。被调用的函数完成时,将产生一个在return 语句中指定的结果值。执行 return 语句后,被挂起的主调函数在调用处恢复执行,并将函数的返回值用作求解调用操作符的结果,继续处理在执行调用的语句中所剩余的工作。2. 函数不能返回另一个函数或者内置数组类型,但可以返回指向函数的指针,或指向数组元素的指针的指针。3. 函数形参表可以为空,但不能省略。没有任何形参的函数可以用空
2012-10-16T02:44:00Z
2012-10-16T02:44:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】六、 函数1. 函数调用做了两件事情:用对应的实参初始化函数的形参,并将控制权转移给被调用函数。主调函数的执行被挂起,被调函数开始执行。函数的运行以形参的(隐式)定义和初始化开始。当执行到 return 语句时,函数调用结束。被调用的函数完成时,将产生一个在return 语句中指定的结果值。执行 return 语句后,被挂起的主调函数在调用处恢复执行,并将函数的返回值用作求解调用操作符的结果,继续处理在执行调用的语句中所剩余的工作。2. 函数不能返回另一个函数或者内置数组类型,但可以返回指向函数的指针,或指向数组元素的指针的指针。3. 函数形参表可以为空,但不能省略。没有任何形参的函数可以用空 <a href="https://www.cnblogs.com/yshb/archive/2012/10/16/2725586.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/10/16/2725578.html
c++学习(三):表达式和语句 - 淩風
四、 表达式1. 算术运算符高优先级的操作符要比低优先级的结合得更紧密。这些算术操作符都是左结合。操作符功能用法+unary plus(一元正号)-unary minus(一元负号)*multiplication(乘法)/division(除法)%remainder(求余)+addition(加法)-subtraction(减法)2. 位操作符左结合,移位操作符具有中等优先级:其优先级比算术操作符低,但比关系操作符、赋值操作符和条件操作符优先级高。操作符功能~位求反<<左移在右边插入 0 以补充空位>>右移如果其操作数是无符号数,则从左边开始插入 0;如果操作数是有符号
2012-10-16T02:42:00Z
2012-10-16T02:42:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】四、 表达式1. 算术运算符高优先级的操作符要比低优先级的结合得更紧密。这些算术操作符都是左结合。操作符功能用法+unary plus(一元正号)-unary minus(一元负号)*multiplication(乘法)/division(除法)%remainder(求余)+addition(加法)-subtraction(减法)2. 位操作符左结合,移位操作符具有中等优先级:其优先级比算术操作符低,但比关系操作符、赋值操作符和条件操作符优先级高。操作符功能~位求反<<左移在右边插入 0 以补充空位>>右移如果其操作数是无符号数,则从左边开始插入 0;如果操作数是有符号 <a href="https://www.cnblogs.com/yshb/archive/2012/10/16/2725578.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/09/10/2678740.html
C++学习(二):标准库类型、数组、指针 - 淩風
二、 标准库类型:: 操作符,该操作符是作用域操作符,它的含义是右操作数的名字可以在左操作数的作用域中找到。using namespace::name;每个名字都需要一个using声明。1. string类型string 类型的输入操作符:• 读取并忽略开头所有的空白字符(如空格,换行符,制表符)。• 读取字符直至再次遇到空白字符,读取终止。 string.empty() string.size() string[n] string1+string2string::size_type类型保存string的长度。当进行 string 对象和字符串字面值混合连接操作时,+ 操作符的左右操作数必须至
2012-09-10T06:53:00Z
2012-09-10T06:53:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】二、 标准库类型:: 操作符,该操作符是作用域操作符,它的含义是右操作数的名字可以在左操作数的作用域中找到。using namespace::name;每个名字都需要一个using声明。1. string类型string 类型的输入操作符:• 读取并忽略开头所有的空白字符(如空格,换行符,制表符)。• 读取字符直至再次遇到空白字符,读取终止。 string.empty() string.size() string[n] string1+string2string::size_type类型保存string的长度。当进行 string 对象和字符串字面值混合连接操作时,+ 操作符的左右操作数必须至 <a href="https://www.cnblogs.com/yshb/archive/2012/09/10/2678740.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/09/06/2673906.html
c++学习(一) - 淩風
编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor:#include) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code:.o或.obj文件) → 链接器 (Linker) → 可执行程序 (executables)。 语法错误 类型错误 声明错误:从标准库中访问名字时忘记使用“std::” Code::Blocks IDE: http://www.codeblocks.org/ http://sourc...
2012-09-06T09:38:00Z
2012-09-06T09:38:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor:#include) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code:.o或.obj文件) → 链接器 (Linker) → 可执行程序 (executables)。 语法错误 类型错误 声明错误:从标准库中访问名字时忘记使用“std::” Code::Blocks IDE: http://www.codeblocks.org/ http://sourc... <a href="https://www.cnblogs.com/yshb/archive/2012/09/06/2673906.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/07/23/2605026.html
插入排序、合并排序、堆排序和快速排序 - 淩風
/** * 插入排序 * 时间复杂度O(n2) * @param array原地排序算法 */ public void insertSort(int[] array) { for (int i = 1; i < array.length; i++) { int present = array[i]; int position = i; while (position > 0 && array[position - 1] > present) {// 右移 array[position] = array[position - 1]; position--; ..
2012-07-23T07:20:00Z
2012-07-23T07:20:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】/** * 插入排序 * 时间复杂度O(n2) * @param array原地排序算法 */ public void insertSort(int[] array) { for (int i = 1; i < array.length; i++) { int present = array[i]; int position = i; while (position > 0 && array[position - 1] > present) {// 右移 array[position] = array[position - 1]; position--; .. <a href="https://www.cnblogs.com/yshb/archive/2012/07/23/2605026.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/06/20/2556965.html
最大子序列和问题的几种算法 - 淩風
直接贴代码了:package data.structure.chapter2;import java.util.Date;import java.util.Random;public class MaxSequenceSumTest { /** * @param args */ public static void main(String[] args) { int [] array=new int[10000000]; Random r=new Random(100); for(int i=0;i<array.length;i++){ int k=r.nextInt(20); ...
2012-06-20T13:02:00Z
2012-06-20T13:02:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】直接贴代码了:package data.structure.chapter2;import java.util.Date;import java.util.Random;public class MaxSequenceSumTest { /** * @param args */ public static void main(String[] args) { int [] array=new int[10000000]; Random r=new Random(100); for(int i=0;i<array.length;i++){ int k=r.nextInt(20); ... <a href="https://www.cnblogs.com/yshb/archive/2012/06/20/2556965.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/06/19/2554279.html
Oracle10g数据类型总结 - 淩風
1. 字符类型数据类型长度说明CHAR(n BYTE/CHAR)默认1字节,n值最大为2000末尾填充空格以达到指定长度,超过最大长度报错。默认指定长度为字节数,字符长度可以从1字节到四字节。NCHAR(n)默认1字符,最大存储内容2000字节末尾填充空格以达到指定长度,n为Unicode字符数。默认为1字节。NVARCHAR2(n)最大长度必须指定,最大存储内容4000字节变长类型。n为Unicode字符数VARCHAR2(n BYTE/CHAR)最大长度必须指定,至少为1字节或者1字符,n值最大为4000变长类型。超过最大长度报错。默认存储的是长度为0的字符串。VARCHAR同VARCHA
2012-06-19T01:15:00Z
2012-06-19T01:15:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】1. 字符类型数据类型长度说明CHAR(n BYTE/CHAR)默认1字节,n值最大为2000末尾填充空格以达到指定长度,超过最大长度报错。默认指定长度为字节数,字符长度可以从1字节到四字节。NCHAR(n)默认1字符,最大存储内容2000字节末尾填充空格以达到指定长度,n为Unicode字符数。默认为1字节。NVARCHAR2(n)最大长度必须指定,最大存储内容4000字节变长类型。n为Unicode字符数VARCHAR2(n BYTE/CHAR)最大长度必须指定,至少为1字节或者1字符,n值最大为4000变长类型。超过最大长度报错。默认存储的是长度为0的字符串。VARCHAR同VARCHA <a href="https://www.cnblogs.com/yshb/archive/2012/06/19/2554279.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/06/15/2550367.html
JAVA多线程与并发学习总结 - 淩風
1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单位能尽量被充分利用。2. JAVA内存模型目标是定义程序中各个变量的访问规则。(包括实例字段、静态字段和构成数组的元素,不包括局部变量和方法参数)所有的变量都存储在主内存中(虚拟机内存的一部分)。每条线程都由
2012-06-15T03:05:00Z
2012-06-15T03:05:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单位能尽量被充分利用。2. JAVA内存模型目标是定义程序中各个变量的访问规则。(包括实例字段、静态字段和构成数组的元素,不包括局部变量和方法参数)所有的变量都存储在主内存中(虚拟机内存的一部分)。每条线程都由 <a href="https://www.cnblogs.com/yshb/archive/2012/06/15/2550367.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yshb/archive/2012/06/04/2535290.html
Java内存结构学习总结 - 淩風
自己学习后的笔记贴上来的,有不正确或者不完成的还望指正。程序计数器:作用可以看成当前线程所执行的字节码的行号指示器。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储。---线程私有虚拟机栈:描述JAVA方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口灯信息。每个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。局部变量表存放了编译期可知的各种基本数据类型和对象引用类型,所需内存空间在编译期间完成分配。---线程私有虚拟机栈中的两种异常状况:如
2012-06-04T14:14:00Z
2012-06-04T14:14:00Z
淩風
https://www.cnblogs.com/yshb/
【摘要】自己学习后的笔记贴上来的,有不正确或者不完成的还望指正。程序计数器:作用可以看成当前线程所执行的字节码的行号指示器。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储。---线程私有虚拟机栈:描述JAVA方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口灯信息。每个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。局部变量表存放了编译期可知的各种基本数据类型和对象引用类型,所需内存空间在编译期间完成分配。---线程私有虚拟机栈中的两种异常状况:如 <a href="https://www.cnblogs.com/yshb/archive/2012/06/04/2535290.html" target="_blank">阅读全文</a>