Solr是一個企業級搜索服務器,對外提供Web-Service接口,用戶可以通過http請求,向搜索引擎提交xml或者json格式的數據,生成索引;然后可以通過http get請求查找,獲取返回的xml或者json等多種格式的數據。
首先去官網下載solr安裝包,網址是:https://lucene.apache.org/solr/ 進入后單擊導航欄的DOWNLOAD按鈕,稍等幾秒頁面會自動跳轉至鏡像選擇頁面,選擇相應的服務器即可,比如此時我的最終網址為:http://mirror.bit.edu.cn/apache/lucene/solr/5.4.1/當然我們要下載其他版本直接將后面的5.1.4目錄去掉,訪問上一級即可,這時候就可以選擇相應的版本了,我這里選擇solr 5.2.1的版本配置,這里我下載solr-5.2.1.tgz安裝包
下載完之后上傳到服務器指定目錄,安裝solr的前提是必須配置zookeeper,當然包括一系列的主機名網絡配置等等,在配置好zookeeper的前提下,另外要關閉防火牆,一定要3台機器都先啟動zookeeper服務,這里三台主機分別為:hadoopha,hadoop1,hadoop2
做好准備工作后就可以開始安裝了,進入solr安裝包所在的目錄,執行命令提取安裝腳本:
tar xzf solr-5.2.1.tgz solr-5.2.1/bin/install_solr_service.sh --strip-components=2
釋放完腳本之后開始執行安裝
./install_solr_service.sh solr-5.2.1.tgz -i /opt -d /var/solr -u solr -s solr -p 8983
其中參數的意義-i代表安裝的目錄,默認為/opt;-d指定solr寫文件的目錄,包括索引、日志、初始配置等,默認為/var/solr;-u指定solr文件和進程所屬用戶,默認為solr,在安裝過程中腳本會自動創建solr賬號;-s指定創建到系統服務的名稱,默認是solr,也就是/etc/init.d/solr可以用service來啟動;-p指定服務的監聽端口默認為8983。可以看出上面指定的參數都是默認所以安裝命令可以等效為:
./install_solr_service.sh solr-5.2.1.tgz
稍微等待安裝成功服務就自動啟動了,接下來修改配置文件
vim /var/solr/solr.in.sh
將SOLR_JAVA_MEM前的#去掉,默認為:SOLR_JAVA_MEM="-Xms512m -Xmx512m",這個根據自己計算機的硬件配置進行設置,我這里虛擬機內存為1G,所以這里直接默認512m沒有修改。
然后同樣的方式配置ZK_HOST="hadoopha:2181,hadoop1:2181,hadoop2:2181"這里指定的是zookeeper所有節點的列表,用英文逗號分隔,如果是為了統一放在zookeeper下的指定節點中,比如/solr下,那么應該寫成:ZK_HOST="hadoopha:2181,hadoop1:2181,hadoop2:2181/solr",到運行的時候這個節點需要自己進行create
然后配置SOLR_HOST="hadoopha"
根據上面的注釋解釋可以知道,當單機測試時默認使用localhost;生產環境中應該使用所在集群中的名稱,因此這里應配置本機的主機名,待會其他兩個節點應該分別填寫hadoop1、hadoop2
到這里就配置完了,保存退出,然后使用命令:/etc/init.d/solr restart啟動solr
然后其他兩個節點進行相同的配置,最終都啟動起來
接下來測試新建一個collection,進入其中任何一台主機,分別執行下面命令:
$ cd /opt/solr/server/scripts/cloud-scripts $ ./zkcli.sh -zkhost localhost:2181 -cmd upconfig -confdir /opt/solr/server/solr/configsets/sample_techproducts_configs/conf -confname test
同樣說明,如果上面指定了zookeeper的地址是/solr,那么-zkhost參數應該寫localhost:2181/solr
好了,執行到這就完成了上傳配置操作,然后新建collection:
curl "http://192.168.1.42:8983/solr/admin/collections?action=CREATE&name=test&numShards=3&replicationFactor=3&maxShardsPerNode=3&collection.configName=test"
或者直接用瀏覽器訪問上面的url就建立好了一個test的collection,幾台節點之間都可以創建副本從而進行同步檢索,可以通過瀏覽器訪問http://192.168.1.42:8983/solr點擊Cloud->Graph可以看到節點的分布情況
到這里Solr集群就配置完畢了,可以用多種方式靈活的添加索引進行檢索等等更多的API可以參考官方wiki:http://wiki.apache.org/solr/