solr部署在tomcat下

solr默认启动用自带的jetty服务器,如果想将solr 部署在tomcat下,
如下操作能在 window / linux环境下都可以启动:
 
 
0 版本:  solr-5.2.0 + apache-tomcat-7.0.68
 
1 将apache-tomcat-7.0.68.tar.gz解压到 /opt/tomcat7下, solr-5.2.0.zip解压到/opt/soft/solr-5.2.0下
 
2 将solr部署到Tomcat中
 
2.1)、将/opt/soft/solr-5.2.0/example/example-DIH目录下的solr文件夹复制到tomcat的根目录下,即:/opt/tomcat7下, 如下图:
 
 
solr部署在tomcat下
 
 
2.2)、将/opt/soft/solr-5.2.0\server\webapps目录下的solr.war包复制到 /opt/tomcat7/webapps目录下,此时,启动Tomcat,成功启动Tomcat后,在该目录下会自动生成一个solr的文件夹,如下图
 
 
solr部署在tomcat下
 
2.3)、修改/opt/tomcat7/webapps/solr/WEB-INF/web.xml,找到<env-entry>节点,该结点处于被注释状态,
去掉注释,按如下代码修改:   注意 /opt/solr_home 需要提前创建。 这样我们的solr collection和索引数据就会在这个目录上
这个在工作中,弄出80G内存映射成磁盘路径eg /tmp/memory,然后如下修改后在这个路径下创建的所有索引库和数据都存在了内存,这是我们工作中的一个应用案例!!!
 
1 <env-entry>
2     <env-entry-name>solr/home</env-entry-name>
3     <!--此路径应该是Tomcat的根目录-->
4     <env-entry-value>/opt/solr_home</env-entry-value>
5     <env-entry-type>java.lang.String</env-entry-type>
6 </env-entry>
 
 
4)、将/opt/soft/solr-5.2.0/server/lib/ext目录下的所有jar包复制到/opt/tomcat7/webapps/solr/WEB-INF/lib目录下。
 
将/opt/soft/solr-5.2.0/dist/solr-dataimporthandler-5.2.0.jar 复制到/opt/tomcat7/webapps/solr/WEB-INF/lib目录
 
solr部署在tomcat下
 
 
  5)、将/opt/soft/solr-5.2.0/server/resources目录下的log4j.properties放到/opt/tomcat7/webapps/solr/WEB-INF/classes目录下,如果classes文件夹不存在就手动新建一个。
 
solr部署在tomcat下
 
 
6 ) 重启tomcat,  查看是否启动成功可以看日志:
 
solr部署在tomcat下
 
或者用命令:
 
solr部署在tomcat下
 
 
然后浏览器访问 solr:  http://hadoop3:8080/solr/
 
 
solr部署在tomcat下
 
 
7) 创建索引库并在界面添加测试数据:
 
 
7.1) 创建索引库壳子:  这里我是用solr5.2的一个example,工作中需要自己定义你自己索引库的schema.xml(里面是你工作业务列的定义声明)
 
 
solr部署在tomcat下
 
7.2) solr界面:
 
solr部署在tomcat下
 
7.3) solr界面 向 new_core索引库添加测试数据:
 
 
 
solr部署在tomcat下
 
 
7.4) 查询结果如下:
 
solr部署在tomcat下
 
7.5) 如下上面案例 new_core索引数据位置:
 
 
solr部署在tomcat下
 
 
8 solr日志位置:
tomcat + solr下,日志看两个地方: 以我上面安装案例为例
1  /opt/tomcat7/bin/logs/solr.log   solr的日志
2  /opt/tomcat7/logs/catalina.out查看细节信息 比如tomcat重启后加载solr索引库信息
  /opt/tomcat7/logs/catalina.2016-04-10.log  看tomcat启动是否正常日志 
 
9 在一个节点上安装tomcat+solr,如果这个机器安装多个tomcat,如何查看我的tomcat是否开启:
  15191是进程号
[root@hadoop3 ~]# ps -ef|grep tomcat
root     15191     1  0 08:35 ?        00:02:07 /opt/jdk1.7/bin/java -Djava.util.logging.config.file=/opt/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat7/endorsed -classpath /opt/tomcat7/bin/bootstrap.jar:/opt/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat7 -Dcatalina.home=/opt/tomcat7 -Djava.io.tmpdir=/opt/tomcat7/temp org.apache.catalina.startup.Bootstrap start
root     19063 18796  0 20:19 pts/1    00:00:00 grep tomcat
 
或者用:
# netstat -ntlp  查看你启动的端口是否开启了    n- numic  l-listen  p-program  t-topic
tcp        0      0 ::ffff:172.16.251.113:8031  :::*                        LISTEN      3722/java           
tcp        0      0 ::ffff:172.16.251.113:8032  :::*                        LISTEN      3722/java           
tcp        0      0 ::ffff:172.16.251.113:8033  :::*                        LISTEN      3722/java           
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      15191/java          
tcp        0      0 :::2181                     :::*                        LISTEN      7228/java           
tcp        0      0 :::8009                     :::*                        LISTEN      15191/java          
tcp        0      0 :::3306                     :::*                        LISTEN      2238/mysqld         
tcp        0      0 :::8080                     :::*                        LISTEN      15191/java
 
 
或者 # jps -l     l-full package name for application
19101 sun.tools.jps.Jps
7228 org.apache.hadoop.hbase.zookeeper.HQuorumPeer
15191 org.apache.catalina.startup.Bootstrap
3396 org.apache.hadoop.hdfs.server.datanode.DataNode
3583 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode
3307 org.apache.hadoop.hdfs.server.namenode.NameNode
3722 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
 
或者 # jps -v   :  the arguments passed to the JVM
7228 HQuorumPeer -Dproc_zookeeper -XX:OnOutOfMemoryError=kill -9 %p -Xmx1000m -XX:+UseConcMarkSweepGC -Dhbase.log.dir=/opt/hbase-0.98.12/bin/../logs -Dhbase.log.file=hbase-root-zookeeper-hadoop3.log -Dhbase.home.dir=/opt/hbase-0.98.12/bin/.. -Dhbase.id.str=root -Dhbase.root.logger=INFO,RFA -Dhbase.security.logger=INFO,RFAS
15191 Bootstrap -Djava.util.logging.config.file=/opt/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat7/endorsed -Dcatalina.base=/opt/tomcat7 -Dcatalina.home=/opt/tomcat7 -Djava.io.tmpdir=/opt/tomcat7/temp
 
或者  ps -ef | grep tomcat:
[root@hadoop3 ~]# ps -ef | grep tomcat
root     15191     1  0 09:16 ?        00:02:17 /opt/jdk1.7/bin/java -Djava.util.logging.config.file=/opt/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat7/endorsed -classpath /opt/tomcat7/bin/bootstrap.jar:/opt/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat7 -Dcatalina.home=/opt/tomcat7 -Djava.io.tmpdir=/opt/tomcat7/temp org.apache.catalina.startup.Bootstrap start
root     19743 19539  0 22:50 pts/1    00:00:00 grep tomcat
 
 
10  tomcat+ solr下 , 如果 solr索引库很多,如何修改 tomcat 配置文件增加 jvm配置:
 在 tomcat/bin/catalina.sh      cygwin=false前,增加配置:
export JAVA_OPTS="-Xms4096m -Xmx4096m -XX:MaxNewSize=1024m -XX:MaxPermSize=8096m "
 
-Xms: 初始heap大小,即最小内存,CPU高时此值应该大一些
-Xmx: heap最大值,即最大内存
-XX:MaxNewSize 堆中设置新生代最大值 
-XX:MaxPermSize 设定最大内存的永久保存区  永久代(方法区 类信息 静态属性 常量池)
 

相关推荐