ElasticSearch的介紹與安裝

    ElasticSearch的介紹與安裝

1. ElasticSearch的介紹

(1)ElasticSearch的趣味歷史

  Shay Banon認爲自己參與Lucene完全是一種偶然,當年他還是一個待業工程師,跟隨自己的新婚妻子來到倫敦,妻子想在倫敦學習做一名廚師,而自己則想爲妻子開發一個方便搜索菜譜的應用,所以才接觸到Lucene。直接使用Lucene構建搜索有很多問題,包含大量重複性的工作,所以Shay便在Lucene的基礎上不斷地進行抽象,讓Java程序嵌入搜索變得更容易,經過一段時間的打磨便誕生了他的第一個開源作品“Compass”,中文即“指南針”的意思。之後,Shay找到了一份面對高性能分佈式開發環境的新工作,在工作中他漸漸發現越來越需要一個易用的、高性能、實時、分佈式搜索服務,於是他決定重寫Compass,將它從一個庫打造成了一個獨立的server,並將其改名爲Elasticsearch。

(2)ElasticSearch的概述

  ElasticSearch是一款基於Apache Lucene構建的開源搜索引擎,它採用Java編寫並使用Lucene構建索引、提供搜索功能,ElasticSearch的目標是讓全文搜索變得簡單,開發者可以通過它簡單明瞭的RestFul API輕鬆地實現搜索功能,而不必去面對Lucene的複雜性。ES能夠輕鬆的進行大規模的橫向擴展,以支撐PB級的結構化和非結構化海量數據的處理。

(3)ElasticSearch與solr的比較

接口
 solr類似於webserver結構
 elasticsearch是rest風格訪問接口
分佈式
 solr:solrCloud solr4.x支持
 elasticsearch:爲分佈式而生
支持風格
 solr:json、xml
 elasticsearch:json

(4)ElasticSearch與MySQL的比較

ElasticSearch的介紹與安裝

2. ElasticSearch的單機版安裝

(1)單機版安裝

前置條件
下載地:https://github.com/elastic/elasticsearch
注意:在安裝集羣之前,保證有jdk並且是1.7以及以上。
安裝步驟
①解壓:

[hadoop hadoop03@~]$ tar zxvf elasticsearch-6.2.0.tar.gz -C /application/

②修改配置文件

#/application/elasticsearch-6.2.0/config/elasticsearch.yml
cluster.name: zzy-application #集羣的名稱
node.name: node-1 #節點名稱
path.data: /home/hadoop/data/elasticsearch-data #數據存儲目錄
path.logs: /home/hadoop/logs/elasticsearch-log #日誌存儲目錄
network.host: 192.168.191.130 #綁定主機

③版本兼容問題

requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER

ElasticSearch的介紹與安裝
表示:centos6.x的內核太低,需要centos7或者升級centos6.x對應的內核至3.5以上。這裏選擇升級centos6.x對應的內核。
#相關操作:

[hadoop hadoop03@~]$more /etc/issue和uname -a #查看linux內核信息

ElasticSearch的介紹與安裝

#升級內核
[hadoop hadoop03@~]$sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
如果出現下圖所示:
ElasticSearch的介紹與安裝
無法在服務器使用curl命令訪問https域名,原因是nss版本有點舊了:
可以使用:

[hadoop hadoop03@~]$yum -y update nss    

#安裝內核

sudo yum --enablerepo=elrepo-kernel install kernel-lt -y

#編輯grub.conf文件,修改Grub引導順序
ElasticSearch的介紹與安裝
#如果出現以下錯誤:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

ElasticSearch的介紹與安裝
#limits.conf
sudo vim /etc/security/limits.conf 添加如下內容:

*   soft    nofile  65536
*   hard    nofile  131072
*   soft    nproc   2048
*   hard    nproc   4096

並註釋:
ElasticSearch的介紹與安裝
如果還有錯誤:

max number of threads [1024] for user [bigdata] is too low, increase to at least [4096]

ElasticSearch的介紹與安裝
#修改配置文件90-nproc.conf
sudo vim /etc/security/limits.d/90-nproc.conf
ElasticSearch的介紹與安裝
#接下來還會有錯誤

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

#修改配置文件/etc/sysctl.conf
ElasticSearch的介紹與安裝
並且生效:sudo sysctl -p
ElasticSearch的介紹與安裝
#最後一個錯誤:

system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

ElasticSearch的介紹與安裝
這是在因爲Centos6不支持SecComp,而ES5.2.0默認bootstrap.system_call_filter爲true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啓動。
#修改elasticsearch配置文件
vim /application/elasticsearch-6.2.0/config/elasticsearch.yml

#在Memory下面
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

ElasticSearch的介紹與安裝

④重啓電腦

⑤啓動ES
[hadoop hadoop03@~]$/application/elasticsearch-6.2.0/bin/elasticsearch -d
最終在http://hadoop03:9200的web界面中出現:
ElasticSearch的介紹與安裝
表示安裝成功~!!!!!

3. ElasticSearch的集羣安裝

這裏需要注意,如果是安裝集羣的話,如果你的Linux每一臺都是出現以上的問題,那麼每一臺電腦都要升級內核,一點要保持所有的節點都能成功啓動單機的ES。
  如何你的節點能夠成功的安裝單機的ES,那麼集羣的安裝非常簡單:只要節點同屬於一個局域網同一網段,而且集羣名稱相同,ES就會自動發現其他節點。
①將單機的版的ES發送的各個節點上:

[hadoop hadoop03@application]$scp -r  elasticsearch-6.2.0 hadoop01:$PWD
[hadoop hadoop03@application]$scp -r  elasticsearch-6.2.0 hadoop02:$PWD

②修改配置文件:
#節點一 hadoop01:
cluster.name: zzy-application
http.port: 9200
network.host: 0.0.0.0
#節點二 hadoop 02:
cluster.name: zzy-application
http.port: 9200
network.host: 0.0.0.0
transport.tcp.port: 19300
#節點三:
cluster.name: bigdata
http.port: 9200
network.host: 0.0.0.0
transport.tcp.port: 29300
③配置完成之後,啓動ES即可:
可以通過ES插件elasticsearch-head查看集羣信息:
ElasticSearch的介紹與安裝
這裏elasticsearch-head是一個Google的插件,下載需要×××,這裏小編直接給大家提供一個,直接放在Google瀏覽器的擴展程序中即可。
下載地址:http://down.51cto.com/data/2458080

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章