本文我們來看一下一個非常常用的搜索引擎——ElasticSearch,關注專欄《破繭成蝶——大資料篇》,查看更多相關的內容~
目錄
一、ElasticSearch的概述
1.1 ElasticSearch的簡介
1.2 ElasticSearch的特點
1.3 同類產品的對比
二、ElasticSearch的安裝
2.1 環境準備
2.2 單機安裝
一、ElasticSearch的概述
1.1 ElasticSearch的簡介
Elasticsearch是一個基于Apache Lucene(TM)的開源搜索引擎,無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫,
1.2 ElasticSearch的特點
1、分布式的實時檔案存盤,每個欄位都被索引并可被搜索,
2、分布式的實時分析搜索引擎——做不規則查詢,
3、可以擴展到上百臺服務器,處理PB級結構化或非結構化資料,
4、Elasticsearch也使用Java開發并使用Lucene作為其核心來實作所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變得簡單,
5、ElasticSearch可以用于全文檢索(全部欄位)、模糊查詢(搜索)、資料分析(提供分析語法,例如聚合)等場合,
1.3 同類產品的對比
1、Solr
Solr源自搜索引擎,側重搜索與全文檢索,資料規模從幾百萬到千萬不等,資料量過億的集群特別少,有可能存在個別系統資料量過億,但這并不是普遍現象(就像Oracle的表里的資料規模有可能超過Hive里一樣,但需要小型機),
2、Hermes
Hermes是一個基于大索引技術的海量資料實時檢索分析平臺,側重資料分析,資料規模從幾億到萬億不等,最小的表也是千萬級別,在騰訊17臺TS5機器,就可以處理每天450億的資料(每條資料1kb左右),資料可以保存一個月之久,
3、Solr與ES的區別
1、Solr利用Zookeeper進行分布式管理,而ElasticSearch自身帶有分布式協調管理功能,
2、Solr支持更多格式的資料,而ElasticSearch僅支持json檔案格式,
3、Solr官方提供的功能更多,而ElasticSearch本身更注重于核心功能,高級功能多有第三方插件提供,
4、Solr在傳統的搜索應用中表現好于Elasticsearch,但在處理實時搜索應用時效率明顯低于Elasticsearch,
二、ElasticSearch的安裝
2.1 環境準備
1、首先確保已經安裝了jdk1.8

2、新建普通用戶
adduser es
passwd es
2.2 單機安裝
1、將下載好的安裝包上傳到服務器并解壓
[root@master es]# pwd
/opt/software/es
[root@master es]# tar -zxvf elasticsearch-6.3.1.tar.gz -C ../../modules/

2、去到es的bin目錄下,使用如下命令啟動es
[root@master bin]# ./elasticsearch
發現啟動報錯,如下所示:
[root@master bin]# ./elasticsearch
[2021-06-01T08:57:13,672][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.3.1.jar:6.3.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.3.1.jar:6.3.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.3.1.jar:6.3.1]
... 6 more
報錯資訊顯示es不能使用root用戶啟動,故而切換到先前創建的普通用戶,重新執行啟動命令發現報錯如下:

權限禁止的錯誤,需要更改目錄的所屬用戶和用戶組,如下所示:
[root@master modules]# pwd
/opt/modules
[root@master modules]# chown -R es:es ./elasticsearch-6.3.1
切換到普通用戶下再次啟動,出現下面的界面說明啟動成功:

也可以如下命令后臺運行:
./elasticsearch -d
3、修改組態檔,配置瀏覽器訪問,
(1)修改組態檔
[root@master config]# vim elasticsearch.yml

(2)啟動發現如下問題

修改對應的組態檔:
vim /etc/security/limits.conf
* hard nofile 65536
* soft nofile 131072
* hard nproc 4096
* soft nproc 2048
其中,nofile表示打開檔案的最大數目,noproc表示行程的最大數目,soft指的是當前系統生效的設定值,hard表明系統中所能設定的最大值,
vim /etc/sysctl.conf
vm.max_map_count=655360
fs.file-max=655360
使用如下命令使之生效:
sysctl -p
(3)再次啟動,出現如下界面說明啟動成功,

以上就是本文的所有內容,比較簡單,你們在此程序中遇到了什么問題,歡迎留言,讓我看看你們都遇到了哪些問題~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286247.html
標籤:其他
