自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(286)
  • 收藏
  • 关注

原创 storm-kafka示例详解

(一)简介1、本项目完整代码请见https://github.com/jinhong-lu/stormkafkademo/tree/master/src/main/java/org/jinhong/demo/storm_kafka/trident。2、本项目主要完成以下功能:(1)从kafka中读取一个topic的消息,然后根据空格拆分单词,最后统计数据后写入一个HazelCastSt

2015-07-05 22:02:16 15602

原创 trident介绍

(一)理论基础更多理论以后再补充,或者参考书籍1、trident是什么?Trident is a high-level abstraction for doing realtime computing on top of Storm. It allows you to seamlessly intermix high throughput (millions of messages p

2015-06-30 15:40:17 2392

原创 protocol buffer介绍(protobuf)

一、理论概述0、参考资料入门资料:https://developers.google.com/protocol-buffers/docs/javatutorial更详细的资料:For more detailed reference information, see the Protocol Buffer Language Guide, the Java API Reference,

2015-06-29 17:49:06 868

原创 kafka教程

一、理论介绍(一)相关资料1、官方资料,非常详细:   http://kafka.apache.org/documentation.html#quickstart2、有一篇翻译版,基本一致,有些细节不同,建议入门时先读此文,再读官方文档。若自认英语很强,请忽视:   http://www.linuxidc.com/Linux/2014-07/104470.htm3、还有一文

2015-06-26 18:43:13 3741

原创 storm教程

(一)一个例子本示例使用storm运行经典的wordcount程序,拓扑如下:sentence-spout—>split-bolt—>count-bolt—>report-bolt分别完成句子的产生、拆分出单词、单词数量统计、统计结果输出完整代码请见 https://github.com/jinhong-lu/stormdemo以下是关键代码的分析。1、创建spout

2015-06-17 11:16:06 1455

原创 设置secureCRT中vim的字体颜色

1、在/etc/vimrc新增以下一行syntax on 注:上述方法对root用户无效,原因为在一般用户中,alias vi=vim,而在root用户中默认无此设置,因此若需要root用户也显示颜色,可以(1)用vim命令编辑文件(2)在~/.bashrc中添加aliasvi=vim。2、设置secureCRT属性。

2015-06-17 10:32:08 1015

原创 何时使用hadoop fs、hadoop dfs与hdfs dfs命令

hadoop fs:使用面最广,可以操作任何文件系统。hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。以下内容参考自stackoverflowFollowing are the three commands which appears same but have

2015-06-17 10:32:03 540

原创 Hadoop常见异常及其解决方案

1、Shell$ExitCodeException现象:运行hadoop job时出现如下异常:14/07/09 14:42:50 INFO mapreduce.Job: Task Id : attempt_1404886826875_0007_m_000000_1, Status : FAILEDException from container-launch: org.apache.

2015-06-17 10:31:58 517

原创 Hadoop2.4.1入门实例:MaxTemperature

注意:以下内容在2.x版本与1.x版本同样适用,已在2.4.1与1.2.0进行测试。一、前期准备1、创建伪分布Hadoop环境,请参考官方文档。或者http://blog.csdn.net/jediael_lu/article/details/386372772、准备数据文件如下sample.txt:12345679867623119010123456798676231190101

2015-06-17 10:31:56 418

原创 单机/伪分布式Hadoop2.4.1安装文档

转载自官方文档,最新版请见:http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/SingleCluster.html补充:建议添加如下环境变量#hadoop configurationexport PATH=$PATH:/home/jediael/hadoop-2.4.1/bin:/hom

2015-06-17 10:31:52 418

原创 用Apache Ivy实现项目里的依赖管理

Apache Ivy是一个管理项目依赖的工具。 它与Maven Apache Maven 构建管理和项目管理工具已经吸引了 Java 开发人员的注意。Maven 引入了 JAR 文件公共存储库的概念,可通过公开的 Web 服务器访问(称为 ibiblio)。Maven 的方法减少了 JAR 文件膨胀的情况,不会占用大多数版本控制存储库。但使用 Maven 时,它会鼓励您采用其

2015-06-17 10:31:47 391

原创 【Nutch2.2.1基础教程之2.1】集成Nutch/Hbase/Solr构建搜索引擎之一:安装及运行【单机环境】

1、下载相关软件,并解压版本号如下:(1)apache-nutch-2.2.1(2) hbase-0.90.4 (3)solr-4.9.0并解压至/usr/search2、Nutch的配置(1)vi /usr/search/apache-nutch-2.2.1/conf/nutch-site.xml storage.data.store.class

2015-06-17 10:31:45 549

原创 【solr专题之一】Solr快速入门

一、Solr学习相关资料1、官方材料(1)快速入门:http://lucene.apache.org/solr/4_9_0/tutorial.html,以自带的example项目快速介绍发Solr的基础使用。(2)API:http://lucene.apache.org/solr/4_9_0/index.html(3)reference:PDF格式,apache-solr-ref-

2015-06-17 10:31:40 468

原创 Log4j 2使用教程

转载自 Blog of 天外的星星: http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.htmlLog4j 2的好处就不和大家说了,如果你搜了2,说明你对他已经有一定的了解,并且想用它,所以这里直接就上手了。  1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号):

2015-06-17 10:31:36 514

原创 将String转化为Long,并将Long转化为Date

package org.ljh.test.javaee;import java.text.SimpleDateFormat;import java.util.Date;public class StringToLongToDate { public static String parseTime(String s){ //将字符串转化为Long类型 Long time

2015-06-17 10:31:31 496

原创 【设计模式:单例模式】使用单例模式加载properties文件

先准备测试程序:package org.jediael.util;import static org.junit.Assert.*;import org.junit.Test;public class BasicConfigurationTest { @Test public void testGetValue(){ BasicConfiguration configura

2015-06-17 10:31:26 331

原创 apche commons项目简介

1、apche commons项目封装了日常开发中经常使用的功能,如io, String等。http://commons.apache.org/Apache Commons项目的由三部分组成:The Commons Proper - 一个可重用的Java组件库。(已经发布过的)The Commons Sandbox - Java组件开发工作区. (正在开发的项目

2015-06-17 10:31:22 340

原创 Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser

一、Lucene的查询语法Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html(1) 语法关键字+ - && || ! ( ) { } [ ] ^ " ~ * ? : /如果所要查询的查询词中本身包含关键字,则需要用/进行转义(2) 查询词(Term)Lucene支持两种查询词,

2015-06-17 10:31:17 574

原创 Lucene学习总结之七:Lucene搜索过程解析

一、Lucene搜索过程总论搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程。其可用如下图示:总共包括以下几个过程:IndexReader打开索引文件,读取并打开指向索引文件的流。用户输入查询语句将查询语句转换为查询对象Query对象树构造Weight对象树,用于计算词的权重Term Weight

2015-06-17 10:31:15 1015

原创 Lucene学习总结之六:Lucene打分公式的数学推导

在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下。因为Lucene的搜索过程,很重要的一个步骤就是逐步的计算各部分的分数。Lucene的打分公式非常复杂,如下: 在推导之前,先逐个介绍每部分的意义:t:Term,这里的Term是指包含域信息的Term,也即title:hello和content:

2015-06-17 10:31:12 413

转载 Lucene学习总结之五:Lucene段合并(merge)过程分析

一、段合并过程总论IndexWriter中与段合并有关的成员变量有:HashSet mergingSegments = new HashSet(); //保存正在合并的段,以防止合并期间再次选中被合并。MergePolicy mergePolicy = new LogByteSizeMergePolicy(this);//合并策略,也即选取哪些段来进行合并。MergeScheduler

2015-06-17 10:31:10 414

原创 Lucene学习总结之四:Lucene索引过程分析

对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析。Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:《Annotated Lucene》,好像中文名称叫《Lucene源码剖析》是很不错的。想要真正了解

2015-06-17 10:31:07 582

原创 Lucene学习总结之三:Lucene的索引文件格式(1)

Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。当我们真正进入到Lucene源代码之中的时候,我们会发现:Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程。本文详细解读了

2015-06-17 10:31:05 531

原创 Lucene学习总结之二:Lucene的总体架构

Lucene总的来说是:一个高效的,可扩展的,全文检索库。全部用Java实现,无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。在Lucene in action中,Lucene 的构架和过程如下图,说明Lucene 是有索引和搜索的两个过程,包含索引创建,索引,搜

2015-06-17 10:31:02 331

原创 Lucene学习总结之一:全文检索的基本原理

一、总论根据http://lucene.apache.org/java/docs/index.html 定义:Lucene 是一个高效的,基于Java 的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据 和非结构化数据 。结构化数据: 指具有固定格式或有限长度

2015-06-17 10:31:00 282

原创 解决Eclipse中文乱码

使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码 格式解决乱码问题。在Eclipse可以从几个层面设置编码格式:Workspace、Project、Content Type、File 本文以Eclipse 3.3(英文)为例加以说明: 1. 设置Workspace的编码格式: Windo

2015-06-17 10:30:57 319

原创 【Lucene4.8教程之五】Luke

一、Luke基本内容1、Luke简介Luke可用于查看Lucene创建的索引,并对其进行基本操作。2、创建Luke(1)从Github上下载源文件 https://github.com/tarzanek/luke(2)解压文件后,打开DOS窗口,进入Luke源代码所有位置,运行ant即可。此时,在build文件夹中会生成一个lukeall.jar的文件。

2015-06-17 10:30:52 386

原创 【Tika基础教程之一】Tika基础教程

一、快速入门1、Tika是一个用于文本解释的框架,其本身并不提供任何的库用于解释文本,而是调用各种各样的库,如POI,PDFBox等。使用Tika,可以提取文件中的作者、标题、创建时间、正文等内容,相比于java.io自带的一些功能(如FileInputStream,FIleReader,Scanner等):(1)若文档为纯文本,如txt,html,java文件等,则二者对于文件内容的

2015-06-17 10:30:48 460

原创 【Lucene4.8教程之四】分析

1、基础内容(1)相关概念分析(Analysis),在Lucene中指的是将域(Field)文本转换成最基本的索引表示单元--项(Term)的过程。在搜索过程中,这些项用于决定什么样的文档能够匹配查词条件。分析器对分析操作进行了封装,它通过执行若干操作,将文本转化成语汇单元,这个处理过程也称为语汇单元化过程(tokenization),而从文本洲中提取的文本块称为语汇单元(token)

2015-06-17 10:30:45 427

原创 【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象

一、概述1、对于一个搜索而言,其核心语句为:searcher.search(query, 10);此时,其最重要的参数为一个Qeury对象。构造一个Query对象有2种方法:(1)使用Query的子类创建一个对象。(2)使用QueryParser.parse()创建一个对象。常用的用于实例化一个对象的Query子类有以下13个:TermQueryBooleanQ

2015-06-17 10:30:43 331

原创 【Lucene4.8教程之三】搜索

1、关键类Lucene的搜索过程中涉及的主要类有以下几个:(1)IndexSearcher:执行search()方法的类(2)IndexReader:对索引文件进行读操作,并为IndexSearcher提供搜索接口(3)Query及其子类:查询对象,search()方法的重要参数(4)QueryParser:根据用户输入的搜索词汇生成Query对象。(5)TopDocs:s

2015-06-17 10:30:38 235

原创 Java路径问题最终解决方案—可定位所有资源的相对路径寻址

1、在Java项目中,应该通过绝对路径访问文件,以下为访问的常用方法:第一种方法:类名.class.getResource("/").getPath()+文件名第二种方法:Thread.currentThread().getContextClassLoader().getResource("").getPath()+文件名【主要使用】假设目录结构如下现在src目录下

2015-06-17 10:30:34 590

原创 java.util.logging.Logger基础教程

从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一直未能广泛使用。综合网上各类说法,大致认为:    (1)Logger:适用于小型系统,当日志量过大时性能有待提升。好处在于JDK集成了此类,无需引入新包。且性能也在逐步改善当中,我认为一般而言,使用Logger即可。     (2)Log4J:并发性较好,性能较强,适用于大型

2015-06-17 10:30:29 428

原创 【Lucene4.8教程之二】索引

一、基础内容0、官方文档说明(1)org.apache.lucene.index provides two primary classes: IndexWriter, which creates and adds documents to indices; and IndexReader, which accesses the data in the index.(2)涉及的两

2015-06-17 10:30:25 385

原创 【Lucene4.8教程之一】使用Lucene4.8进行索引及搜索的基本操作

在Lucene对文本进行处理的过程中,可以大致分为三大部分:1、索引文件:提取文档内容并分析,生成索引2、搜索内容:搜索索引内容,根据搜索关键字得出搜索结果3、分析内容:对搜索词汇进行分析,生成Quey对象。注:事实上,除了最基本的完全匹配搜索以外,其它都需要在搜索前进行分析。如不加分析步骤,则搜索JAVA,是没有结果的,因为在索引过程中已经将词汇均转化为小写,而此处搜

2015-06-17 10:30:21 499

原创 【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析

在创建一个job后,就要开始job的运行,运行的全流程如下:1、在界面上启动job2、index.jsp查看上述页面对应的源代码Start3、action.jsp String sAction = request.getParameter("action"); if(sAction != null) { //

2015-06-17 10:30:16 331

原创 【Heritrix基础教程之3】Heritrix的基本架构

Heritrix可分为四大模块:1、控制器CrawlController2、待处理的uri列表  Frontier3、线程池 ToeThread4、各个步骤的处理器(1)Pre-fetch processing chain:主要处理DNS-lookup, robots.txt,认证,抓取范围检查等。(2)Fetch Processing chain:抓取处理器。对于每个协议

2015-06-17 10:30:12 348

原创 Eclipse 快捷键大全

精选常用:1、  ctrl+shift+r:打开资源这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2、 ctrl+o:快速outline    如果想要查看当前类的方法或某个特定方法,但又不

2015-06-17 10:30:09 223

原创 【Heritrix基础教程之2】Heritrix基本内容介绍

1、版本说明(1)最新版本:3.3.0(2)最新release版本:3.2.0 (3)重要历史版本:1.14.43.1.0及之前的版本:http://sourceforge.net/projects/archive-crawler/files/   3.2.0及之后的版本:http://archive.org/由于国情需要,后者无法访问,因此本blog研究的是1.14.4版

2015-06-17 10:30:07 282

原创 【Heritrix基础教程之1】在Eclipse中配置Heritrix

一、新建项目并将Heritrix源码导入1、下载heritrix-1.14.4-src.zip和heritrix-1.14.4.zip两个压缩包,并解压,以后分别简称SRC包和ZIP包;2、在Eclipse下新建Java项目,取名Heritrix.1.14.4;3、复制SRC包下面src/java文件夹下org和st两个文件夹到项目中的src包下;4、复制SRC包下src下conf

2015-06-17 10:30:05 322

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除