博客园 - 残雪余香
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=161769
2016-01-18T08:24:13Z
残雪余香
https://www.cnblogs.com/nexiyi/
feed.cnblogs.com
https://www.cnblogs.com/nexiyi/p/skiplist_intro.html
SkipList 跳表 - 残雪余香
1、定义描述 跳跃列表(也称跳表)是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(logn)平均时间)。基本上,跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表,因此得名。所有操作都以对数随机化的...
2015-05-15T07:44:00Z
2015-05-15T07:44:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】1、定义描述 跳跃列表(也称跳表)是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(logn)平均时间)。基本上,跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表,因此得名。所有操作都以对数随机化的... <a href="https://www.cnblogs.com/nexiyi/p/skiplist_intro.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/hbase_snapshot_094.html
HBase Snapshot功能介绍 - 残雪余香
HBase在0.94之后提供了Snapshot功能,一个snapshot其实就是一组metadata信息的集合,它可以让管理员将表恢复到以前的一个状态。snapshot并不是一份拷贝,它只是一个文件名的列表,并不拷贝数据。一个全的snapshot恢复以为着你可以回滚到原来的表schema和创建sna...
2015-05-10T06:17:00Z
2015-05-10T06:17:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】HBase在0.94之后提供了Snapshot功能,一个snapshot其实就是一组metadata信息的集合,它可以让管理员将表恢复到以前的一个状态。snapshot并不是一份拷贝,它只是一个文件名的列表,并不拷贝数据。一个全的snapshot恢复以为着你可以回滚到原来的表schema和创建sna... <a href="https://www.cnblogs.com/nexiyi/p/hbase_snapshot_094.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/hbase_intro_log.html
HBase内部操作日志说明 - 残雪余香
版本:0.94-cdh4.2.11. Split Region[regionserver60020-splits-1397585864985] INFO org.apache.hadoop.hbase.regionserver.SplitRequest - Region split, META up...
2015-05-10T06:12:00Z
2015-05-10T06:12:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】版本:0.94-cdh4.2.11. Split Region[regionserver60020-splits-1397585864985] INFO org.apache.hadoop.hbase.regionserver.SplitRequest - Region split, META up... <a href="https://www.cnblogs.com/nexiyi/p/hbase_intro_log.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/hbase_config_94.html
HBase参数配置及说明 - 残雪余香
版本:0.94-cdh4.2.1hbase-site.xml配置hbase.tmp.dir本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默认设置成它下面的线上配置hbase.tmp.dir/mnt/dfs/11/hbase/hbase-tmp默...
2015-05-10T03:46:00Z
2015-05-10T03:46:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】版本:0.94-cdh4.2.1hbase-site.xml配置hbase.tmp.dir本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默认设置成它下面的线上配置hbase.tmp.dir/mnt/dfs/11/hbase/hbase-tmp默... <a href="https://www.cnblogs.com/nexiyi/p/hbase_config_94.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/hbase_on_hdfs_directory.html
HBase 在HDFS 上的目录树 - 残雪余香
总所周知,HBase 是天生就是架设在 HDFS 上,在这个分布式文件系统中,HBase 是怎么去构建自己的目录树的呢?这里只介绍系统级别的目录树。一、0.94-cdh4.2.1版本系统级别的一级目录如下,用户自定义的均在这个/hbase 下的一级子目录下/hbase/-ROOT-/hbase/...
2015-05-09T13:29:00Z
2015-05-09T13:29:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】总所周知,HBase 是天生就是架设在 HDFS 上,在这个分布式文件系统中,HBase 是怎么去构建自己的目录树的呢?这里只介绍系统级别的目录树。一、0.94-cdh4.2.1版本系统级别的一级目录如下,用户自定义的均在这个/hbase 下的一级子目录下/hbase/-ROOT-/hbase/... <a href="https://www.cnblogs.com/nexiyi/p/hbase_on_hdfs_directory.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/refact_chap01.html
第一章 重构,第一个案例 - 残雪余香
第一章最前面的书中前面的话说得很有道理,一本授之以渔的书,开场就来历史、原理性的东西,很难勾起继续阅读的欲望,写书是这样,开会做分享亦然,所以作者精挑细选了一个代码规模不是很大并且能告诉我们很多重构的道理。案例说明这是一个非常简单的案例,展示了一个影片出租店用的程序,计算每一位顾客的消费金额并打印详...
2015-03-08T07:00:00Z
2015-03-08T07:00:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】第一章最前面的书中前面的话说得很有道理,一本授之以渔的书,开场就来历史、原理性的东西,很难勾起继续阅读的欲望,写书是这样,开会做分享亦然,所以作者精挑细选了一个代码规模不是很大并且能告诉我们很多重构的道理。案例说明这是一个非常简单的案例,展示了一个影片出租店用的程序,计算每一位顾客的消费金额并打印详... <a href="https://www.cnblogs.com/nexiyi/p/refact_chap01.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/shell_start_stop_app.html
shell来start、stop、restart应用程序模板 - 残雪余香
这里使用shell中的case语法:case分支语句格式如下:case $变量名 in 模式1) 命令列表 ;; 模式2) 命令列表 ;; *) ;;esaccase行尾必须为单词“in”,每一个模式必须以右括号“)”结束。双分号“;;”表示命令序列结束。这里给一个编写应用程序的st...
2014-08-26T07:12:00Z
2014-08-26T07:12:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】这里使用shell中的case语法:case分支语句格式如下:case $变量名 in 模式1) 命令列表 ;; 模式2) 命令列表 ;; *) ;;esaccase行尾必须为单词“in”,每一个模式必须以右括号“)”结束。双分号“;;”表示命令序列结束。这里给一个编写应用程序的st... <a href="https://www.cnblogs.com/nexiyi/p/shell_start_stop_app.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/hbase_dependency_problem.html
引入HBase依赖包带来的麻烦 - 残雪余香
在一个项目里用到HBase做底层存储,使用maven来管理相关Jar包依赖,用maven来管理依赖包,特别不爽的就是他会将你引入Jar包自己的依赖都搞进来,经常会出现一些类和方法冲突找不到等状况。这次,也被这个搞了一阵子。我依赖了HBase jar之后,tomcat启动后,访问Web页面(使用JSP...
2014-08-22T02:54:00Z
2014-08-22T02:54:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】在一个项目里用到HBase做底层存储,使用maven来管理相关Jar包依赖,用maven来管理依赖包,特别不爽的就是他会将你引入Jar包自己的依赖都搞进来,经常会出现一些类和方法冲突找不到等状况。这次,也被这个搞了一阵子。我依赖了HBase jar之后,tomcat启动后,访问Web页面(使用JSP... <a href="https://www.cnblogs.com/nexiyi/p/hbase_dependency_problem.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/log4j_xml_sample.html
Log4j配置说明及样例 - 残雪余香
一般的应用都会记录日志,Java圈里面用得最多就属log4j了,比较规范一点就是使用log4j.xml进行配置Log输出。这里就比较有疑问,多数情况是使用log4j.properties文件呐,前面也说了,规范一点就用log4j.xml进行配置,他们之间究竟有哪些区别呢,在百度知道里面有人这么回...
2014-08-14T08:17:00Z
2014-08-14T08:17:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】一般的应用都会记录日志,Java圈里面用得最多就属log4j了,比较规范一点就是使用log4j.xml进行配置Log输出。这里就比较有疑问,多数情况是使用log4j.properties文件呐,前面也说了,规范一点就用log4j.xml进行配置,他们之间究竟有哪些区别呢,在百度知道里面有人这么回... <a href="https://www.cnblogs.com/nexiyi/p/log4j_xml_sample.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/python_httpserver.html
非常简单实用的Python HTTP服务 - 残雪余香
在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦。这时候如果你需要一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,...
2014-08-13T07:43:00Z
2014-08-13T07:43:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦。这时候如果你需要一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,... <a href="https://www.cnblogs.com/nexiyi/p/python_httpserver.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/hbase_shell.html
HBase 常用Shell命令 - 残雪余香
两个月前使用过hbase,现在最基本的命令都淡忘了,留一个备查~进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可...
2014-07-25T00:38:00Z
2014-07-25T00:38:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】两个月前使用过hbase,现在最基本的命令都淡忘了,留一个备查~进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可... <a href="https://www.cnblogs.com/nexiyi/p/hbase_shell.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/hbase_intro_94.html
HBase介绍及简易安装 - 残雪余香
HBase简介HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问,是Google的BigTable的开源实现。HBase的目标是存储并处理大型的数据,更具体地说仅用普通的硬件配置,能够处理成千上万的行和列所组成的大型数据库。HBase是一个开源的、分布式的、多版本...
2014-07-25T00:31:00Z
2014-07-25T00:31:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】HBase简介HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问,是Google的BigTable的开源实现。HBase的目标是存储并处理大型的数据,更具体地说仅用普通的硬件配置,能够处理成千上万的行和列所组成的大型数据库。HBase是一个开源的、分布式的、多版本... <a href="https://www.cnblogs.com/nexiyi/p/hbase_intro_94.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/java_thread_jstack.html
Java线程Dump分析工具--jstack - 残雪余香
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: jstack [-l][F] pid 如果java程序崩溃生成core文件,jst...
2014-07-03T06:11:00Z
2014-07-03T06:11:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: jstack [-l][F] pid 如果java程序崩溃生成core文件,jst... <a href="https://www.cnblogs.com/nexiyi/p/java_thread_jstack.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/java_add_ShutdownHook.html
Java应用中使用ShutdownHook友好地清理现场 - 残雪余香
在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。Java中得ShutdownHook提供了比较好的方案。 JDK在1.3之后提供了Java Runtime.addShutdownHook(Thread hook)方法,可...
2014-06-18T06:06:00Z
2014-06-18T06:06:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。Java中得ShutdownHook提供了比较好的方案。 JDK在1.3之后提供了Java Runtime.addShutdownHook(Thread hook)方法,可... <a href="https://www.cnblogs.com/nexiyi/p/java_add_ShutdownHook.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/message_format_java.html
项目中消息的格式化方法 - 残雪余香
在很多项目中经常打印Log,返回操作之后的响应消息给客户端等都会涉及到消息的格式化,一般都是会有一个消息模板,然后传入一些特定的参数值达到项目的需要。在Java中处理方式一般有以下三种:1. 使用StringBuilder使用一个StringBuilder对象进行封装,然后toString传给终端,...
2014-05-14T05:21:00Z
2014-05-14T05:21:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】在很多项目中经常打印Log,返回操作之后的响应消息给客户端等都会涉及到消息的格式化,一般都是会有一个消息模板,然后传入一些特定的参数值达到项目的需要。在Java中处理方式一般有以下三种:1. 使用StringBuilder使用一个StringBuilder对象进行封装,然后toString传给终端,... <a href="https://www.cnblogs.com/nexiyi/p/message_format_java.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/how_to_avoid_unchecked_cast.html
消除unchecked cast Warning - 残雪余香
在Java中,经常会将一个Object类型转成自己想要的Map、List等等。通常的做法是:Object obj = ....;Map castMap = (HashMap) obj;在这里会产生unchecked cast warning,有代码洁癖的就会想办法干掉它。解决办法就是在方法上添加一个...
2014-05-13T02:14:00Z
2014-05-13T02:14:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】在Java中,经常会将一个Object类型转成自己想要的Map、List等等。通常的做法是:Object obj = ....;Map castMap = (HashMap) obj;在这里会产生unchecked cast warning,有代码洁癖的就会想办法干掉它。解决办法就是在方法上添加一个... <a href="https://www.cnblogs.com/nexiyi/p/how_to_avoid_unchecked_cast.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/mondrian_hive_test.html
Pentaho的Mondrian对Hive的支持 - 残雪余香
需求描述考虑直接在Hive或者Impala等Big Data方案,能够支持MDX查询,现调研一下Mondrian对hive的支持情况。环境准备hive环境,采用hive-0.10-cdh4.2.1 客户端程序使用的类库:mondrian-3.6.0、olap4j-1.2.0-SNAPSHOT数据准备...
2014-05-05T01:34:00Z
2014-05-05T01:34:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】需求描述考虑直接在Hive或者Impala等Big Data方案,能够支持MDX查询,现调研一下Mondrian对hive的支持情况。环境准备hive环境,采用hive-0.10-cdh4.2.1 客户端程序使用的类库:mondrian-3.6.0、olap4j-1.2.0-SNAPSHOT数据准备... <a href="https://www.cnblogs.com/nexiyi/p/mondrian_hive_test.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/SimpleDateFormat_ThreadSafe_Solution.html
JDK中的SimpleDateFormat线程非安全 - 残雪余香
在JDK中使用SimpleDateFormat的时候都会遇到线程安全的问题,在JDK文档中也说明了该类是线程非安全的,建议对于每个线程都创建一个SimpleDateFormat对象。如下面一个Case中,多个线程去调用SimpleDateFormat中得parse方法:@Test publ...
2014-04-30T11:17:00Z
2014-04-30T11:17:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】在JDK中使用SimpleDateFormat的时候都会遇到线程安全的问题,在JDK文档中也说明了该类是线程非安全的,建议对于每个线程都创建一个SimpleDateFormat对象。如下面一个Case中,多个线程去调用SimpleDateFormat中得parse方法:@Test publ... <a href="https://www.cnblogs.com/nexiyi/p/SimpleDateFormat_ThreadSafe_Solution.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/3636079.html
应该更新的Java知识之常用程序库 - 残雪余香
摘自:http://www.blogbus.com/dreamhead-logs/226738702.html在很多人眼中,Java已经是一门垂垂老矣的语言,但并不妨碍Java世界依然在前进。如果你曾离开Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老Java中的新东西。Guava一句话,只要你做Java项目,就应该用Guava。guava是Google出品的一套Java核心库,在我看来,它甚至应该是JDK的一部分。作为一个Java程序员,如果你没抱怨过JDK的设计,只能说明一点,你写得程序还是太少。正是JDK设计不彰,才有了一些项目来补充JDK的不足。如果说老J
2014-03-31T08:32:00Z
2014-03-31T08:32:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】摘自:http://www.blogbus.com/dreamhead-logs/226738702.html在很多人眼中,Java已经是一门垂垂老矣的语言,但并不妨碍Java世界依然在前进。如果你曾离开Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老Java中的新东西。Guava一句话,只要你做Java项目,就应该用Guava。guava是Google出品的一套Java核心库,在我看来,它甚至应该是JDK的一部分。作为一个Java程序员,如果你没抱怨过JDK的设计,只能说明一点,你写得程序还是太少。正是JDK设计不彰,才有了一些项目来补充JDK的不足。如果说老J <a href="https://www.cnblogs.com/nexiyi/p/3636079.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nexiyi/p/junit_test_in_order.html
JUnit中按照顺序执行测试方式 - 残雪余香
很多情况下,写了一堆的test case,希望某一些test case必须在某个test case之后执行。比如,测试某一个Dao代码,希望添加的case在最前面,然后是修改或者查询,最后才是删除,以前的做法把所有的方法都集中到某一个方法去执行,一个个罗列好,比较麻烦。比较幸福的事情就是JUnit4.11之后提供了MethodSorters,可以有三种方式对test执行顺序进行指定,如下: /** * Sorts the test methods by the method name, in lexicographic order, with {@link Method#to...
2014-03-31T08:12:00Z
2014-03-31T08:12:00Z
残雪余香
https://www.cnblogs.com/nexiyi/
【摘要】很多情况下,写了一堆的test case,希望某一些test case必须在某个test case之后执行。比如,测试某一个Dao代码,希望添加的case在最前面,然后是修改或者查询,最后才是删除,以前的做法把所有的方法都集中到某一个方法去执行,一个个罗列好,比较麻烦。比较幸福的事情就是JUnit4.11之后提供了MethodSorters,可以有三种方式对test执行顺序进行指定,如下: /** * Sorts the test methods by the method name, in lexicographic order, with {@link Method#to... <a href="https://www.cnblogs.com/nexiyi/p/junit_test_in_order.html" target="_blank">阅读全文</a>