您的位置:首页 > 运维架构 > Tomcat

实现Solr索引数据存放到HDFS下

2015-09-24 13:50 561 查看
软件准备:

1. apache-tomcat-8.0.26.tar.gz

2.solr-4.5.1.zip

3.Hadoop-2.5.1

运行环境:

虚拟机下的CentOS 7 64位

配置前提条件:默认安装好了Hadoop(我安装的环境为伪分布安装)

注:请确认hadoop-2.5.1/etc/hadoop下的hdfs-site.xml增加了以下内容

<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
一、安装Solr

1.在linux下解压apache-tomcat-8.0.26.tar.gz

tar -zxvf apache-tomcat-8.0.26.tar.gz


2.windows下解压solr-4.5.1.zip并将${solr_home}\solr-4.5.1\example\webapps下的solr.war上传到apache-tomcat-8.0.26的webapps文件夹下

3.linux下解压solr.war

两种方式:

a) 

uzip solr.war
b)直接运行tomcat

4.在linux的${tomcat_home}\webapps 下创建solr_home文件夹(可自定义文件夹名及位置,之后配置需要用到)

5.将windows下的${solr_home}\solr-4.5.1\example\solr文件夹中的所有内容上传到solr_home文件夹中

6.linux下进入${tomcat_home}\conf 修改server.xml文件

<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true">

<span style="color:#ff0000;"><strong><!--虚拟目录安装-->
<Context path="/solr" docBase="/home/hadoop/tomcats/tomcat0/webapps/solr.war" debug="0" privileged="true">
<Environment name="solr/home" type="java.lang.String" value="/home/hadoop/tomcats/tomcat0/webapps/solr_home" override="true" />
</Context></strong></span>

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />

</Host>


注:红色部分为所要添加的内容

path:指定访问该Web应用的名称,如localhost:8080/solr

      docBase:指定Web应用的文件路径;如果是war包,必须加上后缀

      下面的<Environment>节点就是设置solr的用户目录,value为第5步的路劲

7.将windows下的${solr_home}\solr-4.5.1\example\lib\ext
的内容全部上传到${tomcat_home}\webapps\solr\WEB-INF\lib 下

8.修改solr_home文件夹中collection1/conf
下的solrconfig.xml

a)替换原有directoryFactory配置为如下 

<directoryFactory name="DirectoryFactory" class="solr.<span style="color:#ff0000;">HdfsDirectoryFactory</span>">
<span style="color:#ff0000;"><str name="solr.hdfs.home">hdfs://172.16.43.10:9000/solr</str></span>
<bool name="solr.hdfs.blockcache.enabled">true</bool>
<int name="solr.hdfs.blockcache.slab.count">1</int>
<bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool>
<int name="solr.hdfs.blockcache.blocksperbank">16384</int>
<bool name="solr.hdfs.blockcache.read.enabled">true</bool>
<bool name="solr.hdfs.blockcache.write.enabled">true</bool>
<bool name="solr.hdfs.nrtcachingdirectory.enable">true</bool>
<int name="solr.hdfs.nrtcachingdirectory.maxmergesizemb">16</int>
<int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int>
</directoryFactory>
注:solr.hdfs.home 为你所安装的Hadoop的HDFS的访问路劲
b)替换原有lockType为如下:

<lockType>${solr.lock.type:hdfs}</lockType>
9.从Hadoop-2.5.1的share文件夹下分别得到

hadoop-common-2.5.1.jar(share/hadoop/common)、hadoop-hdfs-2.5.1.jar(share/hadoop/hdfs)、hadoop-auth-2.5.1.jar(share/hadoop/common/lib)、hadoop-annotations-2.5.1.jar(share/hadoop/common/lib)、commons-collections-3.2.1.jar(share\hadoop\common\lib)并下载protobuf-java-2.5.0.jar包

10.进入${tomcat_home}/webapps/solr/WEB-INF/lib 下删除hadoop-*.jar、protobuf-java-*.jar

rm hadoop-*.jar
rm protobuf-java-*.jar
11.将第9步得到的所有jar包上传到该文件夹下

12.启动tomcat,即可访问solr



注:参考文章 http://www.cnblogs.com/lucas-yu/articles/3399596.html 、http://eksliang.iteye.com/blog/2096478
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  solr tomcat 安装 hdfs 索引