谁有lucene版本3.X版本的zip 麻烦发一下白

rpm upgrade CentOS system PHP, MySQL, HTTPD MySQL is now up to 5.0.86, PHP is up to 5.2.11, and httpd is up to 2.2.14. # Rpm - import /media/RPM-GPG-KEY-jlitka # Vi / etc / yum.repos.d / utterramblings.rep [utterramblings] na
运行于Linux下的Lighttpd是一个开源Web服务器软件.Lighttpd的最大特点是其&轻量级特征&:仅仅需要相对于Apache等成熟服务器软件小得多的CPU与内存资源即可达到相同的性能.Lighttpd以BSD许可证发布. 根据维基百科lighttpd条目的介绍,lighttpd支持FastCGI与SCGI的负载平衡,支持Linux下chroot安全特征,支持SSL加密连接.Lighttpd虽然小巧,但是却足以满足普通的高性能Web服务请求.本文将以CentOS为例指导安装l
CentOS 6.3挂载读写NTFS分区(ntfs-3g) CentOS不像Fedora和ubuntu等,默认是自动挂载NTFS的,而它可以利用NTFS-3G来实现挂载及读写. NTFS-3G 是一个开源的软件,可以实现 Linux.Free BSD.Mac OSX.NetBSD 和 Haiku 等操作系统中的 NTFS 读写支持.它可以安全且快速地读写 Windows 系统的 NTFS 分区,而不用担心数据丢失. 本文讲解如何在CentOS安装NTFS-3G来实习那挂载NTFS分区. 首先必须
CentOS 6.x 安装后设置及配置.网络配置及设置.软件源配置和163源及更新.添加删除软件.安装桌面系统.压缩与解压.语言包.输入法.VirtualBox.Flash 本页目录 四.CentOS6安装后基本配置 4.1网络设置及配置 4.1.1图形网络设置 4.1.2文本网络配置 4.1.3临时修改网络配置 4.1.4网络命令 4.2软件源配置 4.2.1CentOS的镜像站点 4.2.2CentOS的仓库 4.2.3简介yum源 4.2.4默认yum本地源 4.2.5默认yum软件源 4
RHEL以及他的衍生发行版如CentOS.Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题. 什么是EPEL? EPEL的全称叫 Extra Packages for Enterprise Linux .EPEL是由 Fedora 社区打造,为 R
A, CentOS and RedHat relationship RedHat at the time of release, in two ways: a binary distribution source code distribution methods and ways. No matter what kind of distribution method, you can get for free (for example, downloaded from the Internet
本文参考了网上高手的教程和结合自己的实践经验而来.网上关于LAMP安装配置的教程虽然很多,但长篇大论的让你抓不到重点,短小精悍的对新手来说又难了点,所以初次配置时最容易在某个环节卡住,从而打击了学习的激情或者耽误了宝贵的时间.于是就整理出这个学习笔记.如果文中有错误的地方,恳请大家指正,不要误导了初学者. 一.系统约定 1.系统环境 Linux:CentOS-4.4.ServerCD Apache:2.2.4 MySQL:4.0.26 PHP:4.3.11 ZendOptimizer:3.2.2
用过CentOS的人肯定有点不解,CentOS上自带yum,为啥还要安装?因为很多系统上并不一定安装了yum,尤其是vps上,我给客户的vps就经常没有yum,所以对于已经依赖yum的人来说,那还得安装一下的. 下面有两种办法可以安装yum: 一.下载yum的rpm包直接安装 http://centos./centos/5.4/os/i386/CentOS/yum-3.2.22-20.el5.centos.noarch.rpm http://centos.ustc.edu.
32位系统选择: rpm -ivh http://mirrors./fedora/epel/6/i386/epel-release-6-7.noarch.rpm 64位系统选择: rpm -ivh http://mirrors./fedora/epel/6/x86_64/epel-release-6-7.noarch.rpm 执行完后, 执行: yum makecache 注意 epel-release-6-7.noarch.rpm 这个文件可能会升级
添加当前用户到管理组 echo 'jedrek ALL=(ALL) ALL' && /etc/sudoers 修改为CentOS 的 yum rpm -aq|grep yum 查看rhel的yum PackageKit-yum-plugin-0.5.8-20.el6.x86_64 yum-utils-1.1.30-14.el6.noarch yum-3.2.29-30.el6.noarch PackageKit-yum-0.5.8-20.el6.x86_64 yum-rhn-plugin-0.
1. 安装OpenVPN软件包 默认的Centos软件源里面没有OpenVPN的软件包,我们可以添加rpmforge的repo,从而实现yum安装openvpn 针对CentOS 5 rpm -ivh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm 针对CentOS 6 rpm -ivh http://apt.sw.be/redhat/el6/en/x86
CentOS 5/6 快速安裝 VPN Server (PPTP) 把握幾個重點即可快速完成 pptp 的 VPN Server 架設: ppp - 點對點協定 (Point-to-Point Protocol) pptpd - 點對點通道協定 (Point-to-Point Tunneling Protocol) iptables - 設定封包轉發規則 安裝步驟 1. 判斷 ppp 是否可用: $ cat /dev/ppp cat: /dev/ppp: No such device or ad
PS:EPEL的yum源是很稳定的第三方yum安装源,也是我经常使用的,基于CentOS/RHEL 7.x的也有了,整理如下: # wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm # yum install epel-release-7-0.2.noarch.rpm 或者 # rpm -ivh epel-release-7-0.2.noarch.rpm 验证查看是否安装成功
Introduced the use of Kickstart in front of a mass deployment of redhat, but this method is troublesome to configure. Now we have a better choice. That is: Cobbler. When looking at the best look at the following under: Kickstart mass deployment of re
This guide can be used in the case we need to run Nginx on Amazon due to a bug that affects the EPEL package repository and maybe some other repository. That's why I leave this &Step by Step& to compile and build the RPM for CentOS and RHEL. It
这篇文章主要介绍了Apache加速模块mod_pagespeed安装使用详细介绍,需要的朋友可以参考下 一.mod_pagespeed介绍 mod_pagespeed是一个适用于apache httpd的模块,由google发布的开源代码,可以自动完成优化工作,包括优化缓存,减少客户端服务器之间的通讯,降低负载等等.部署mod_pagespeed不用修改任何程序,安装完成后重启apache,一切前端问题自动优化.CDN服务商Cotendo已在其CDN服务器上部署mod_pagespeed以加速客
mod_pagespeed是谷歌发布的加速httpd的优化模块,通过自动优化代码.压缩传输内容.自动缓存加速http,支持Centos/Debian系统 mod_pagespeed目前支持Apache和Nginx.Apache中简单的安装方法如下.安装完成之后,它会在yum里新建一个安装源,之后通过yum update更新就可以了 Centos/Fedora下安装: #32位 wget https://dl-/dl/linux/direct/mod-pagespeed
VPN服务器的搭建 实现如图所示的功能: 在linux下搭建VPN服务器,实验环境以一台CentOS 5.5 64位系统为例: 1.检查服务器是否支持PPTP: # modprobe ppp-compress-18 && echo ok 如果命令执行后返回的结果为OK,表示成功通过. 还需要执行另外一条命令: #cat /dev/net/tun 如果返回的结果为cat: /dev/net/tun: File descriptor in bad state,则表示通过. 如果上面两条命令都能
CentOS安装Axel: 目前yum源上没有Axel,我们可以到http://pkgs.repoforge.org/axel/下载rpm包安装. 32位CentOS执行下面命令: wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.i386.rpm rpm -ivh axel-2.4-1.el5.rf.i386.rpm 64位CentOS执行下面命令: wget -c http://pkgs.repoforge.org/axel/a
CentOS不像Fedora和ubuntu等,默认是自动挂载NTFS的,而它可以利用NTFS-3G来实现挂载及读写. NTFS-3G 是一个开源的软件,可以实现 Linux.Free BSD.Mac OSX.NetBSD 和 Haiku 等操作系统中的 NTFS 读写支持.它可以安全且快速地读写 Windows 系统的 NTFS 分区,而不用担心数据丢失. 本文讲解如何在CentOS安装NTFS-3G来实习那挂载NTFS分区. 首先必须安装了rpmforge软件库的源 1.下载rpmforge的
CentOS不像Fedora,默认是没有自动挂载NTFS的,而它可以利用NTFS-3G来实现挂载及读写. NTFS-3G 是一个开源的软件,可以实现 Linux.Free BSD.Mac OSX.NetBSD 和 Haiku 等操作系统中的 NTFS 读写支持.它可以安全且快速地读写 Windows 系统的 NTFS 分区,而不用担心数据丢失. 本文讲解如何在CentOS安装NTFS-3G来实习那挂载NTFS分区. 首先必须安装了rpmforge软件库的源 1.下载rpmforge的rpm文件包
一.安装epel源 二.管理端安装 三.节点安装 四.认证节点 五.简单使用 参考链接:http://www./lib/view/open6.html 一.安装epel源(管理端和节点都需要安装) RHEL6/CentOS6 设置RHEL/CentOS更新源 32位 rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 64位 rpm -Uvh
Salt简介 Salt Stack 简称 Salt Salt是开源的管理基础设置的轻量级工具,容易搭建,并且快速管理成千上万的服务器(保持秒级响应时间) 可以执行任意命令,或者预定义的模块(复杂)命令. 针对单独独立服务器,或者同名一组服务器,或者相同角色,系统硬件信息,操作系统,当前版本等等 Salt特点 开发语言:python 数据通信:msgpack 认证加密:AES 与Puppet对比 salt客户端(minion)一直都具备一个守护进程进行和master进行通信.puppet是通过系统
7zip is an open source compression software solutions, not only their own unique 7z format, and supports zip, rar, tar, gzip, and many other formats, while a high proportion of 7z compression format, the current version of the game a lot of hard driv
I used Linux command of the uncompress - extract. Z files This link: /blog/790830 (reproduced please indicate the source) Use Description compress command is used to compress the file. Z format, corresponding to uncomp
7zip is an open source compression software solutions, not only their own unique 7z format, and supports zip, rar, tar, gzip, and many other formats, while a high proportion of 7z compression format, the current version of the game are a lot of hard
花了一,两个小时才至少看到了一点点OpenLDAP的样子.记录于此以备忘. 注意:由于不是安装的原汁原味OpenLDAP,文中出现的路径与原来的有所不同. 1. 由于OpenLDAP要使用Berkeley,于是到Oracle网站上去下载 2. 对不起,下载需要注册,于是就试着用免费邮箱注册 3. 不知道为什么注册不成功,Oracle说要 Business email,没办法只好放弃 4. 改变方向到/ 上去下载已经Package好的OpenLDAP 5.
1. 安装fedora19后的初始化配置 1.1. 防火墙 如果你的电脑处于局域网内,那么防火墙是不需要的的,停止它! sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service 1.2. SELinux 停止SELinux,如果你不需要它. sudo vi /etc/sysconfig/selinux # This file controls the state of SELinux on the
1. 安装fedora19后的初始化配置 1.1. 防火墙 如果你的电脑处于局域网内,那么防火墙是不需要的的,停止它! sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service 1.2. SELinux 停止SELinux,如果你不需要它. sudo vi /etc/sysconfig/selinux # This file controls the state of SELinux on the
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好. Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算 机系统的内存除了主存外,还包括了cpu内的L1.L2,甚至有L3快取.硬盘上也有自己的快取装置,因此
GNU:http://www.gnu.org/ RPM:http://www.rpm.org/ CentOS:http://vault.centos.org/ FreeBSD:http://ftp.freebsd.org/pub/FreeBSD/releases/
centos6.5安装ipython步骤: (1)安装easy_install : # yum install python-setuptools (2) 更新yum源: # rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 64位: # rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.no
1. 配置GNOME Shell界面 $ sudo yum install gnome-tweak-tool 2.安装YUM Extender &yumex&是YUM包管理系统的图形化工具 $ sudo yum install yumex 3. 启用RPM Fusion仓库 RPM Fusion是一个流行的仓库,它主要是系列依赖于非自由软件包的闭源软件集合,它也包括了尚未收录进入Fedora官方仓库的软件. 启用RPM Fusion仓库: $ sudo yum localinstall
1. 把老版本的ImageMagick和JMagick卸载干净 查看版本号: [root@3qianke ~]# rpm -qa | grep ImageMagick ImageMagick-6.2.8.0-4.el5_1.1 ImageMagick-6.2.8.0-4.el5_1.1 [root@3qianke ~]# rpm -qa | grep jmagick jmagick-6.4.0-3 jmagick-6.4.0-3 卸载老版本: [root@3qianke ~]# rpm -e I
自己闲着没事,在小黑上虚拟了 4 个 centos 64 的系统,用来安装分布式 fastdfs . nginx 负载均衡,过程一路艰辛,搞了一个通宵都没弄好,终于在第二天的傍晚终于弄好了,记录一下过程. 有时候看书会犯糊涂,看完了都不知道将了啥,只有动手坐坐,啥玩意都明白差不多了. 有时候太懒了,哎,这是病,得治. FastDFS安装 FastDFS是一个国产开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡
本系列教程介绍在Linux(CentOS 6.3)上安装Nginx-1.5.4的全过程.第一篇,介绍Nginx-1.5.4安装所需要的系统环境,即一切相关组件,如gcc.pcre.openssl.zlib等. 开发环境是在 VMware 10.x 上 安装 CentOS-6.3(64) basic server 模式,有些工具没有,需要自己安装. 安装GCC编译软件 GCC,即为GNU编译器集合.这是源码安装Nginx-1.5.4必备的组件,否则源码将无法编译.我们先简单测试一下当前系统有没有安
Install Redmine on Centos 6.5 - 64 bit Install Redmine on Centos 6.5 - 64 bit The System Requirements Update the System Install the dependencies packages Install Apache and MySQL Turn off SELinux Set up the Hostname Configuring the Firewall Install P
首先去/downloads/mysql/5.5.html#downloads站点下载: 分别下载以下三个文件(由于我的机器是32位,下面是32位版本的包,如果你的机器是64位的请下载64位版本): MySQL-server-5.5.16-1.rhel5.i386.rpm MySQL-client-5.5.16-1.rhel4.i386.rpm MySQL-devel-5.5.16-1.rhel4.i386.rpm 使用wget命令使用断点传输的方式将这三个
Linux环境说明 1.如果你只是需要安装mysql,那么只需要安装如下文件 MySQL-server-5.5.25-1.rhel5 MySQL-devel-5.5.25-1.rhel5 MySQL-client-5.5.25-1.rhel5 2.如果你需要搭建Linux整个实施环境(nginx.php.mysql.tomcat.jdk.服务器多域名配置) 请参考我的Linux项目实施系列教程: CentOS 6.3 64位搭建nginx1.3+php5.4.3+mysql5.5.25+tomc
这篇文章主要介绍了Centos中彻底删除Mysql(rpm.yum安装的情况),本文直接给出操作代码,需要的朋友可以参考下 我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/f依然没变,datadir里面的数据已没有任何变化,手动删除/f,/usr/lib/mysql,/usr/share/mysql,/var/
http://rpmfusion.org/RPM%20Fusion //我考虑以后写个安装centOS必做的10件事咧. 默认安装的centOS安装后还是有些不够强大 RPM Fusion 提供了一些官方源因为种种原因没有的包. 官方安装指南 http://rpmfusion.org/Configuration 注意最下面的Important notes 如果您是centOS 6.x用户.直接跟我走: 下载 http://download.fedoraproject.org/pub/epel/6
一.rpm包的安装: 1.安装一个包 # rpm -ivh 2.升级一个包 # rpm -Uvh 3.移走一个包 # rpm -e 4.安装参数 --force 即使覆盖属于其它包的文件也强迫安装 --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装. 5.查询一个包是否被安装 # rpm -q & rpm package name& 6.得到被安装的包的信息 # rpm -qi & rpm package name& 7.列出该包中有哪些文件 # rpm
CentOS或者RHEL 系统环境下,RPM 的依赖性是个很让人头疼的问题.每次系统安装完成过后,想再装一个软件包,敲下回车之前,都会心惊胆战,生怕跳出个依赖性错误.而在一个依赖性错误的背后,可能还牵连着更多的依赖性.这个问题让很多 Linux 用户望而生畏. RPM 包的依赖关系说起来是简单的因为它所谓的依赖关系仅仅是一个个简单的如&要安装 A,需要提前准备好 a1, a2, a3&这样的条件. 例如,当我们安装gcc时.找到安装光盘,小心翼翼地挂载上,并找到了gcc-4.1.2-5
CentOS 6.3下载地址 32位:http://mirror.centos.org/centos/6.3/isos/i386/CentOS-6.3-i386-bin-DVD1to2.torrent 64位:http://mirror.centos.org/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-bin-DVD1to2.torrent tools-linux : /cds/vmw-des
之前的 fastdfs 分布式搞好后,现在开始搭建 java .tomcat 环境 JDK 1.7 下载地址: /technetwork/java/javase/downloads/jdk7-downloads-1880260.html 在下载过程中,需要注意两点: 1:注意操作系统版本,以及32位还是64位操作系统.如下所示,Linux 分x86.x64两种. Product / File Description File Size Download
国庆这几天闲着没事,自己动手搭建一下简单的web环境吧. 在哪里跌倒了,就在哪里躺一会儿吧! 安装软件列表: httpd-2.4.6.tar.gz pcre-8.33.tar.gz apr-1.4.8.tar.gz apr-util-1.5.2.tar.gz 名词解释: apr(解决APR not found的solution) apr 全称为Apache Portable Runtime,中文翻译为Apache可移植运行时,是Apache HTTP服务器的支持库,提供了一组映射到低层操作系统的
有时候为了部署自己的包更方便一些,我们会制作自己的RPM包,制作RPM包都有哪些步骤呢,学习这些步骤就是本文的目的.在Centos下制作RPM包依赖rpm-build这个包,所以需要提前安装好该软件包. RPM生成要素 生成rpm所用的文件列表或者源代码 根据文件列表或者源代码生成rpm规范,也就是spec文件 根据spec文件加工源码/文件的工具rpmbuild 在redhat下,rpm包的默认制作路径在/usr/src/redhat下: /usr/src/redhat --BUILD #编译
RPMForge是CentOS系统下的软件仓库,拥有4000多种的软件包,被CentOS社区认为是最安全也是最稳定的一个软件仓库.默认的CentOS源,软件太少了,可以添加额外的RPMForge http://repoforge.org/use/ Use cat /etc/redhat-release to find which release of EL you are using Use uname -a to find your processor architecture Use rpm
最近在centos安装rpm包,但是在安装时提示有 warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID***** 的错误,在网上查找解决办法,发现是这是由于yum安装了旧版本的GPG keys造成的,解决办法是 rpm --import /etc/pki/rpm-gpg/RPM* 之后问题不再出现
环境: # lsb_release -a LSB Version::core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID:CentOS Description:CentO
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.044 (s). 8 q(s)Lucene首页、文档和下载 - Java 全文搜索框架 - 开源中国社区
当前访客身份:游客 [
当前位置:
Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene最初是由Doug Cutting所撰写的,是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后来在Excite担任高级系统架构设计师,目前从事 于一些INTERNET底层架构的研究。他贡献出Lucene的目标是为各种中小型应用程式加入全文检索功能。OSChina 使用 Lucene 实现全文搜索。在线Javadoc:
Lucene最新更新资讯,共67条&&(,)
3评/1776阅
7评/1530阅
14评/1732阅
7评/4576阅
授权协议:
开发语言:
操作系统:&跨平台&
收录时间: 日
eonmain 发表于1个月前
李永china 发表于1个月前
,最后回答(1个月前):
liutaoyyyxz 发表于3个月前
,最后回答(1个月前):
bruce2_jiang 发表于2个月前
,最后回答(1个月前):
杨尚川 发表于3年前
,最后回答(2个月前):
喜欢自在 发表于2个月前
,最后回答(2个月前):
铂金小马 发表于5年前
,最后回答(2个月前):
afsyb 发表于5年前
,最后回答(2个月前):
fight123 发表于2个月前
,最后回答(2个月前):
guhai2004 发表于3年前
,最后回答(2个月前):
wf2311 发表于4个月前
,最后回答(2个月前):
slliver 发表于4个月前
,最后回答(2个月前):
Inszt 发表于3个月前
,最后回答(2个月前):
冉旭 发表于3个月前
cescky 发表于5年前
,最后回答(4个月前):
千年 发表于5年前
,最后回答(4个月前):
喜欢西瓜 发表于3年前
,最后回答(4个月前):
panhan 发表于3年前
,最后回答(4个月前):
slliver 发表于5个月前
,最后回答(4个月前):
pan_1308 发表于5个月前
,最后回答(5个月前):
使用 Lucene 中的任何问题
:没弄明白
: 6.0 和以前版本差别不小
:研究一下
: 每次大版本发布,其 API 就来个答复变化而且不想后兼容。这件事情估计会一直这样,都 6.0 了!
: 目前我的一个建立索引的程序在索引了数千万数据时异常抛出异常而中断,导致segment文件没有生成,请问有无方法来手动生成对应的segment文件?
共有 166 个类似软件
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以...
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全...
Elastic Search 是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云...
Luke 是查询LUCENE索引文件的工具, 而且用 Luke 的Search可以做查询 Luke is a ha...
Solandra (原名为 Lucandra) = Cassandra + Lucene Solandra = Solr + Cassandra S...
MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%......
ElasticHQ 是一个具有良好体验、直观和功能强大的 ElasticSearch 的管理和监控工具...
Solarium 是 Solr 的 PHP 开发接口,
IndexTank, 一套基于Java的索引-实时全文搜索引擎实现,Includes features like va...
Bleve,发音为 BLEH-vee,是一个现代化的 Go 搜索索引库。Bleve 是使用 Go 编写的现...
Lucene++ 是 Java Lucene 搜索引擎的 C++ 移植版本。 包含组件: liblucene++ libr...
Lucene.Net 是 .NET 版的 Lucene。 Lucene.Net 命名空间分析 Lucene.Net.Documents...
这是一个正在孵化的Apache项目(成为正式项目前的阶段),代码构建在Apr基础上(A...
word2vec(word to vector)是一个将单词转换成向量形式的工具,Lucene 是apache软...
Maven Lucene Plugin 是一个开源的 Maven 的 Lucene 插件。...
Zend_Search_Lucene 是一个完全由 PHP 5 编写的通用文本搜索引擎。由于其将索引保存...
共有 795 人关注 Lucene二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&& 文中说到了IBM的两个分析工具,这也是我们后来的救星:我们就是需要这种离线分析工具,因为实时检测已经证明不现实。但我始终对该分析出来的结果抱怀疑态度,直到我去深入IBM的JVM以及和IBM的技术支持交流......柳暗花明啊 ,至少看到了一点希望,不过最后我们还是失望而返。四、用IBM的HeapAnalyzer和GarbageCollector检测&&& 找到这两个工具,已经是够费劲了,因为以前找的IBM HeapRoot工具,让我对这类工具很失望。而且,这两个工具,只有在IBM的Techinical Support网站能够搜索到,但很不容易,因为那两个工具,并不是象IBM的Websphere产品那样宣传,它只在IBM Techinical Support文章的某些角落里出现。要知道,Techinical Support是IBM很重要的收入来源,这类文档,他们并不会让你很轻易就拿到,比起BEA WLS的支持网站dev2dev差远了。&&&& 具体诊断细节我就不详述了。我认为,IBM的WAS或JVM出了性能和OOM问题,这两个工具是最有效的,而且是离线分析工具,比起那些实时Profiler工具,某些场合有绝对的优势:譬如我们目前的产品环境,你只能分析宕机后的日志,实时分析前面已经验证是不可行的。&&&& 从日志分析,我们最终得出结论,我们购买的CMS系统有严重的碎片(大对象)问题,而该问题是OOM的罪魁祸首,而且IBM工程师也得出了同一结论。不过,在起先我们得出这一结论一周后,我还始终不相信heap碎片会导致OOM,直到IBM工程师总是向我强调。&&& 我想很多人也是不太相信,因为大多数人用的都是Sun的JVM,譬如Windows、Solaris上的hotspot。而且,Sun JVM出问题,如果是配置的问题,一般通过配置heap最大最小值,以及maxPermSize都可以解决。Heap碎片导致的OOM,只有BEA的JRockit和IBM JVM上发生,不过JRockit有专门文档说明,而且很容易找到(就在jdk的文档里面)。配置heap最小最大值,我想大多数人都有经验。对于Sun的JVM来说,一般可以设置heap最大最小值一致,也是推荐的做法。因为它的GC策略默认是复制、分代算法。也就是说,它会将heap分成不同的几个区,譬如Solaris JVM中最上面有两个大小相等的区。GC时刻,将一个区的存活对象复制到另外一个对等区,垃圾对象就算遗弃了。这样在heap里面,就不存在碎片问题。另外,根据Java对象的存活期不同,将之转移到不同的区(Tenured区),存活最长的在最底部(火车算法),这也就是分代模型。具体请参考官方文档:对于maxPermSize(Permanent Generation),主要和那些加载到JVM里面的Java Class对象相关,它的空间不是在Java Heap里面分配。如果你当前的heap有1000M,permSize是200M,那么JVM至少占用1200M。&在这个空间内的对象的生存期和JVM是一样的,譬如JDK的核心类库,它们被System Classloader加载到JVM的Method Area(方法区)后,就不会被GC掉的,这些对象一般是Class对象,而不是普通的实例对象,也就是JVM的元数据。我们在用反射时经常用到它们。所以,对于现在象Spring、Hibernate这些框架经常通过反射创建实例,可能对maxPermSize要求就大了,缺省的64M很多时候是不够的,特别是对于应用服务器里的应用,象JSP就会产生和加载很多classes。不过,如果是它导致的OOM,一般会有类似 perm size提示。&&& 但是,对于IBM的JVM,情况就完全不一样。它的默认GC策略并没有采取复制、分代。这个可以从GC日志分析出来。它不像Sun的JVM那样,有个单独的方法区,它的方法区就放在Java Heap里面。JVM规范里面并没有要求方法区的必须存放的位置,因为它只是一个JVM实现问题。&&& 在IBM的JVM里面,这些对象一般分配在称为k-cluster和p-cluster里(cluster又是属于Heap),而后者一般是临时在heap里面申请。并且,这些cluster是不能GC,或是被移动重排的(Compact过程)。这就导致Java Heap里面就如同马蜂窝,但不同的蜂孔又不能合并,于是,当我们程序里面产生一个大对象,譬如2M的数组(数组必须分配在连续的内存区)时,就没有可分配空间了,于是就报告OOM。这些不能被移动的cluster就称为所谓的碎片。此时,JVM的Heap利用率可能不到50%。&当然,通过一定时期的GC日志,可以计算出cluster的合理大小(专门在Java Heap的底部),另外,还可以为这些大对象专门分配大对象区的(超过64k的对象)。通过上面的理论介绍,我想大家一定知道了为什么IBM的JVM里面不推荐heap的最大最小值相同,因为这样碎片问题会非常严重:如果我们每次大对象申请内存时,heap都扩展5%,譬如50M,碎片问题很大程度上可以避开,程序性能也高些(寻找可用空隙和分配耗时,以及每次GC时间拉长)。&&&& 以上的具体阐述,请参考我在上文推荐的几个URL,另外再推荐三个宝贵的链接:&&(IBM 技术支持告诉我的,太重要了!)&&&& 我想大家应该会问:我怎么能够肯定我的OOM问题是heap碎片造成的呢?下面的方法可以验证。&&&& 在OOM发生时,JVM会产生一个heapdump文件。然后用GarbageCollector分析出该OOM发生时刻,JVM去申请的空间,譬如约235k。此时,你再用HeapAnalyzer去分析此时的heap快照里面的gap size大小(空隙大小)和各自的可用数目。你会发现,大于235k的空隙个数为0。这就是碎片导致OOM的证据。&&& 另外,有人会问:我怀疑我的OOM是因为程序内存泄漏造成的,怎么去验证?&&& 你可以用HeapAnalyzer分析发生OOM时刻的heap快照,工具会罗列出哪些对象怀疑有内存泄漏,譬如Cache对象都非常大(但你可以确定它不是内存泄漏)。另外,分析这次宕机(从这次虚拟机启动到宕机这段时间)的heap走势,如果曲线明显是向上倾斜,也就是那种典型的内存泄漏图,就有可能是内存泄漏。当然,还必须结合heap快照。&内存持续上升在JVM开始一段时间很正常,因为JVM对第一次访问到的Class 对象,譬如一个典型的Web应用,就有jdk的class、Spring或Hibernate的class对象,它们都会被缓存下来(ClassLoader原理),一般均不会被GC。当大多数class对象缓存差不多(当然还可能有一些Singleton对象,不过不怎么占分量),JVM的Heap就平稳了,呈一水平波浪或锯齿线。&如果可以用JProfiler这类工具实时监控,就更容易确诊了。&&& 经过一番周折,我们终于看到了一线希望了。&&& 在一定的准备后,我们决定对WAS进行性能调优了。WAS的调优参数,可以分为两个部分:JVM级别和WAS级别:&JVM:主要是GC和Heap。&WAS:Thread Pool,JDBC DataSource。&&&& 当然要调节,你需要明白你的目标是什么,调节依据是什么,怎么计算,绝对不是凭空想象的,譬如heap最小值1024M,日志证明,该参数非常不适合我们的环境。具体细节,留给后文吧。&&& 战战兢兢地,中午12:00,我们给产品环境下的WAS调节参数、重启,同时优化了AIX的IO相关参数。我试着设置了一下JVM的k-cluster和p-cluster。下午15:00左右,WAS挂了,AIX也挂了。这下麻烦可大了。我们都慌了,马山客户的老总就来电话了,一阵哗哗啦啦。实在无奈,让客户那边工作人员通知机房(服务器托管处)工作人员重启AIX。我也不得不强行更改刚才的参数,立即设为另外一个值。&&&& 其实,我把那个两个cluster值确实设置太大了,我把它们设置为推荐值的5倍,譬如p-cluster是65k×110%×5。另外一个愚蠢的设置就是把最小heap设置为2048M(AIX有4G内存)。后来我恢复到约正常的值,也就是去掉那个cluster的5,另外分配了一个30%的大对象区(如果1000M的heap,就是700M+300M)。就这样,系统持续正常运行了三天,以前可是一天一down。当在三天后再次宕机时,我们都没有自信了。不得不通过AIX的cron,继续每天深夜11点的WAS定时重启。不过,那次宕机,包括以后的几次宕机,再也没有出现OOM错误了,但系统依然不稳定。虽然我可以说OOM问题解决了,但领导和客户需要的并不是这种结果。&&& 其实,在这个时候,我们已经发现我们系统的四大问题:&1、WAS和JVM参数:OOM问题&2、AIX的IO和Paging Spacing不足:AIX日志后来显示错误&3、AIX的WAS分区空间不够:WAS的日志膨胀一周就把那个opt分区塞满了。&4、应用程序的JDBC连接池:我们20来个应用,一个20 connections,DB2数据库有时被撑死。&&& 也就是说,我们最初在客户那儿部署时,用的默认值根本不行。而且,部署涉及多人,人员之间出现断层。如果我们只是按OOM,无疑是走入死胡同,必须全局考虑!但是,项目组实力薄弱,公司范围内就没有对AIX精通的。不过项目组原来有一个搞银行系统,在AIX下开发,就他熟悉些。我当时对AIX也比较陌生,你们从Linux转到AIX,你就知道它有多别扭了。命令都自定一套(也许因为是Unix元老吧),那个shell也超级别扭,而且参考书特少。不是自诩,我两年前负责一个高负载的Linux服务器管理一年多,也是玩得很转的。就这样,他负责AIX的相关问题,我负责WAS相关的。但是,现实环境,已经不允许我们再试验下去了。我们必须找到一条绝对可靠的对策!这就是下文的CMS系统大迁移,服务器再次优化。五、隔离CMS系统,服务器优化&&&& 从前面的介绍,大家应该记得,我们开始是固定CMS,分离其它应用,但遭遇失败。现在是反过来,干脆把CMS系统赶出WAS平台。&&& 说实话,项目经理做这个决定,我认为已经是鼓出很大勇气了。当时我们想在一个备用AIX机上安装CMS产品测试,但最后还是没有做成:CMS这类文章发布系统很难安装,也不好测试,又没有liscence,而且还有一堆准备工作。绝对没有著名的openCMS安装那么简单,当然功能远远比它复杂。而且,我们当时也低估了后来的工作,总觉得问题好解决。&&& 在很遥远的06年中期,CMS厂商在客户那边一台AIX的Tomcat上部署了一套CMS产品。但当时客户执意要求将其跑在WAS上,也就是现在的情况。最开始,客户还要求我们必须用WAS的集群(我们买的就是WAS的ND版),无奈该CMS不支持。要是集群,又是死伤一遍。其实,现在想想,我们当时太被动,CMS这种东西,就供公司的几十个编辑用,一个普通Tomcat就完全够用。而且,把它和面向公网的Internet应用混在一起,完全没有必要。也许,被动是因为我的实力造成的。&&& 我们决定背水一战时,已经做过周密的计划:某年某月某日晚上8:00......&CMS产品负责人现场切换&xx(我)负责WAS相关参数调整&yy负责AIX参数。&zz负责应用的测试&…..&&& 总之,该行动涉及到客户方、产品提供商、公司高层、项目组。每个人都密切关注,不下20人。每个人都守在电脑前,随时听候调遣,当天晚上,我们都没有准备回家睡觉,大家齐心协力。真没想到,整个式切换工作,一个小时就顺利完成!第二天,客户编辑打开浏览器,她们一定想不到昨晚大家准备经历一场厮杀….&&& 系统持续平稳地运行了一周,然后是漫长的五一,我回湖北黄冈老家休息了八天。回来时,一切依旧。当天晚上,我们这边主要做了两项工作:&1、JVM的Heap参数,共五个。&2、AIX的IO、Paging Space等共六个。&当然还有其他人的工作,譬如测试、监控。&&& 还有一个非常重要的方面:JDBC连接池。我们原来是在每个Web应用里面独立设置,这样20来个应用就有几百个DB连接,一不小心DB就给撑死。现在统一交由WAS内置DataSource处理,总共连接不到30个。其实,我们项目开始部署时,就是这样做的,但当时WAS内置的DataSource对JTA(XA)支持有bug (这个和IBM技术支持确认过,但他们没有给予很好的解决方案),不过Datasource还是配好的。&&& 但是这个工作已经属于WAS性能优化的主题了,而且优化值必须持续观察一段时间,通过专门的分析工具来计算。优化本身,是一项很考验人的工作,我就简单说一下最实用方法吧,也许是专门针对IBM的产品。&1、清理归零WAS日志。然后启动WAS,生成日志(-verbose:gc默认是开的)&2、让WAS持续运行约两周,让JVM Heap占用曲线平稳一段时间即可(用IBM的Garbage Collector分析观察)。&3、在AIX的shell里,产生heapdump.phd文件,也就是heap快照。命令:kill -3 pid (pid是WAS的PID,通过ps –ef查看),观察heap当时的碎片情况,是否需要单独分大对象区(一般不需要设置),特别是那个方法区Class对象大小(p-cluster参数)。&4、通过GC工具,观察GC平均时间、Heap实际占用情况。Note: GC是一个Stop The World过程,也就是说GC时系统对外不响应,多CPU也不例外。看你的应用实际需求了,GC持续时间和频率是矛盾的,另外还有性能考虑。一般Web应用,我想让GC持续时间(Pause time)调节到合理值就ok了,譬如0.2到0.4s。&5、根据3可以算出k-cluster值,它是工具推荐值的110%。&6、Heap的最小值是程序刚启动不久的占用值,譬如320M。切记:IBM JVM初始值太大非常不好。&7、Heap的最大值是系统平稳后的100/70。也就是说如果最大值是1000M,那么应该平稳时是700M,还有30%的空余。IBM的JVM默认情下的碎片问题,WAS控制台下操作Heap猛增这种bug,你不得不堤防。Heap最大值不设,AIX下的WAS肯定OOM。&&& 当然啦,我没有考虑到大对象区的计算(虽然我们的应用设置了专门的大对象区),包括IBM JVM支持的分代GC、并行GC,Heap每次expand百分比等。那些情况我们一般不常用,譬如,你的AIX平台一般不是16CPU吧?一口气写到现在,我忽然觉得该收尾了。下面就说说我对这类工作的整体看法吧。&1、尽量在项目测试和试运行的时候就进行压力、性能测试,当正式投入使用后,如果发现类似问题,代价非常大。躲过算你运气好,一般来说,可能你们系统没多少人用,也不是核心业务系统,譬如一般的电子政务。&2、千万不要低估了技术风险,用IBM的系列产品尤其要慎重,出问题一定不要忘了技术支持。而且,查资料时,建议用google English,因为象WebSphere这类问题,很少有中文资料。&3、程序部署环境建立时,就要考虑到日后的正式环境,譬如AIX的Paging Space、IO、分区大小,默认值往往是不行的,而且在产品环境下改这些值,往往非常难。&4、在项目开发初期,就考虑到日志的问题,因为它分散到每个方法内,必须慎重定义好debug、info、warn、error级别,不要随便忽视异常(catch里面不记录),到真正程序出问题时,它就是我们的最重要的依据之一。当然这主要是功能性问题诊断。另外对于高负载网站,日志文件往往非常大,各级别日志千万不要混在一起,否则找问题就很困难了。&5、怎么说呢,别死扣技术,以为什么都可以通过技术解决。你看我们最大的问题就是把CMS给移到Tomcat下。你要是问我,为什么CMS产品会导致系统这么多的问题,我也不知道,到那时候,我确实也不想深入。我只要知道,赶出你这个应用,我的系统就好控制多了。而且,那个CMS系统,在Tomcat下,就是跑得服服帖帖的,非常稳定。难度是可恶的WAS?不过那CMS,据IBM工程师,包括我们二次开发,都觉得够烂了,每个jsp页面都打开、关闭DB connection(7年前的jsp开发模式),还有那么严重的大对象问题。&&& 好了,以上总结的几点可能也不充分、深入,但如果你仔细读我这篇文章,应该有自己的想法。毕竟,只有经过思考的东西,才会属于自己。
阅读(1020)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'JVM jvmpi',
blogAbstract:'近段时间,我们项目中用到的WebSphere应用服务器(WAS),但在客户的production环境下极不稳定,经常宕机。给客户造成非常不好的影响,同时,也给项目组很大压力。为此,我们花了近一个月时间对其诊断,现在基本上稳定了,需要继续观察一段时间。现在我主要将工作做一个阶段性的总结。&&&& 我们的产品环境是:WAS6.0+DB2 8.1+AIX5.3+RS/6000。在该产品环境下,出现的问题非常多,现象如下:&1.WAS经常不稳定、宕机几乎一天一次,经常报告OutOfMemory(内存泄漏吗?NO)。&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 lucene版本 的文章

 

随机推荐