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
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啟動失敗的幾種情況及解決