大數據 Solr 4.5.1 with Tomcat6 on CentOS 6.4 x64

=== 2013/11/30 最下方補充更新建立索引資料 ===
=== 2013/11/11 = 經過測試 4.5.1 版裝好也是一樣的哦 ! ===

呦 ! 繼難得總瀏覽量突破5萬後,意外單月瀏覽次數破了 6000

2013年09月:6027 2013年08月:5038
2013年07月:4589 2013年06月:5119
2013年05月:5212 2013年04月:5495
2013年03月:3732 2013年02月:2777
畢竟對於一個無任何正妹火辣照的網站而言,真是個難得的 milestone ~ xDDD

所以這一篇就簡單的記錄一下接著要繼續測試的目標系統了 !

從設計思維探討多層次數位遊戲設計創意激發系統之導入成效 (NSC 102-2511-S-024 -006)

這個計畫預計要先建置出一個搜尋引擎系統,之前試過 Crawzilla (抓抓龍)
據作者可靠消息指出,有個很勵害的版本正準備釋出 ...

不過,既然想要用,總是得先大概瞭解一下可以怎樣用 ... 所以便決定先來試試看了 !

首先,實在是很多很夯的自由軟體工具,特別是繼雲端運算(泡沫化?)後最夯的大數據
但坦白講,那來的那麼多數據啊 ? 至少我自己應該是擠不出啥像樣的大數據 ...
回過頭來,就先來看看要怎樣裝 Solr 這個東西吧 !



再附上新的教學:http://lucene.apache.org/solr/4_4_0/tutorial.html (我也還在研究中)

接著就是在裝好 Cent OS 6.4 x64 後,要先安裝一些東西

=== TomCAT 6 ===

# yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps

檢查一下安裝的套件版本
# rpm -qa java*jdk tomcat6

# rpm -qc tomcat6 | grep -E 'server|users'


接著要先幫 Apche 開 SSL

之前在這篇 " 用 ownCloud 打造無限大的私有雲端硬碟 " 有簡單操作過一次
不過那篇實在是太混亂,想不到後來補充的 " Cent OS 6.4 x86_64 裝 Google Chrome 跟 ownCloud 5.0.10 " 似乎是漏掉了這個動作的說明,所以請先做這個動作

# yum install mod_ssl openssl


接著準備設定一些 SSL 的動作

# openssl genrsa -out kvm.twman.org.key 1024
# openssl req -new -key kvm.twman.org.key -out kvm.twman.org.csr
# openssl x509 -req -days 365 -in kvm.twman.org.csr -signkey kvm.twman.org.key -out kvm.twman.org.crt (這個動作會需要你輸入一些資料)

# cp kvm.twman.org.crt /etc/pki/tls/certs
# cp kvm.twman.org.key /etc/pki/tls/private
# cp kvm.twman.org.csr /etc/pki/tls/private

接著請編輯這個檔案,修正兩個路徑
# vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf


#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

再來則是準備把剛剛安裝好的 TomCAT 給整合到 Apache 裡,新增以下這個檔案

# vi /etc/httpd/conf.d/proxy_ajp.conf

內容為

ProxyPass /tomcat/ ajp://localhost:8009/

到這邊讓你可以直接把 http://localhost:8080 變 http://localhost/tomcat/


或是再新增一行 iptables

iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 80 -j REDIRECT --to-ports 443


如果走 http 會看到這樣的畫面,強制一定要走 https 
不過後來測試 solr 不能這樣 http://localhost/tomcat/solr/ 玩 ! xD

-------------------- 休息一下 -------------------

到這邊,基本上就已經完成整合 Apache SSL + Tomcat 的需求及步驟了,最後是安裝 Solr 

找到一個頗簡潔的說明

Solr 是一個開源的企業級搜索服務器,底層使用易於擴展和修改的Java 來實現。服務器通信使用標准的HTTP 和XML,所以如果使用Solr 了解Java 技術會有用卻不是必須的要求。 Solr 主要特性有:強大的全文檢索功能,高亮顯示檢索結果,動態集群,數據庫接口和電子文檔(Word ,PDF 等)的處理。而且Solr 具有高度的可擴展,支持分布搜索和索引的复制。
講這麼多就是準備建一個最上面提到的計畫資料搜尋引擎啦 !

首先請找個地方下載

# wget http://ftp.twaren.net/Unix/Web/apache/lucene/solr/4.4.0/solr-4.4.0.tgz
# tar -zxf solr-4.4.0.tgz
# cd solr-4.4.0/example
# java -jar start.jar

===== 2013/11/11 = 經過測試 4.5.1 版裝好也是一樣的哦 ! =====

簡單幾個動作就可以讓它啟動 example 了 !

solr會藉由 Jetty (輕量化的Web伺服器與Java Servlet Container)來執行,預設為 port: 8983。

所以直接打 http://localhost:8983/solr/ 就可以打開啦 !

但是配合前面講到的 tomcat6 當然就是要整合一下啦 ? 其實不會太難

Installing Solr instances under Tomcat

但是這邊會有一些問題的是你在網路上找到的大多是 4.3 版 ... 如果你照著做一定會出錯

因為在 cp 的過程時少了一些 jar 等檔案 .... 所以呢 ! 在下載解壓完成(我是下載解壓到/MiT/solr-4.4.0/)後,新建一個資料夾做為你 solr 的主目錄,以我自己為例是使用 /MiT/solr

一樣是把 example 的檔案搬到你想當做主目錄的地方
# mkdir /solr
# cp -R /solr-4.4.0/example/solr/* /solr
# cp -R /solr-4.4.0/dist/solr-4.4.0.war /solr/solr.war

新增這個檔案,內容如下:
# vi /usr/share/tomcat6/conf/Catalina/localhost/solr.xml 

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/solr/solr.war" debug="0" crossContext="true">
    <Environment name="solr/home" type="java.lang.String" value="/solr" override="true"/>
</Context>

最後要再補上這兩個動作 -- 非常重要
# cp /solr-4.4.0/example/lib/ext/*.jar /usr/share/tomcat6/lib/
# cp /solr-4.4.0/example/resources/log4j.properties /usr/share/tomcat6/lib/

# service tomcat6 restart

嗯 ? http://localhost:8080/solr/ 有看到啥嗎 ????

最後附上參考的文章相關連結:

solr4.4在tomcat6下部署

全文檢索伺服器Solr初探

在 CentOS 設置一個 SSL 加密的網頁伺服器

Ubuntu 10 安裝 Tomcat 6 + solr

當然官網的資料更是一定還是要看的

Apache HTTP Server Configuration 

=== 2013/11/30 補充更新建立索引資料 ===

Solr系統建置範例說明 - 中央研究院計算中心 Computing Center, Academia Sinica

其實上面的 " 全文檢索伺服器Solr初探 " 裡面也有簡單提到 ... 不過那是舊版的

Anyway ~ 基本上也沒很難 ... 或許也可能我還不是很熟悉吧 !


在 " solr-4.5.1/example/exampledocs " 裡有很多範例檔 ... 首先來做 index 的則是 .xml 檔

# java -jar post.jar *.xml

FATAL: IOException while posting data: java.net.ConnectException: 連線被拒絕
嗯 ! 會像上圖中那樣爆出這樣的 error ... 這是因為我們是使用 Tomcat 整合了 solr

# java -Durl=http://localhost:8080/solr/update -jar post.jar *.xml

這樣下的話 ~ 狀況就對啦 ! 接著則是要做 .csv 的 index 檔

# curl  http://localhost:8080/solr/update/csv --data-binary @books.csv -H 'Content-type:text/plain; charset=utf-8'

看起來也是很正常哩 !!! 然後試著 search 一下 ....


似乎是真的可以依原本想像的方法來繼續往下做哩 !!!

現在想法很簡單,在分析平台已經差不多後,主要就是要把獲得的分析報告都匯入 solr, 然後這樣就可以快速找到那些樣本是有共同的特性,這時再透過機器學習來做後續測試 !!!