日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蛋疼的ElasticSearch(一)之安装ElasticSearch

發(fā)布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蛋疼的ElasticSearch(一)之安装ElasticSearch 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

###Interesting things

本周的計劃暫時這樣子的: 1.學習Solr和ElasticSearch 2.深入學習SpringBoot 3.了解日志系統(tǒng)的實現

###What did you do today ####先入為主 ElasticSearch是什么?百度詞條是這樣解釋的。

ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。ElasticSearch是用java開發(fā)的,并作為Apache許可條款下的開發(fā)源碼發(fā)布,是當前流行的企業(yè)級搜索引擎。設計用于云計算,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便。

我們建立一個網站或者應用程序,并要添加搜索功能,但是想要完成搜索工作的創(chuàng)建是非常困難的。我們希望搜索解決方案要運行速度快,我們希望能有一個零配置和一個完全免費的搜索模式,我們希望能簡單的使用JSON通過HTTP來索引數據,我們希望我們的搜索服務器始終可用,我們希望能夠從一臺開始并擴展到數百臺,我們要實時搜索,我們要簡單的多租戶,我們希望建立一個云的解決方案。因此我們利用ElasticSearch來解決所有這些問題以及可能出現的更多其他問題。

####安裝

  • 安裝ES之前確保自己的機器配置過java 8環(huán)境。

[root@localhost software]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.zip

  • 好像還沒有安裝wget,那就安裝吧

[root@localhost software]# yum install -y wget

  • 下載ES的.tar.gz安裝包

[root@localhost software]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz

  • 解壓到/usr/local/fast/目錄下。

[root@localhost software]# tar -zxvf elasticsearch-6.1.1.tar.gz -C /usr/local/fast/

  • 進入/usr/local/fast/elasticsearch-6.1.1/,啟動elasticsearch后,發(fā)現報錯了。問題所在是我虛擬機分配的內存太小了(256MB),我來修改為512MB。
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory. # An error report file with more information is saved as: # /usr/local/fast/elasticsearch-6.1.1/hs_err_pid1795.log 復制代碼

  • 現在我再次啟動發(fā)現“Cannot allocate memory”問題解決了,但是又拋出一個新的異常。
[2018-01-08T10:59:24,934][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.1.1.jar:6.1.1]at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.1.1.jar:6.1.1] Caused by: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.1.1.jar:6.1.1]... 6 more 復制代碼
  • 新的版本安全級別 提高了,不允許采用root啟動,我們需要添加一個新的用戶。

1.創(chuàng)建elasticsearch用戶組:[root@localhost /]# groupadd elasticsearch 2.創(chuàng)建elasticsearch用戶:[root@localhost elasticsearch-6.1.1]# useradd elasticsearch -g elasticsearch -p elasticsearch 3.更改 elasticsearch-6.1.1文件夾下所有文件的所屬用戶和組分別為elasticsearch、elasticsearch。命令: chown -R elasticsearch.elasticsearch *(chown將指定文件的擁有者,-R代表處理指定目錄以及子目錄下的所有文件)

  • 切換到elasticsearch用戶,然后啟動elasticserach,發(fā)現還是拋出"Unable to access 'path.data' "異常。
Caused by: java.lang.IllegalStateException: Unable to access 'path.data' (/usr/local/fast/elasticsearch-6.1.1/data)at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:70) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:287) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:242) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Security.configure(Security.java:119) ~[elasticsearch-6.1.1.jar:6.1.1]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:207) ~[elasticsearch-6.1.1.jar:6.1.1] 復制代碼
  • 我們還沒有給elasticsearch用戶分配讀寫“/usr/local/fast/elasticsearch-6.1.1/data”的權限。一般來說,普通用戶只有在自己的主目錄下有創(chuàng)建文件或者目錄的權限,我們當前的用戶是elasticsearch,它的主目錄就應該是/home/elasticsearch.我們切換到root用戶,改變elasticsearch-6.1.1這個文件的擁有者和群主。命令:chown -R elasticsearch:elasticsearch elasticsearch-6.1.1(命令格式:chown [選項]... [所有者][:[組]] 文件...)

  • 嘻嘻,我們再次啟動elasticsearch,發(fā)現它又啟動失敗了!

  • 通過觀看log輸出,我們發(fā)現拋出了3個error。

1.[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536],修改/etc/security/limits.conf,添加如下內容,如果不成功的話可以嘗試ulimit -n 65536。

2.[2]: max number of threads [794] for user [elasticsearch] is too low, increase to at least [4096]修改/etc/security/limits.d/20-nproc.conf,具體如下:

接著修改/etc/security/limits.conf,具體如下:

3.[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],修改/etc/sysctl.conf文件,具體如下。修改完成后,輸入sysctl -a 命令。

  • 由于elasticsearch默認分配jvm空間大小為1g,我在這里修改jvm空間分配為512MB

  • 修改config目錄下的elasticsearch.yml配置文件,具體如下:

# Use a descriptive name for your cluster: # cluster.name: es_cmazxiaoma # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # node.name: node-1 ## Set the bind address to a specific IP (IPv4 or IPv6): # network.host: 192.168.12.6 # # Set a custom port for HTTP: # http.port: 9200 # 復制代碼
  • 防火墻添加9200端口策略。

  • 我們再次啟動elasticsearch,發(fā)現已經成功!,如果需要后臺啟動的話,命令:./bin/elasticsearch -d

  • 訪問192.168.12.6:9200,歷經坎坷終于成功了!

###Summary

下一篇講ElasticSearch Head插件。

總結

以上是生活随笔為你收集整理的蛋疼的ElasticSearch(一)之安装ElasticSearch的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。