solr系列--索引庫儲存在hdfs中
軟體準備:
1.Tomcat
2.solr-5.2.1.tgz
3.hadoop-2.7.2
執行環境
centos7
看以前文件hadoop安裝好
在hadoop-2.7.2/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>
WebHDFS觀念是基於HTTP操作,比如GET、PUT、POST和DELETE,引入Rest介面
REST http的格式為:
http://<HOST>:<HTTP_PORT>/webhdfs/v1/<PATH>? [user.name=<USER>&]op=..
安裝solr(看以前文件)
修改solrhome資料夾中tika/conf 下的solrconfig.xml
替換原有directoryFactory配置為如下
<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">
<str name="solr.hdfs.home">hdfs://172.xx.xx.xx:9000/solr/tika</str>
<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的訪問路勁
替換原有lockType為如下:
<lockType>${solr.lock.type:hdfs}</lockType>
替換dataDir
<dataDir>${solr.data.dir:hdfs://172.xx.xx.xxx:9000/solr/tika/data}</dataDir>
在/apache-tomcat7-solr/webapps/solr/WEB-INF/lib替換jar包:
rm hadoop-*.jar
rm protobuf-java-*.jar
rm -rf htrace-core-3.0.4.jar
在hadoop中share資料夾下分別得到
commons-collections-3.2.2.jar,hadoop-annotations-2.7.2.jar,hadoop-auth-2.7.2.jar,
hadoop-common-2.7.2.jar,hadoop-hdfs-2.7.2.jar,htrace-core-3.1.0-incubating.jar,
protobuf-java-2.5.0.jar
複製到/apache-tomcat7-solr/webapps/solr/WEB-INF/lib中
啟動tomcat,即可訪問solr
http://172.xxx.xx.xxx:28080/solr/