本章内容概述
1、Linux環境安裝Elasticsearch
2、安裝Elasticsearch問題解決
3、通路Elasticsearch
4、9200和9300端口
1、Linux環境安裝Elasticsearch
1.1 安裝JDK環境變量
安裝Elasticsearch唯一的要求是安裝JDK8+ (如果之前已經安裝,請忽略)
1、檢查一下系統中的jdk版本
[[email protected] ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
2、檢視目前Linux系統是否已經安裝java
[[email protected] ~]# rpm -qa | grep java
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.4.el7_5.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
java-1.7.0-openjdk-1.7.0.191-2.6.15.4.el7_5.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.181-3.b13.el7_5.x86_64
tzdata-java-2018e-3.el7.noarch
3、解除安裝openjdk
[[email protected] ~]# rpm -e --nodeps tzdata-java-2018e-3.el7.noarch
[[email protected] ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.4.el7_5.x86_64
[[email protected] ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.4.el7_5.x86_64
[[email protected] ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
[[email protected] ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-3.b13.el7_5.x86_64
或者使用
[[email protected] ~]# yum remove *openjdk*
之後再次輸入rpm -qa | grep java 檢視解除安裝情況:
[[email protected] ~]# rpm -qa | grep java
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
4、首先到jdk官網上下載下傳你想要的jdk版本,下載下傳完成之後将需要安裝的jdk安裝包放到Linux系統指定的檔案夾下
注:可以通過SSH Secure 或 sftp上傳到/usr/local目錄下
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-U2Xm4AKx-1617846048345)(images/10_上傳jdk到虛拟機.png)]
5、解壓jdk到/usr/local下
tar –zxvf jdk-8u181-linux-x64.tar.gz –C /usr/local
6、配置jdk環境變量,打開/etc/profile配置檔案,将下面配置拷貝進去
vim /etc/profile
添加如下内容:JAVA_HOME根據實際目錄來
JAVA_HOME=/usr/local/jdk1.8.0_181
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
7、重新加載/etc/profile配置檔案 source /etc/profile
8、檢視安裝情況
[[email protected] local]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
1.2 安裝Elasticsearch
1、通過ElasticSearch官網網站下載下傳最新版本的ElasticSearch
網址: https://www.elastic.co/cn/downloads/
目前最新版是2019年4月11日釋出的7.0.0,選擇Linux版本下
[]
2、上傳ElasticSearch到Linux的usr/local目錄下
注意:linux安裝記憶體建議1g記憶體以上
3、解壓elasticsearch到usr/local目錄
tar -zxvf elasticsearch-7.0.0.tar.gz
4、打開安裝目錄下的config檔案夾,修改elasticsearch.yml
vim elasticsearch.yml
network.host: 192.168.34.64
http.port: 9200
5、進入安裝目錄的bin目錄,運作ElasticSearch
./elasticsearch
6、如果按照目前的方式運作,肯定報錯,接下來我們看下問題處理;
2、安裝Elasticsearch問題解決
2.1 報錯1: can not run elasticsearch as root
原因: 從字面意思就可以得出結論: 不能讓root使用者來運作elasticsearch
解決方案:
因為安全問題elasticsearch 不讓用root使用者直接運作,是以要建立新使用者
1.建立一個分組
groupadd esgroup
2.建立新使用者,指明所屬組,并且賦予登入密碼
useradd esuser1 -g esgroup -p 123456
3.賦予新使用者操作ElasticSearch檔案夾及所屬檔案的權限
chown -R esuser1:esgroup elasticsearch-7.0.0
注:如果想要如上指令執行成功,需要位于該目錄的上一級目錄,比如我的是: local目錄
否則會報錯:chown: cannot access ‘elasticsearch-7.0.0’: No such file or directory
4.切換新使用者
su esuser1
5.進入安裝目錄的bin目錄,運作ElasticSearch
./elasticsearch
6.運作之後發下如下問題:
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts,
discovery.seed_providers, cluster.initial_master_nodes] must be configured
2.2 報錯2: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因:最大虛拟記憶體區域65530太低,至少增加到262144
解決方案:
切換到root使用者
修改配置檔案: vim /etc/sysctl.conf
修改虛拟記憶體: vm.max_map_count=655360 把這句話加入進去
加載系統參數: sysctl -p
2.3 報錯3: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
原因:每個程序最大同時打開檔案數太小
解決方案:
切換到root使用者
修改配置檔案: vim /etc/security/limits.conf
加入如下配置:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
重新開機伺服器再次啟動
shutdown -r now / reboot
2.4 報錯4: the default discovery settings are unsuitable for production use;
原因: 預設的設定不适合生産使用;
解決方案:
切換到root使用者
修改配置檔案 vim /usr/local/elasticsearch-7.0.0/config/elasticsearch.yml
除去前面的#, #cluster.initial_master_nodes: ["node-1", "node-2"]
查找ES程序号 ps -ef | grep elastic
殺掉ES程序 kill -9 端口号
把目錄切換到elasticsearch的bin目錄下,然後執行下面的指令 sh elasticsearch -d
3、通路Elasticsearch
1、關閉防火牆 systemctl stop firewalld.service
2、通路http://ip:9200
3、背景啟動 ./elasticsearch -d
4、9200和9300端口
9200作為Http協定,主要用于外部通訊
9300作為Tcp協定,jar之間就是通過tcp協定通訊
ES叢集之間是通過9300進行通訊