jps&jstack&jmap

jps: List your java processes jstack: Get the call stack for a given Java process jmap: Show Memory Map jinfo jps -mlvV jps -l -m

Diving Into ElasticSearch (3) 编写自定义分词插件

今天介绍下怎么样编写一个自己的分词插件,开始之前,先介绍下ES的项目结构: 分别介绍下吧: .idea:IDEA的项目配置文件 bin:可执行脚本文件 config:配置文件 gradle:精简版的gradle lib:里面主要放了sigar用来做资源监控 modules:ES主要模块在这里了 plugins:插件都放这里啦 plugins里面按类型分了好多目录,今天我们来看怎么自定义一个分词插件,所以放analysis目录里面。 我们先移植一个开源的IKAnalyzer到ES里面吧。 第一步,先在plugins下建立目录ik 完整路径如下:elasticsearch\plugins\analysis\ik 下面建立src目录和build目录、并建立文件build.gradle(内容从icu里面的build.gradle拷贝出来,然后做相应的调整,如下图所示) 第二步,新建目录src/main/java/org 第三步,在java下新建配置文件es-plugin.properities,里面一行指定当前插件的入口类(实现ES插件接口的类),如下图所示   第四步,在.idea目录里面,找到modules.xml,将我们自定义的module添加到工程中,注意路径,完了之后,会发现plugin下面的ik目录会变粗,说明该目录已经成为了项目中的一个module了。 第五步,在.idea/modules目录里面新建插件的配置文件如plugin-analysis-ik.iml,内容有下图所示 第六步,右键点击项目,选择Open Module Setting 应该会看到ik的模块配置,选中,然后分别设置目录的属性(有排除、源代码、测试三种),设置好之后如下图所示 第七步,在.idea/modules/里面的elasticsearch-root.iml加上一句,将我们的自定义module添加进去,如下图所示 最后一步,在elasticsearch根目录的setting.gradle文件里,添加一行来打包ik,如下图所示 配置的工作基本上到此结束,接着就是实现自己的AnalyzerProvider和AbstractPlugin了,具体代码可以看这里https://github.com/medcl/elasticsearch/commit/21abad12a0096173e8836dd042ca403751ab7ad1,就不一一列举了。 开始试验一下吧,默认bootstrap模式会加载所有插件,所有可以直接使用ik-analysis的插件。 curl –XGET http://localhost:9200/index/_analyze?text=%e8%84%91%e6%ae%8b%e7%89%87%e8%ae%a9%e4%bd%a0%e8%84%91%e6%ae%8b%ef%bc%8c%e7%a5%9e%e5%a5%87%e7%9a%84%e5%b0%8f%e8%8d%af%e4%b8%b8%e5%95%8a&analyzer=ik 通过服务端的日志,可以看到正确加载词库了。 刚刚分词的结果页出来了,ik正确加载了我自定义的词组“脑残片”,分词的结果也是正确的

Diving Into ElasticSearch (2) 开发环境搭建

今天介绍下ElasticSearch开发环境的搭建,ElasticSearch本身就已经够强大了,基本上满足各种要求,但是在中文分词方面,自带的几个分词器还是捉襟见肘,但是,不要急,ElasticSearch系统提供了很灵活的插件机制,你可以很方便的编写自定义的插件(ES自带很多功能也同样是以插件的方式来提供的,如Transport插件、River插件等),好,首先咱们第一步就是搭建好开发环境。

Diving Into ElasticSearch (1) 序

You know,For Search~ 打算写一系列的关于ElasticSearch的文章,一部分内容来自翻译,一部分来自自己的使用心得和调试过程。 一方面可以系统的整理下相关东西,另外也方便自己快速查找。 希望通过这些文章可以让更多的人来了解ElasticSearch。 Allright,先简单介绍下ElasticSearch吧,ElasticSearch的作者是Shay Banon (kimchy是同一个人哦),另一开源搜索项目Compass的作者,用过compass的人应该都知道,compass能够方便的为ORM框架添加搜索功能(即OSEM),简单配置即可,但是正因为使用简单,反而缺少了灵活性(和Hibernate.Search一样,同样折腾过),另外kimchy以前还是GigaSpaces的分布式专家,在Compass3.0的开发和思考中,作者加入了更多的分布式方面的元素,到最后,作者的开发重心基本上全部转到ElasticSearch上来,于是早期的ElasticSearch除了继承了很多Compass的特性之外还有大量的新的特性,比如就有如下一些显著特性(也是刚开始最吸引我的地方):Json数据格式、RESTful访问接口,Shard+Replica、Auto-Discovery、Zero-Config等,想知道ElasticSearch诞生的前因后果,可以看看作者的这篇博文:http://www.kimchy.org/the_future_of_compass/,总之ElasticSearch就这样诞生了。 相关链接: ElasticSearch:http://www.elasticsearch.org/ 源码Host在Github上:http://github.com/elasticsearch #elasticsearch @ Freenode @elasticsearch @Twitter Google Group http://groups.google.com/a/elasticsearch.com   核心特性: Schema Free & Document Oriented:灵活, Schema Mapping:精确控制 Multi Tenancy:租户隔离(支持多index、多type,同一index下可以有多个类型,支持同时对多个index和多个type的查询) Settings:Per-Index配置,动态配置,武装到牙齿 Distributed:分布式、动态伸缩、去中心化 Gateway:多种持久化策略 … … 下面是为本系列文章草拟的一个大纲: 1.安装配置 2.索引及查询 3.QueryDSL […]

Hive derby lock及目录权限错误

FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection. NestedThrowables: org.apache.commons.dbcp.SQLNestedException: […]

vsftpd 533

    LumiSoft.Net.FTP.Client.FTP_ClientException : 553 Could not create file.   [dev@platformB dailyrawdata]$ /usr/sbin/setsebool -P ftp_disable_trans 1 setsebool:  SELinux is disabled.   /etc/init.d/vsftpd restart

热门话题,时间及空目录的处理

  先查看hadoop目录的文件数,然后再决定是不是在input里面加上该目录 [dev@platformB dailyrawdata]$  hadoop fs -ls /trendingtopics |wc -l 3 计算时间的方法 [dev@platformB dailyrawdata]$ lastdate=20110619 [dev@platformB dailyrawdata]$ echo $lastdate 20110619 [dev@platformB dailyrawdata]$ echo date –date “-d $lastdate + 1day” +”%Y%m%d” 20110620 [dev@platformB dailyrawdata]$ echo D9=date –date “now -20 day” +”%Y%m%d” […]