关闭

浅谈MMSEG分词算法

最近看了下MMSEG分词算法,觉得这个算法简单高效,而且还非常准确 作者声称这个规则达到了99.69%的准确率并且93.21%的歧义能被这个规则消除。 核心思想是抽取3个可能的词(存在多个组合),然后根据4个消歧义规则确定到底选择那个组合 1. 组合长度最大 2. 组合中平均词语长度最大 3. 词语长度的变化率最小 4. 计算组合中所有单字词词频的自然对数,然后将得到的值相加,取总...
阅读(10167) 评论(0)

hive查询hbase

背景 hbase查询的确是不太方便,除了指定rowkey,或者通过指定startkey stopkey进行scan之外,没有更有效的查询方式 如果想通过列值过滤,只能全表扫描了 如果要搞什么group by或者order by(除非你的rowkey做了相应设计) 更是没法弄 在传统的mysql/oracle得心应手的查询在hbase上就是束手束脚 当然可以通过写hadoop j...
阅读(9462) 评论(3)

谈谈html转义字符

偶尔会在数据中看到诸如' 这样的字符,特征如下 以&#开头,中间是一串数字,以;结尾以&开头,中间一串字符,以;结尾 比如最常见的 或者等价的  浏览器遇到这些转义符,会转移回来,但如果通过代码识别? org.apache.commons.lang.StringEscapeUtils.unescapeHtml提供了很好的说明 遇到上面的第一种情况...
阅读(7569) 评论(1)

zookeeper session tracker机制分析

说到zookeeper session管理 ,免不了要问什么是session?session id/session是如何产生的?session 信息如何存储?本文以session tracker线程【详见SessionTrackerImpl】的运行机制作为主线,并尝试解答一些相关问题1)session基础在介绍session tracker线程之前先回答几个问题1.1) 什么是session?zo...
阅读(7535) 评论(2)

zookeeper存储之实现分析

zookeeper 存储基本都是在SyncRequestProcessor 单个线程完成的1) 初始化1.1)DataTree初始化public DataTree() { /* Rather than fight it, let root have an alias */ nodes.put("", root); nodes.put(rootZ...
阅读(12387) 评论(3)

zookeeper 存储之文件格式分析

zookeeper主要存放了两类文件,一个是snapshot和log,前者是内存数的快照,后者类似mysql的binlog,将所有与修改数据相关的操作记录在log中, 两类文件的目录可在配置文件中指定下面通过几个典型的场景来分析两种文件的存储格式 snapshot文件格式​ 详见ZooKeeperServer.takeSnapshot, 列举1个简单的场景说明问题 场景 刚刚装了zookeepe...
阅读(12544) 评论(0)

zookeeper client分析

1)几个重要概念 ZooKeeper:客户端入口Watcher:客户端注册的callbackZooKeeper.SendThread: IO线程ZooKeeper.EventThread: 事件处理线程,处理各类消息callbackClientCnxnSocketNIO:继承自ClientCnxnSocket,专门处理IO2)zookeeper初始化应用提供watch实例实例化zookeeper实...
阅读(9650) 评论(3)

class文件分析

本文通过分析一个简单java类文件的字节码,希望借此能快速了解java类文件格式为了分析字节码,必须有一个整体的格式如下:以上面的表作为分析的基础,开始行动!一段简单的java代码123456789package org.kaka.clazz;...
阅读(6605) 评论(1)

记一次jvm crash

昨天下午4:30,系统发生了有史以来最刺激的崩溃,一开始是2台挂了(线上共5台),这个基本上很少见,一般情况下都是偶尔一台挂掉。赶紧手动重启,搞笑的是重启起来的机器里马也挂了,结果就出现了一种尴尬的局面,我们不停的重启,机器不断地报警,不断地挂,整个过程持续了20多分钟。其实上个礼拜系统就挂过两次,第1次挂了无任何信息没有出现常见的hs*.log这样的jvm crash日志,cpu、内存、流量等指...
阅读(7243) 评论(2)

HRegionServer 启动分析

HRegionServer的初始化到底做了哪些事情,以线程的维度应该能比较清晰的说明,也便于以后更进一步深入的分析。如果能弄清楚每个线程的职责分工,基本上HRegionServer的原理就明白了HRegionServer的初始化1.1)实例化一个典型的栈快照Thread [main] (Suspended)  WritableRpcEngine$Server(HBaseServer).(Strin...
阅读(7381) 评论(0)

btrace是个好东东

今天同事遇到一个问题,测试环境和线上环境数据不一致,由于我们的线上预发布环境只开发了80端口,所以无法debug,之前我们的做法就是在代码添加log,然后覆盖预发环境的相关jar,这个使用起来比较麻烦早就听说btrace很方便,今天特意尝试了一下,我们的需求就是捕捉线上某个方法的输入参数的值及返回值step0) 安装btracewget http://kenai.com/projects/btra...
阅读(6967) 评论(2)

HTablePool的实现分析

1)基本概念HTablePool​3种类型​PoolType.Reusable(默认)一个实例池,多线程复用,内部是每个table一个ConcurrentLinkedQueue装多个实例PoolType.ThreadLocal,很奇怪的实现,每个线程只能有一个实例,感觉在多线程的场景没有意义PoolType.RoundRobin​(没有被使用,就算设置了该类型也没用,见HTablePool的构造函...
阅读(8274) 评论(2)

谈谈java selector的机制

1)常用数据结构EPollSelectorImpl维护了3个键setkeys【已经注册的键的集合】selectedKeys【已选择的键的集合】cancelledKeys【已取消的键的集合】EPollArrayWrapper【真正的对linux epoll的封装】包含了3个重要的native方法epollCreate、epollCtl、epollWait分别对应库函数epoll_create、epo...
阅读(14304) 评论(1)

varnish缓存清除的问题和陷阱

今天遇到一个问题,一个静态页面xx.com/path_x1/a.html部署在xx.com静态集群【browse----->静态集群varnish------>静态集群apache】另外一个应用又通过apache代理访问xx.com,配置如下 RewriteRule ^/$ http://xx.com/path_x1/a.html [L,P]访问的url是 yy.com 【browse----->...
阅读(7975) 评论(1)

谈谈HTable的实现

背景HTable作为HBase的CRUD的客户端底层是怎么实现的,虽然HBase-The-Definitive-Guide 这本书的作者推荐在生产环境使用HTablePool但了解HTable还是很有必要的下面以一个简单的例子来说明 protected static String TEST_TABLE_NAME = "testtable"; protected static String ROW...
阅读(8888) 评论(1)

jetty 透明代理的实现

背景一提到proxy,大家首先想到就是squid、varnish、apache、lighttpd之类,接下来我们看看jetty8中的ProxyServlet是如何实现这个功能的ProxyServlet主要用到了continuation和http client两个技术点,如果了解了我的前几篇博文jetty io:http://blog.csdn.net/pwlazy/article/details/...
阅读(9810) 评论(0)

jetty http client 实现分析

背景谈到http client,可能大多数想到就是apache的那个http client 或者jdk自带的urlconnection,也许有人会考虑使用netty无论如何,jetty的高性能实现总归是让人感到好奇,接下来我们一探究竟样例我们结合样例代码具体分析初始化httpClient = new HttpClient(); httpClient.setConnectorType(HttpCli...
阅读(11442) 评论(2)

理解java中的mmap

jdk中的MappedByteBuffer非常类似linux中的mmap将文件映射到虚拟内存,这样可以利用操作系统自带的虚拟内存实现来提高io效率, 很多文档中提到这一点,具体大家可以自行测试。MappedByteBuffer有3种映射模式:MapMode.READ_ONLY:只读映射MapMode.READ_WRITE​:读写映射MapMode.PRIVATE​:copy on write映射,...
阅读(7272) 评论(0)

谈谈jetty response模型

1)jetty 响应的概念模型​SelectChannelEndPoint: 底层的socket的封装,代表每次请求对应的网络连接(偏网路底层)AsyncHttpConnection:代表每次连接(偏上层一点),管理相关的request,response,HttpParser,HttpGenerator实例HttpParser:请求解析HttpGenerator:负责最终的response生成Re...
阅读(6708) 评论(0)

jetty continuation基本原理及实现

背景在io密集型的web 应用,如何能更好地提升后台性能,jetty continuation是一个选择现在特别流行的说法就是事件驱动,看看node.js以及redis, jetty continuation也不例外一个例子package org.kaka.web; import java.io.IOException; import java.io.PrintWriter; import j...
阅读(15438) 评论(1)
220条 共11页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:964480次
    • 积分:12131
    • 等级:
    • 排名:第1350名
    • 原创:201篇
    • 转载:5篇
    • 译文:14篇
    • 评论:291条
    文章分类
    最新评论