天天看點

Elasticsearch 6.6.2源碼部署

JAVA部署

将jdk-8u161-linux-x64.tar.gz拷入合适位置,或着自己去java官網下你想要的版本,要求是8uxxx序列的,版本需比161高

JAVA官方下載下傳網址

tar -xvf解壓

将解壓後的内容拷到合适位置,本例中使用/usr/lib/jdk

cp -r jdk1.8.0_161/.  /usr/lib/jdk
           

寫入環境變量

sudo vim /etc/profile
           
#set java env
export JAVA_HOME=/usr/lib/jdk
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH
           

使環境變量生效

source /etc/profile
           

配置軟連接配接,部分軟體可能會從/usr/bin目錄下查找Java

sudo update-alternatives --install /usr/bin/java  java  /usr/lib/jdk/bin/java 300
sudo update-alternatives --install /usr/bin/javac  javac  /usr/lib/jdk/bin/javac 300
           

檢視java版本号,判斷部署是否成功

java -version
           
Elasticsearch 6.6.2源碼部署

ES部署

官方部署文檔

官方源碼安裝部署文檔

下載下傳源碼包

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
           

直接curl下速度很慢,這裡建議直接自己翻牆下載下傳後拷進伺服器

将源碼包放置到合适位置,本例中放置于/home

tar -xvf elasticsearch-6.6.2.tar.gz
cd elasticsearch-6.6.2/config
vim elasticsearch.yml
           

修改配置檔案

初始的配置檔案中全部是注釋狀态的,一定要進行設定

最下面兩個帶注釋的項是需要添加的

cluster.name: my-application
 
path.data: /home/esdata/data
 
path.logs: /home/esdata/log
 
network.host: 0.0.0.0
 
http.port: 9200
 
# 是否支援跨域
http.cors.enabled: true
 
# *表示支援所有域名
http.cors.allow-origin: "*"
           

path.data和path.logs是es資料落盤的位置,可以自行調整,本例中使用上述路徑

vim config/jvm.options
           

調整java虛拟機占用的記憶體大小,官方推薦設定為機器記憶體的一半,可以根據實際情況進行調整,比如服務壓力不大就可以不用設定那麼大,另外如果設定的過小的話,CPU的壓力就會高起來

如果服務壓力不大且機器配置允許的話,可以寫1g,本例中寫500m。如果服務壓力較大,請根據實際使用時的CPU壓力自行調整

此配置項應該原本就有,不需要加在後面,如果沒看到就找找看是不是被注釋狀态

-Xms500m
-Xmx500m
           

修改檔案辨別符大小上限

vim /etc/sysctl.conf
           

在最後加上

使配置生效

sysctl -p
           

一樣是修改檔案辨別符

vim /etc/security/limits.conf
           

如果有的話就修改,沒有的話就加上【這個應該是原本就有【預設狀态下可能是注釋着的,你加的這四行得是非注釋狀态

root soft nofile 655370
root hard nofile 655370
* soft nofile 655370
* hard nofile 655370
           

這個配置檔案修改後就會生效,但是在目前連接配接中不會生效,需要重新開一個連接配接,如果是xshell連伺服器的,需要重開一個頁面這樣

如果是直接在伺服器上操作,可以reboot重新開機伺服器

ulimit -n
           

檢視檔案辨別符的配置是否生效

建立elasticsearch使用者

adduser elasticsearch
passwd elasticsearch
           

輸入密碼,自己記住

給予elasticsearch賬号ES相關檔案夾的權限,包括資料存儲的檔案夾,和elasticsearch程式所在檔案夾

chown -R elasticsearch /home/esdata/
chown -R elasticsearch /home/elasticsearch-6.6.2
           

切換到elasticsearch賬号,啟動ES

su elasticsearch
cd /home/elasticsearch-6.6.2
./bin/elasticsearch -d -p pid
           

啟動後會自動在背景運作,并在目前目錄下生成一個名為pid的檔案,裡面記錄着ES程序的pid

使用此指令檢視ES是否正常啟動

curl localhost:9200
           
{
  "name" : "-5ESl62",
  "cluster_name" : "my-application",
  "cluster_uuid" : "yxlA4dNJQPeei9KiUlVc9w",
  "version" : {
    "number" : "6.6.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "3bd3e59",
    "build_date" : "2019-03-06T15:16:26.864148Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
           

看到此資訊,則表示ES服務已經正常啟動

關閉

可以使用此指令直接讀取pid檔案中的程序pid将ES關閉

pkill -F pid
           

檢視ES服務的運作狀态

ps aux | grep elasticsearch
           
root     10700  0.0  0.0  63048   460 pts/1    S    Aug11   0:00 su elasticsearch
root     11939  0.0  0.1  63048  2484 pts/4    S    Aug11   0:00 su elasticsearch
elastic+ 15632  0.0  0.0  14428   996 pts/4    S+   14:52   0:00 grep --color=auto elasticsearch
           

如果顯示這些,表示ES服務已經被關掉

如果沒有被關掉可以手動kill -9殺掉

開機自啟

使用root權限

在/etc/systemd/system目錄下建立一個elasticsearch.service檔案

cd /etc/systemd/system
vim elasticsearch.service
           

寫入以下内容,其中

User 根據你建立的給ES的賬号自行調整

ExecStart 根據你的ES檔案目錄自行調整

[Unit]
Description=elasticsearch
[Service]
User=elasticsearch
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/home/elasticsearch-6.6.2/bin/elasticsearch
[Install]
WantedBy=multi-user.target
           

開啟開機自啟動

systemctl enable elasticsearch
           

啟動ES【現在可以用root賬号啟動了】

systemctl start elasticsearch
           

參考文檔

Ubuntu 16.04下Java環境安裝與配置

ES安裝部署

CentOS 7 elasticsearch service 開機自啟

擴充閱讀

總結—elasticsearch啟動失敗的幾種情況及解決