我的Elasticsearch叢集部署總結--大資料搜尋引擎你不得不知

來源:互聯網
上載者:User

標籤:

摘要:世上有三類書籍:1、介紹知識,2、闡述理論,3、工具書;世間也存在兩類知識:1、技術,2、思想。以下是我在部署Elasticsearch叢集時的經驗總結,它們大體屬於第一類知識“techknowledge(技術)”。但其中也穿插一些我個人的理解。敬請指正。
 關鍵詞:Elasticsearch, 搜尋引擎, 叢集, 大資料, Solr, 大資料

 

三類書籍 和 兩類知識:         有一些書是對某一新知識領域的介紹,將此知識領域從頭到尾、從內而外剖開了分析,吸收這些知識主要在於“記憶”,(也有“領會”)。而有一些好書,往往整本書就是在闡述一句或幾句話,一個或數個思想,這些就是這本書最重要的部分,主要在於“領會”。還有一些書可能就像是工具,例如字典,遇到問題去查就好,主要在“尋找”。也有各種類型摻雜的書。這幾類書各有其方向、著重點,閱讀時方法也不盡相同。         對於各種林林總總的技術,無論是它的安裝步驟、使用說明還是其疑難雜症,電子書、在網路中的文章及FAQ中總是會有解決辦法;或者技術它存有尚未解決的問題、待修複的BUG,也大部分能在網上找到答案,(不能找到的就等你來發明和創造了,諾貝爾獎就靠你咯!)。上面這些都屬於“techknowledge(技術)”的範疇,就像第一類或第三類書,主要在於“記憶”或“尋找”。可是,還有一些思想上的、認知上的東西,網上是很難擷取的,也很不容易表達清楚,它們應該歸類於“Thinking(思想)”,像是第二類書籍,重點在於“領會”。在分享“techknowledge(技術)”的同時,我更希望把這些“Thinking(思想)”分享出來。         以下是我在部署Elasticsearch叢集時的經驗總結,它們大體屬於第一類知識“techknowledge(技術)”。但其中也穿插一些我個人的理解。敬請指正。   〇、環境配置

伺服器:3台(node1 -> node3)

作業系統:Cent OS 5.6,添加普通使用者deploy

Elasticsearch版本:1.7.1

JDK版本:1.8

 

一、安裝JDK(所有伺服器)

在每台伺服器(node1 -> node3)上安裝JDK,安裝過程略。

以下二至六步可以選取某台伺服器執行。

 

二、安裝Elasticsearch

1、下載elasticsearch-1.7.1.tar.gz

2、解壓:[[email protected] ~]$ tar -xf elasticsearch-1.4.2.tar.gz

 

三、安裝elasticsearch-head外掛程式

 elasticsearch-head是一個elasticsearch的叢集管理工具,它是完全由html5編寫的獨立網頁程式。

1、連網環境,執行下面語句進行安裝:

[[email protected] ~]$ ./elasticsearch-1.7.1/bin/plugin -install mobz/elasticsearch-head

 

2、離線安裝:

[[email protected] ~]$ unzip elasticsearch-head-master.zip

[[email protected] ~]$ mkdir ./elasticsearch-1.7.1/plugins

[[email protected] ~]$ mkdir ./elasticsearch-1.7.1/plugins/head

[[email protected] ~]$ mkdir ./elasticsearch-1.7.1/plugins/head/_site

[[email protected] ~]$ cp -r ~/elasticsearch-head-master/* ./elasticsearch-1.7.1/plugins/head/_site

 

在執行:[[email protected] ~]$ ./elasticsearch-1.7.1/bin/elasticsearch

啟動Elasticsearch後,可以通過訪問:http://node1:9200/_plugin/head/,

可以看到如:

 

四、安裝elasticsearch-sql外掛程式

elasticsearch-sql外掛程式可以做到:Query elasticsearch using familiar SQL syntax. You can also use ES functions in SQL.

執行下面語句進行安裝:

[[email protected] ~]$ ./bin/plugin -u https://github.com/NLPchina/elasticsearch-sql/releases/download/1.3.5/elasticsearch-sql-1.3.5.zip --install sql

在啟動Elasticsearch後,可以通過訪問:http://localhost:9200/_plugin/sql/,

可以看到如:

看到這個介面你也能想像到它是做什麼的了吧?更多的資訊可以去 https://github.com/NLPchina/elasticsearch-sql 擷取,當然不能通過elasticsearch-sql把elasticsearch當關係型資料庫用,但畢竟elasticsearch的查詢語句不如solr那般簡潔,所以對於熟悉sql的朋友,這樣拼sql語句也是很方便的吧。此工具的開發人員真是體貼。

 

五、安裝elasticsearch-Bigdesk外掛程式

bigdesk是elasticsearch的一個叢集監控工具,可以通過它來查看es叢集的各種狀態,如:cpu、記憶體使用量情況,索引資料、搜尋情況,http串連數等。

1、連網環境

[[email protected] ~]$ ./bin/plugin -install lukas-vlcek/bigdesk

在啟動Elasticsearch後,可以通過訪問:http://node1:9200/_plugin/bigdesk/,

可以看到如:

 

這個外掛程式使得elasticsearch太直觀了,資料在哪、怎麼變動的都顯示的一清二楚,大讚!為啥Solr沒有這樣的東東呢?

 

六、安裝elasticsearch-servicewrapper外掛程式

elasticsearch-servicewrapper外掛程式是Elasticsearch的服務化外掛程式。

在https://github.com/elasticsearch/elasticsearch-servicewrapper下載該外掛程式後,解壓縮。將service目錄拷貝到elasticsearch目錄的bin目錄下。

而後,可以通過執行以下語句安裝、啟動、停止Elasticsearch。(先不要執行)

[[email protected] service]# sh elasticsearch install(Must be root to perform this action.)

[[email protected] service]# sh elasticsearch start

[[email protected] service]# sh elasticsearch stop

這個外掛程式也是實用的不要不要的。沒有此外掛程式,有多少人還要寫一個指令碼來開機啟動啊。需要的請舉手!

 

七、將配置好的Elasticsearch拷貝到各伺服器

在一台伺服器上執行完成步驟二到步驟七後,得到最終的elasticsearch-1.7.1檔案夾。將此檔案夾打包並scp拷貝到各伺服器。

 

八、配置Elasticsearch叢集

在各伺服器(node1 -> node3)中。

執行下面語句對設定檔elasticsearch.yml中的內容進行修改:

[[email protected] ~]$ vim elasticsearch-1.7.1/config/elasticsearch.yml

修改elasticsearch.yml後的部分檔案內容:

################################### Cluster ###################################

 

# Cluster name identifies your cluster for auto-discovery. If you‘re running

# multiple clusters on the same network, make sure you‘re using unique names.

#

cluster.name: elasticsearch_deploy

  

#################################### Node #####################################

 

# Node names are generated dynamically on startup, so you‘re relieved

# from configuring them manually. You can tie this node to a specific name:

#

node.name: "node196"

 

九、啟動Elasticsearch叢集

可以通過執行sh elasticsearch start或./elasticsearch語句啟動Elasticsearch。

也可以在通過執行[[email protected] service]# sh elasticsearch install後,通過執行:[[email protected] service]# chmod 777  /home/deploy/elasticsearch-1.7.1/bin/service/elasticsearch,分配給elasticsearch執行許可權。執行[[email protected] service]# /etc/init.d/elasticsearch start啟動Elasticsearch服務。而後就可以執行[[email protected] service]# service elasticsearch start來啟動Elasticsearch了。系統reboot後也能開機啟動。

在所有伺服器(node1 -> node3)上的Elasticsearch配置相同的cluster.name後,依次啟動各伺服器上的Elasticsearch,便可以通過bigdesk查看該叢集下的所有node狀態。叢集啟動結束。

 

十、Elasticsearch叢集功能測試

可以在head頁面建立索引、刪除索引、資料瀏覽、查詢等操作,建立索引時需要設定分區數、副本數,可以在bigdesk頁面進行分區及副本的查看。

資料均儲存於elasticsearch-1.7.1/data目錄下,以cluster.name進行分目錄存放。說明了兩個cluster.name的儲存方式。

 

 

我們對已啟動的(node1 -> node3)上的Elasticsearch進行監控。下面圖1 -> 圖4是當叢集中一個node重啟時,叢集內資料複製移動的過程。索引的分區數為5,副本數為1。

            

 

圖1: 三個node穩定後                                                         圖2: 關閉一個node196

 

  

         

 

圖3: 兩個node穩定後                                              圖4: 啟動node196,恢複三個node穩定後

 

 

可以通過上面的操作和形象的圖形,看到宕機一個對這個叢集真是一點關係都沒有,資料在各伺服器間自如流動、分布,各伺服器並無主次之分。

 

Solr我也用過很久,我個人感覺,Elasticsearch比Solr好就好在有那麼多好用的外掛程式可以用,即有形象直觀的顯示,又有方便實用的工具,真是感謝這些開源貢獻者們,沒有你們就沒有這麼一個好用的搜尋引擎Elasticsearch了,很多的公司業務也便無法開展了!當然Elasticsearch目前也有不少亟需解決的問題,以後有空再聊。

 最近關於大資料分析我有很多的感悟啊。有關於搜尋引擎的,有關於分布式儲存的,還有關於分布式任務的。有時間再分享給大家。歡迎大家指正!:) 明天就是十一長假後的第一天班啦!加油吧 王安琪!



來自王安琪 

我的Elasticsearch叢集部署總結--大資料搜尋引擎你不得不知

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.