`
文章列表

solr调优

    基于Lucene的SOLR一直以稳定、高性能著称,虽然其在高并发下对CPU要求较高,但能解决复杂的查询并能以如此快的速度内返回搜索结果,实在是开发搜索的一大利器。公司部署在Linux服务器上的Master-Slave架构的SOLR在过去1年多以来运行都比较稳定。     最近一周,有开发人员反馈索引更新速度非常慢,造成一大堆数据还未等待索引操作,客户端提交索引的逻辑优化很多遍都没有效果。对于索引性能的检查,主要是从客户端和服务端两个地方入手:     1、客户端,检查结果发现多线程并未出现死锁,通过solrj发送索引命令因为执行速度太慢一直被阻塞在线程池中,客户端使用的是官方推荐的 ...
FAB利益销售法   FAB利益销售法(特征—优点—利益) 目录 [隐藏] 1 什么是FAB利益销售法?
转:http://kenwublog.com/theory-of-java-biased-locking 阅读本文的读者,需要对Java轻量级锁有一定的了解,知道lock record, mark word之类的名词。可以参考我的一篇博文:Java轻量级锁原理详解(Lightweight Locking) Java偏向锁(Biased Locking)是Java6引入的一项多线程优化。它通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行性能。 轻量级锁也是一种多线程优化,它与偏向锁的区别在于,轻量级锁是通过CAS来避免进入开销较大的互斥操作,而偏向锁是在无竞争场景下完全消除同步 ...
主要类分析:一、 org.apache.nutch.crawl.Injector:     1,注入url.txt    2,url标准化    3,拦截url,进行正则校验(regex-urlfilter.txt)    4,对符URL标准的url进行map对构造<url, CrawlDatum>,在构造过程中给CrawlDatum初始化得分,分 ...
private static class QueueFeeder extends Thread { private RecordReader<Text, CrawlDatum> reader; private FetchItemQueues queues; //生产者和消费者的共享序列,分层,一层对应一个host private int size; private long timelimit = -1; public QueueFeeder(RecordReader<Text, CrawlDatum&g ...
Fetcher这个模块在Nutch中有单独一个包在实现,在org.apache.nutch.fetcher,其中有Fetcher.java, FetcherOutput 和FetcherOutputFormat来组成,看上去很简单,但其中使用到了多线程,多线程的生产者与消费者模型,MapReduce的多路径输出等方法。下 ...
谭东的空间:http://thethethethethethe.spaces.live.com/default.aspx 从三个方面着手优化 :1. hadoop配置2. 设计mapred/job3. 代码级别.4. 改造hadoop一. conf/hadoop-site.xml配置.经验要求高, 特别需要结合实际情况.典型参数如复制因子,mapred.child.java.opts,mapred.tasktracker.map.tasks.maximum,mapred.tasktracker.reduce.tasks.maximum,mapred.map.tasks,mapred.reduce ...
接着看下最后一个Job ................... ................... ................... //判断是否更新 if (getConf().getBoolean(GENERATE_UPDATE_CRAWLDB, false)) { // update the db from tempDir // 产生临时目录 Path tempDir2 = new Path(getConf().get("mapred.temp.dir", ".") + "/ ...
继续向下看,第二个Job .................... .................... .................... // read the subdirectories generated in the temp // output and turn them into segments List<Path> generatedSegments = new ArrayList<Path>(); //读取上个job生成的多个fetchlist的segment FileStatus[ ...
  for (i = 0; i < depth; i++) { // generate new segment //根据传入参数depth来决定循环次数,生成segment Path[] segs = generator.generate(crawlDb, segments, -1, topN, System .currentTimeMillis()); if (segs == null) { LOG.info("Stopping at depth=&quo ...
转:http://www.cnblogs.com/xleequ/archive/2013/01/07/2849449.html 本文包括4部分内容: 1.基本流程(阅读README和README-builds.html)2.安装基础软件包3.配置变量4.检查环境是否配置ok与编译jdk源码 下载源码openjdk-7u6-fcs-src-b24-28_aug_2012.zip,解压 1.基本流程(阅读README和README-builds.html) README-builds.html中包含有详细的安装信息,最好能完整的阅读一下。---------README---- ...

Hadoop重温(4)--ipc

依赖于Hadoop Writable类型的支持。Hadoop Writable接口要求每个实现类都得确保将本类的对象正确序列化(writeObject)与反序列化(readObject)。因此,Hadoop RPC使用Java动态代理与反射实现对象调用方式,客户端到服务器数据的序列化与反序列化由Hadoop框架或用户自己来实现,也就是数据组装是定制的。 Hadoop IPC在org.apache.hadoop.ipc   RemoteException:远程异常,表示远程调用过程中的错误。 Status:枚举类,包括 SUCCESS (0) 成功,  ERROR (1)一般错误,  ...
Hadoop的序列化机制特征: 紧凑:带宽是hadoop集群中最稀缺的资源,一个紧凑的序列化机制可以充分利用带宽。 快速:mapreduce会大量的使用序列化机制。因此,要尽可能减少序列化开销。 可扩张:序列化机制需要可定制 互操作:可以支持不同开发语言间的通信。     java本身的序列化,将要序列化的类,类签名、类的所有非暂态和非静态成员的值,以及所有的父类都要写入,导致序列化的对象过于充实。可能比原来扩大了几十上百倍。      由上面的条件,hadoop自定义了序列化机制,引入org.apache.hadoop.io.Writable   /** * A ...
nutch的inject 有二个job 第一个job 如下图 map :InjectMapper 功能如下   1  url是否有tab分割的k-v 对如果有记录下来, 2  如果配置了过滤使用 URLNormalizers和 URLFilters 对url 进行格式化和过滤, 3  如果过滤的url 不为空则创建CrawlDatum ...
JobConf mergeJob = CrawlDb.createJob(getConf(), crawlDb); //可以看到上一个MP的输出tempDir,就是这个MP的输入 FileInputFormat.addInputPath(mergeJob, tempDir); mergeJob.setReducerClass(InjectReducer.class); JobClient.runJob(mergeJob); CrawlDb.install(mergeJob, crawlDb);   public void co ...
Global site tag (gtag.js) - Google Analytics