1. 程式人生 > 其它 >Linux centos7 以tar包方式安裝elasticsearch 7.8

Linux centos7 以tar包方式安裝elasticsearch 7.8

Linux centos7 以tar包方式安裝elasticsearch 7.8

1. 官網下載elasticsearch

https://www.elastic.co/cn/downloads/elasticsearch

我下載的是最新穩定版本7.0.0

wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz

2. 解壓檔案, 拷貝到安裝目錄

tar -xzvfelasticsearch 解壓縮,並將解壓縮的檔案剪下到/usr/local/目錄下

3. 進入config資料夾下編輯elasticsearch.yml

叢集模式下,放開cluster.name註釋,單機模式下,放開node.name

資料儲存和日誌儲存路徑放開註釋

網路設定 設定ip限制,埠設定,跨越設定i

4. 配置完成後進入bin目錄執行啟動指令碼elasticsearch

前臺啟動 ./elasticsearch

後臺啟動 ./elasticsearch -d

5. 啟動過程中遇到的坑

1)root啟動時,elasticsearch不能以root使用者啟動

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

處理方法,建立非root使用者,使用非root使用者啟動

a)adduser es建立使用者es

b)passwdes設定es密碼,

c)設定檔案許可權 chown -R es/opt/supp_app/elasticsearch-6.4.0

d)visudo.設定使用者對命令的執行許可權配置同root

2)JDK版本要求最低版本1.8,在elasticsearch中設定JAVA_HOME CATALINA_HOME和PATH等資訊

3)elasticsearch.yml配置有問題,保證配置的檔案的key後面直接跟著冒號,冒號後空格一位,再輸入對應的value

4)elasticsearch使用者擁有的可建立檔案描述的許可權太低,至少需要65536,

處理辦法:#切換到root使用者修改

vim/etc/security/limits.conf# 在最後面追加下面內容

*** hard nofile65536

*** soft nofile65536#***是啟動ES的使用者

5)max_map_count檔案包含限制一個程序可以擁有的VMA(虛擬記憶體區域)的數量

處理辦法:#切換到root使用者修改

vim/etc/sysctl.conf # 在最後面追加下面內容

vm.max_map_count=262144

執行sysctl -p

  1. 叢集啟動時,設定master節點列表(用逗號分隔,目前單機所以只配置了一個),master節點後續會解釋


    master節點列表
  2. 配置ES啟動JVM引數(謹慎操作,本人買不起記憶體所以配置一下)


    虛擬機器基礎引數配置
  3. 記得儲存配置

五、 啟動ES

  1. 啟動bin目錄下的elasticsearch報錯(這是ES的一種安全措施,不讓用root使用者)
[root@localhost bin]#./elasticsearchfuture versions of Elasticsearch will require Java11;your Java version from[/usr/local/java/jdk1.8.0_201/jre]does not meetthisrequirement[2019-07-11T22:47:02,963][WARN][o.e.b.ElasticsearchUncaughtExceptionHandler][node-1]uncaught exceptioninthread[main]org.elasticsearch.bootstrap.StartupException:java.lang.RuntimeException:can not run elasticsearchasroot at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163)~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)~[elasticsearch-cli-7.2.0.jar:7.2.0]at org.elasticsearch.cli.Command.main(Command.java:90)~[elasticsearch-cli-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)~[elasticsearch-7.2.0.jar:7.2.0]Causedby:java.lang.RuntimeException:can not run elasticsearchasroot at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105)~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172)~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349)~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)~[elasticsearch-7.2.0.jar:7.2.0]...6more
  1. 建立使用者並賦予es安裝目錄許可權
建立一個esroot使用者並設定初始密碼useradd -c 'ES user' -d /home/esroot esrootpasswd esroot將es安裝目錄屬主許可權改為esroot使用者chown -R esroot <es安裝目錄>切換使用者到esrootsu esroot
  1. 使用esroot使用者重啟es(咦,又來錯,沒關係繼續)
ERROR:[2] bootstrap checks failed[1]:initial heap size [268435456] not equal to maximum heap size [524288000];this can cause resize pauses and prevents mlockall from locking the entire heap[2]:max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]
  • 錯誤解釋:

錯誤1:本文章中第四點第6條中,我的JVM配置的Xms、Xmx不一致,設定為一致即可;

錯誤2:官方原話如下(意思就是說要設定系統引數vm.max_map_count=262144):
地址為:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
The vm.max_map_count kernel setting needs to be set to at least 262144 for production use. Depending on your platform:

  • Linux
    The vm.max_map_count setting should be set permanently in /etc/sysctl.conf:
    To apply the setting on a live system type: sysctl -w vm.max_map_count=262144

$ grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144

  1. 切換到root使用者下,解決三中的錯誤二
檢視vm.max_map_count屬性值,如果沒有新增則在/etc/sysctl.conf檔案新增vm.max_map_count = 262144grep vm.max_map_count /etc/sysctl.conf或者執行新增臨時變數sysctl -w vm.max_map_count=262144

六、 再次啟動ES,然後測試一下,訪問http://localhost:9200/

[root@localhost~]#./elasticsearch[root@localhost~]# curl http://localhost:9200/{"name":"node-1","cluster_name":"my-application","cluster_uuid":"QqRQ8cMCTAexMVKTTY4PpA","version":{"number":"7.2.0","build_flavor":"default","build_type":"tar","build_hash":"508c38a","build_date":"2019-06-20T15:54:18.811730Z","build_snapshot":false,"lucene_version":"8.0.0","minimum_wire_compatibility_version":"6.8.0","minimum_index_compatibility_version":"6.0.0-beta1"},"tagline":"You Know, for Search"}

後臺啟動方式加-d,如:./elasticsearch -d
vi /etc/rc.local
/usr/bin/su es -c "/workspace/elasticsearch-7.8.0/bin/elasticsearch -d"

七、 祝學習愉快!



作者:單名一個衝
連結:https://www.jianshu.com/p/2071ddf57996
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。