CentOS7 下安裝 Elasticsearch

Rakishly發表於2020-03-20

ElasticSearch是分散式全文搜尋引擎,底層是開源庫 Lucene。但是,你沒法直接用 Lucene,必須自己寫程式碼去呼叫它的介面。es 是 Lucene 的封裝,提供了 REST API 的操作介面,開箱即用。

es 需要 Java 8 環境。如果沒有安裝 Java,請先安裝並且設定正確的環境變數JAVA_HOME。

1、java安裝

檢視系統是否自帶jdk

$ rpm -qa |grep java 
$ rpm -qa |grep jdk

如果有輸出資訊,批量解除安裝系統自帶

$ rpm -qa | grep java | xargs rpm -e --nodeps

如果使用 yum 安裝的 jdk,請使用下面命令解除安裝

$ yum -y remove java-1.8.0-openjdk-headless.x86_64

接下來安裝java8

$ yum install -y java-1.8.0-openjdk.x86_64

然後配置環境變數
用vim開啟 /etc/profile 檔案再最後一行新增以下程式碼

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/ //安裝路徑
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH

這裡的安裝路徑根據你實際的安裝路徑來,不知道實際安裝路徑的可以根據我這樣輸入。

centos7下安裝Elasticsearch

最後

source /etc/profile 

至此設定完成。

2、下載es

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
$ unzip elasticsearch-5.5.1.zip
$ cd elasticsearch-5.5.1/ 
$ ./bin/elasticsearch

有可能出現的錯誤:
1、

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriat
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=’Cannot allocate memory’ (errno=12)

centos7下安裝Elasticsearch
修改jvm

$ vim config/jvm.options
-Xms4g
-Xmx4g

修改為

-Xms512m
-Xmx512m

2、不能用root使用者啟動es
centos7下安裝Elasticsearch

新建一個使用者

$ groupadd end
$ useradd end -g end
$ passwd end
輸入密碼:
$ su end

3、如果是這個錯誤
centos7下安裝Elasticsearch
只需改變elasticsearch資料夾所有者到當前使用者

$ chown -R end:end /usr/local/elasticsearch-5.5.1/

再次執行,如下圖示,表示一切正常。

centos7下安裝Elasticsearch
如果一切正常,Elastic 就會在預設的9200埠執行。這時,開啟另一個命令列視窗,請求該埠,會得到說明資訊。

$ curl localhost:9200
{
  "name" : "oMArTJQ",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "gkon1pwfRFCr6omXIikBBA",
  "version" : {
    "number" : "5.5.1",
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

上面程式碼中,請求9200埠,Elastic 返回一個 JSON 物件,包含當前節點、叢集、版本等資訊。

按下 Ctrl + C,Elastic 就會停止執行。

預設情況下,Elastic 只允許本機訪問,如果需要遠端訪問,可以修改 Elastic 安裝目錄的config/elasticsearch.yml檔案,去掉network.host的註釋,將它的值改成0.0.0.0,然後重新啟動 Elastic。

network.host: 0.0.0.0

上面程式碼中,設成0.0.0.0讓任何人都可以訪問。線上服務不要這樣設定,要設成具體的 IP。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章