目錄
第一章 Elasticsearch-7.8.0單機安裝
第二章 Elasticsearch-7.8.0集群基于Centos7
第三章 Elasticsearch-7.8.0通過Docker方式安裝
第一章 Elasticsearch-7.8.0單機安裝
Elasticsearch安裝單機、Kibana安裝單機
適用于mac、window、linux單機測試
1.1 安裝 Elasticsearch-7.8.0
1.1.1 安裝包下載
下載地址:https://www.elastic.co/downloads/past-releases#elasticsearch
1.1.2 解壓安裝ElasticSearch
- 解壓elasticsearch-7.8.0-darwin-x86_64.tar.gz到/usr/local/modules目錄下
? ~ tar -zxvf /opt/software/elasticsearch-7.8.0-darwin-x86_64.tar.gz -C /opt/module/
- 啟動ElasticSearch服務(wù)
? ~ ./usr/local/modules/elasticsearch/elasticsearch-7.8.0/bin/elasticsearch
- 訪問: http://localhost:9200/
1.2 安裝Kibana-7.8.0
Kibana是一個用于探索、可視化和分享ES數(shù)據(jù)的客戶端。
1.2.1 安裝包下載
下載地址:https://www.elastic.co/downloads/past-releases#kibana
1.2.2 解壓安裝Kibana
- 解壓kibana-7.8.0-darwin-x86_64.tar.gz到/usr/local/modules目錄下
? ~ mv kibana-7.8.0-darwin-x86_64/ kibana-7.8.0
- 修改相關(guān)配置連接Elasticsearch
? ~ vim /usr/local/modules/elasticsearch/kibana-7.8.0/config/kibana.yml
server.host: "localhost"
server.port: 5601
elasticsearch.hosts: ["http://localhost:9200"]
# 中文
i18n.locale: "zh-CN"
1.2.3 Kibana啟動
- 啟動Kibana
? ~ /usr/local/modules/elasticsearch/kibana-7.8.0/bin/kibana
# 后臺啟動
? ~ nohup ? ~ /bin/kibana &
- 瀏覽器訪問: http://localhost:5601/app/kibana#/dev_tools/console
1.3 安裝elasticsearch-analysis-ik-7.8.0
Elasticsearch-Analysis-IK是一個專門為Elasticsearch設(shè)計的中文分詞器插件,它將Lucene IK分詞器集成到Elasticsearch中,并支持自定義詞典。
-
下載解壓:https://github.com/infinilabs/analysis-ik/tags
解壓elasticsearch-analysis-ik-7.8.0 到
/usr/local/modules/elasticsearch/elasticsearch-7.8.0/plugins/ik
目錄下 -
重新啟動Elasticsearch
./usr/local/modules/elasticsearch/elasticsearch-7.8.0/bin/elasticsearch
1.4 卸載Elasticsearch-7.8.0
- 停止服務(wù)后。執(zhí)行下面命令
[wolffy@hadoop102 module]$ rm -rf /opt/module/elasticsearch-7.8.0
[wolffy@hadoop102 module]$ rm -rf kibana-7.8.0
第二章 Elasticsearch-7.8.0集群基于Centos7
Elasticsearch安裝hadoop102、hadoop103、hadoop104
Kibana安裝hadoop102
2.1 安裝 Elasticsearch-7.8.0
Elasticsearch(ES)是一個基于Apache Lucene的開源的分布式、高擴展、近實時的搜索引擎。它主要用于海量數(shù)據(jù)的快速存儲、實時檢索和高效分析。通過簡單易用的RESTful API,它隱藏了Lucene的復(fù)雜性,使得全文搜索變得簡單。
2.1.1 安裝包下載
下載地址:https://www.elastic.co/downloads/past-releases#elasticsearch
2.1.2 解壓安裝ElasticSearch
- 解壓elasticsearch-7.8.0.tar.gz到/opt/module目錄下,并更名
[wolffy@hadoop102 software]$ tar -zxvf /opt/software/elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module/
- 在/opt/module/elasticsearch-7.8.0路徑下創(chuàng)建data文件夾
[wolffy@hadoop102 elasticsearch-7.8.0]$ mkdir data
- 修改配置文件/opt/module/elasticsearch-7.8.0/config/elasticsearch.yml
[wolffy@hadoop102 config]$ vi elasticsearch.yml
#-----------------------Cluster-----------------------
cluster.name: myes
#-----------------------Node-----------------------
node.name: node102
#-----------------------Paths-----------------------
path.data: /opt/module/elasticsearch-7.8.0/data
#-----------------------Memory-----------------------
bootstrap.memory_lock: false
#-----------------------Network-----------------------
network.host: hadoop102
#-----------------------Discovery-----------------------
discovery.seed_hosts: ["hadoop102", "hadoop103","hadoop104"]
cluster.initial_master_nodes: ["node102", "node103","node104"]
cluster.name:如果要配置集群需要兩個節(jié)點上的elasticsearch配置的cluster.name相同,都啟動可以自動組成集群,這里如果不改cluster.name則默認是cluster.name=my-application,
node.name:隨意取但是集群內(nèi)的各節(jié)點不能相同修改后的每行前面不能有空格,修改后的“:”后面必須有一個空格
- 分發(fā)至hadoop103以及hadoop104,分發(fā)之后修改配置文件:
[wolffy@hadoop102 module]$ xsync.sh elasticsearch-7.8.0/
[wolffy@hadoop103 elasticsearch-7.8.0]$ vim /opt/module/elasticsearch-7.8.0/config/elasticsearch.yml
# 在hadoop103機器修改以下信息
node.name: node103
network.host: hadoop103
[wolffy@hadoop104 elasticsearch-7.8.0]$ vim /opt/module/elasticsearch-7.8.0/config/elasticsearch.yml
# 在hadoop104機器修改以下信息
node.name: node104
network.host: hadoop104
2.1.3 調(diào)整linux內(nèi)核參數(shù)
- 切換到root用戶,編輯limits.conf 添加類似如下內(nèi)容
[root@hadoop102 elasticsearch-7.8.0]# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
注意:*不要省略掉。以上操作為增加Linux文件系統(tǒng)中可以同時打開的文件句柄數(shù)。
- 切換到root用戶修改配置sysctl.conf
[root@hadoop102 elasticsearch-7.8.0]# vi /etc/sysctl.conf
vm.max_map_count=655360
以上修改的Linux配置需要分發(fā)至其他節(jié)點.然后重新啟動Linux,必須重啟?。?!
2.1.4 ElasticSearch啟動
- 單點啟動
[wolffy@hadoop102 elasticsearch-7.8.0]$ /opt/module/elasticsearch-7.8.0/bin/elasticsearch
[wolffy@hadoop103 elasticsearch-7.8.0]$ /opt/module/elasticsearch-7.8.0/bin/elasticsearch
[wolffy@hadoop104 elasticsearch-7.8.0]$ /opt/module/elasticsearch-7.8.0/bin/elasticsearch
- 群起腳本elasticsearch_control.sh
[wolffy@hadoop102 bin]$ vim /home/wolffy/bin/elasticsearch_control.sh
#!/bin/bash
# 請確保SSH密鑰認證已經(jīng)設(shè)置好,以便腳本能夠無密碼登錄到每臺機器上執(zhí)行命令
# # 定義Elasticsearch的地址和端口
ELASTICSEARCH_HOST=("hadoop102" "hadoop103" "hadoop104")
ELASTICSEARCH_PORT="9200"
# 定義啟動Elasticsearch的命令
START_CMD="nohup /opt/module/elasticsearch-7.8.0/bin/elasticsearch > /dev/null 2>&1 &"
# 定義停止Elasticsearch的命令
STOP_CMD="ps -ef | grep Elasticsearch | grep -v grep | awk '{print \$2}' | xargs kill "
# 定義檢查Elasticsearch狀態(tài)的命令
STATUS_CMD="curl http://${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}/_cat/nodes?v"
# 函數(shù):啟動Elasticsearch服務(wù)
start_elasticsearch() {
for i in "${ELASTICSEARCH_HOST[@]}"; do
echo "Starting Elasticsearch on $i..."
ssh $i "$START_CMD"
if [ $? -eq 0 ]; then
echo "Elasticsearch started successfully on $i."
else
echo "Failed to start Elasticsearch on $i."
fi
done
}
# 函數(shù):停止Elasticsearch服務(wù)
stop_elasticsearch() {
for i in "${ELASTICSEARCH_HOST[@]}"; do
echo "Stopping Elasticsearch on $i..."
ssh $i "$STOP_CMD"
if [ $? -eq 0 ]; then
echo "Elasticsearch stopped successfully on $i."
else
echo "Failed to stop Elasticsearch on $i."
fi
done
}
# 函數(shù):檢查Elasticsearch服務(wù)狀態(tài)
check_elasticsearch_status() {
for i in "${ELASTICSEARCH_HOST[@]}"; do
echo "Checking Elasticsearch status on $i..."
ssh $i "$STATUS_CMD"
# 執(zhí)行curl命令并輸出集群健康狀態(tài)
echo "Checking Elasticsearch cluster health..."
$CHECK_HEALTH_CMD
# 檢查curl命令的退出狀態(tài),如果非0則輸出錯誤消息
if [ $? -ne 0 ]; then
echo "Failed to retrieve Elasticsearch cluster health."
exit 1
fi
done
}
# 解析命令行參數(shù)
case "$1" in
start)
start_elasticsearch
;;
stop)
stop_elasticsearch
;;
status)
check_elasticsearch_status
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
;;
esac
[wolffy@hadoop102 bin]$ chmod +x /home/wolffy/bin/elasticsearch_control.sh
[wolffy@hadoop102 bin]$ elasticsearch_control.sh start
[wolffy@hadoop102 bin]$ elasticsearch_control.sh status
[wolffy@hadoop102 bin]$ elasticsearch_control.sh stop
- 訪問:http://hadoop102:9200/_cat/nodes?v
2.2 安裝Kibana-7.8.0
Kibana是一個用于探索、可視化和分享ES數(shù)據(jù)的客戶端。因此在任一節(jié)點安裝即可。
2.2.1 安裝包下載
下載地址:https://www.elastic.co/downloads/past-releases#kibana
2.2.2 解壓安裝Kibana
- 將kibana壓縮包上傳到所安裝節(jié)點的指定目錄
[wolffy@hadoop102 module]$ tar -zxvf /opt/software/kibana-7.8.0-linux-x86_64.tar.gz -C /opt/module/
[wolffy@hadoop102 module]$ mv /opt/module/kibana-7.8.0-linux-x86_64/ /opt/module/kibana-7.8.0
- 修改相關(guān)配置連接Elasticsearch
[wolffy@hadoop102 kibana-7.8.0]$ vi config/kibana.yml
server.host: "hadoop102"
server.port: 5601
elasticsearch.hosts: ["http://hadoop102:9200"]
i18n.locale: "zh-CN"
2.2.3 Kibana啟動
- 啟動Kibana
[wolffy@hadoop102 kibana-7.8.0]$ bin/kibana
- Kibana啟停腳本(安裝nodejs)
[wolffy@hadoop102 bin]$ vim /home/wolffy/bin/kibana_control.sh
#!/bin/bash
# 定義Kibana的安裝路徑
KIBANA_HOME="/opt/module/kibana-7.8.0"
# 定義Kibana的進程名或關(guān)鍵字,用于查找進程ID
KIBANA_PROCESS_NAME="node ./bin/../src/cli"
# 函數(shù):啟動Kibana
start_kibana() {
# 切換到Kibana的安裝目錄
cd "$KIBANA_HOME" || exit
# 啟動Kibana
echo "Starting Kibana..."
nohup ./bin/kibana &> kibana.log & # 在后臺啟動Kibana并將輸出重定向到kibana.log
# 檢查Kibana進程是否正在運行(可選)
sleep 5 # 等待Kibana啟動
if pgrep -f "$KIBANA_PROCESS_NAME" > /dev/null; then
echo "Kibana started successfully."
else
echo "Failed to start Kibana."
exit 1
fi
}
# 函數(shù):停止Kibana
stop_kibana() {
# 查找Kibana的進程ID
KIBANA_PID=$(pgrep -f "$KIBANA_PROCESS_NAME")
# 檢查是否找到了Kibana的進程ID
if [ -z "$KIBANA_PID" ]; then
echo "Kibana is not running."
exit 0
fi
# 停止Kibana進程
echo "Stopping Kibana..."
kill "$KIBANA_PID"
# 等待Kibana進程結(jié)束
wait "$KIBANA_PID" || true
# 檢查Kibana是否已停止
if pgrep -f "$KIBANA_PROCESS_NAME" > /dev/null; then
echo "Failed to stop Kibana."
exit 1
else
echo "Kibana stopped successfully."
fi
}
# 檢查傳入的參數(shù)
case "$1" in
start)
start_kibana
;;
stop)
stop_kibana
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
[wolffy@hadoop102 bin]$ chmod +x /home/wolffy/bin/kibana_control.sh
- 瀏覽器訪問:http://hadoop102:5601/app/kibana#/dev_tools/console
2.3 安裝elasticsearch-analysis-ik-7.8.0
Elasticsearch-Analysis-IK是一個專門為Elasticsearch設(shè)計的中文分詞器插件,它將Lucene IK分詞器集成到Elasticsearch中,并支持自定義詞典。
- 下載解壓:https://github.com/infinilabs/analysis-ik/tags
[wolffy@hadoop102 elasticsearch-7.8.0]$ cd plugins/
[wolffy@hadoop102 plugins]$ mkdir ik
[wolffy@hadoop102 plugins]$ cd ik
[wolffy@hadoop102 ik]$ unzip /opt/software/elasticsearch-analysis-ik-7.8.0.zip
[wolffy@hadoop102 ik]$ cp /opt/software/elasticsearch-analysis-ik-7.8.0/* /opt/module/elasticsearch-7.8.0/plugins/ik
- 分發(fā)分詞器到所有節(jié)點
[wolffy@hadoop102 plugins]$ xsync.sh ik
- 重新啟動Elasticsearch
[wolffy@hadoop102 plugins]$ elasticsearch_control.sh start
2.4 卸載Elasticsearch-7.8.0和Kibana-7.8.0
- 停止服務(wù)后。執(zhí)行下面命令
[wolffy@hadoop102 module]$ rm -rf /opt/module/elasticsearch-7.8.0
[wolffy@hadoop102 module]$ rm -rf kibana-7.8.0
2.5 注意
因為安全問題,Elasticsearch 不允許root用戶直接運行,所以要創(chuàng)建新用戶,在root用戶中創(chuàng)建新用戶,執(zhí)行如下命令:
useradd wolffy *# 新增wolffy用戶*
passwd wolffy *# 為wolffy用戶設(shè)置密碼*
5、為新用戶授權(quán)
chown -R wolffy:wolffy /opt/elasticsearch-7.4.0 *#文件夾所有者*
將 /opt/elasticsearch-7.4.0文件夾授權(quán)給wolffy用戶:wolffy用戶組
8.0以上需要增加如下配置
打開elasticsearch.yml
新增
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
第三章 Elasticsearch-7.8.0通過Docker方式安裝
3.1 安裝 Elasticsearch-7.8.0
3.1.1 創(chuàng)建網(wǎng)絡(luò)
# 因為需要部署kibana容器,因此需要讓es和kibana容器互聯(lián)。
docker network create es-net
3.1.2 拉取鏡像
# 拉取鏡像
docker pull elasticsearch:7.8.0
3.1.3 創(chuàng)建掛載點目錄
# 創(chuàng)建掛載點目錄
mkdir -p \
/Users/wolffy/docker/elasticsearch-7.8.0/data \
/Users/wolffy/docker/elasticsearch-7.8.0/config \
/Users/wolffy/docker/elasticsearch-7.8.0/plugins
# 修改權(quán)限
chmod 777 /Users/wolffy/docker/elasticsearch-7.8.0/data
chmod 777 /Users/wolffy/docker/elasticsearch-7.8.0/config
chmod 777 /Users/wolffy/docker/elasticsearch-7.8.0/plugins
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticse
宿主機的目錄權(quán)限問題 :用戶目錄一定要家目錄。這樣用戶才有權(quán)限問題。
3.1.4 創(chuàng)建容器
docker run -d \
--restart=always \
--name elasticsearch-7.8.0 \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /Users/wolffy/docker/elasticsearch-7.8.0/data:/usr/share/elasticsearch/data \
-v /Users/wolffy/docker/elasticsearch-7.8.0/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:7.8.0
-
-d
: 在后臺運行容器,并返回容器ID。 -
--restart=always
: 無論容器的退出狀態(tài)如何,始終重啟容器。這確保了即使Elasticsearch服務(wù)因為某種原因停止,容器也會自動重啟。 -
--name elasticsearch-7.8.0
: 為容器指定一個名稱,這里是elasticsearch-7.8.0
。 -
--network es-net
: 將容器連接到名為es-net
的Docker網(wǎng)絡(luò)。這允許容器與同一網(wǎng)絡(luò)上的其他容器通信。 -
-p 9200:9200
: 將宿主機的9200端口映射到容器內(nèi)的9200端口,用于Elasticsearch的HTTP接口。 -
-p 9300:9300
: 將宿主機的9300端口映射到容器內(nèi)的9300端口,用于Elasticsearch的傳輸層通信。 -
--privileged
: 給予容器擴展的權(quán)限,讓容器內(nèi)的root用戶擁有宿主機的root權(quán)限。這通常不是最佳實踐,因為它可能會帶來安全風險,但在某些情況下,Elasticsearch可能需要這些權(quán)限來正確運行。 -
-v /Users/wolffy/docker/elasticsearch-7.8.0/data:/usr/share/elasticsearch/data
: 將宿主機的/Users/wolffy/docker/elasticsearch-7.8.0/data
目錄映射到容器內(nèi)的/usr/share/elasticsearch/data
目錄,用于存儲Elasticsearch的數(shù)據(jù)。 -
-v /Users/wolffy/docker/elasticsearch-7.8.0/plugins:/usr/share/elasticsearch/plugins
: 將宿主機的/Users/wolffy/docker/elasticsearch-7.8.0/plugins
目錄映射到容器內(nèi)的/usr/share/elasticsearch/plugins
目錄,允許你將自定義插件安裝在宿主機上,并在容器中使用。 -
-e "discovery.type=single-node"
: 設(shè)置環(huán)境變量discovery.type
為single-node
,告訴Elasticsearch以單節(jié)點模式運行。這在開發(fā)或測試環(huán)境中很常見,但在生產(chǎn)環(huán)境中,你可能需要配置一個更復(fù)雜的集群。 -
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
: 設(shè)置環(huán)境變量ES_JAVA_OPTS
來配置Elasticsearch的Java虛擬機。這里,-Xms512m
設(shè)置了JVM的初始堆大小為512MB,-Xmx512m
設(shè)置了最大堆大小為512MB。 -
elasticsearch:7.8.0
: 指定要運行的Elasticsearch鏡像及其版本,這里是elasticsearch:7.8.0
。
3.1.5 編寫elasticsearch.yml[可選]
# 先進入es容器
docker exec -it elasticsearch-7.8.0 /bin/bash
# 關(guān)閉 密碼安全驗證
echo 'xpack.security.enabled: false' >> config/elasticsearch.yml
cat config/elasticsearch.yml
xpack.security.enabled: false elasticsearch-8.x以下無需配置
3.1.6 重啟elasticsearch容器測試
docker restart es
docker start es
http://localhost:9200/
3.2 安裝Kibana-7.8.0
3.2.1 拉取鏡像
docker pull kibana:7.8.0
3.2.2 創(chuàng)建掛載點目錄
mkdir -p \
/Users/wolffy/docker/kibana-7.8.0/config \
/Users/wolffy/docker/kibana-7.8.0/data
chmod 777 /Users/wolffy/docker/kibana-7.8.0/config
chmod 777 /Users/wolffy/docker/kibana-7.8.0/data
3.2.3 創(chuàng)建kibana容器
docker run -d \
--restart=always \
--name kibana-7.8.0 \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://elasticsearch-7.8.0:9200 \
kibana:7.8.0
-
-d
: 在后臺運行容器并返回容器ID。 -
--restart=always
: 無論容器的退出狀態(tài)如何,始終重啟容器。 -
--name kibana
: 為容器指定一個名稱,這里是kibana
。 -
--network es-net
: 將容器連接到名為es-net
的Docker網(wǎng)絡(luò)。這通常是為了確保Kibana容器可以與在同一網(wǎng)絡(luò)上的Elasticsearch容器通信。 -
-p 5601:5601
: 將宿主機的5601端口映射到容器內(nèi)的5601端口。Kibana默認使用5601端口,通過這個映射,你可以通過訪問宿主機的5601端口來訪問Kibana。 -
-e ELASTICSEARCH_HOSTS=http://elasticsearch-7.8.0:9200
: 設(shè)置環(huán)境變量ELASTICSEARCH_HOSTS
,用于指定Kibana應(yīng)該連接到的Elasticsearch主機和端口。這里假設(shè)Elasticsearch容器的名稱是elasticsearch-7.8.0
,并且它運行在9200端口上。 -
kibana:7.8.0
: 指定要運行的Kibana鏡像及其版本,這里是kibana:7.8.0
。
3.2.4 測試
耐心等待20s初始化完畢即可
3.3 安裝elasticsearch-analysis-ik-7.8.0
安裝IK分詞器的版本,必須和Elasticsearch的版本一致。我們采用離線安裝方式進行。
3.3.1 進入Elasticsearch容器
? ~ docker exec -it elasticsearch-7.8.0 /bin/bash
? ~ docker cp /Users/wolffy/docker/elasticsearch-analysis-ik-7.8.0 elasticsearch-7.8.0:/usr/share/elasticsearch/plugins/ik
[root@45c518cb8384 ik]# cd /usr/share/elasticsearch/plugins/ik/elasticsearch-analysis-ik-7.8.0
[root@45c518cb8384 ik]# mv -r * ../
-
docker cp
復(fù)制文件到docker內(nèi)部 -
/Users/wolffy/docker/elasticsearch-analysis-ik-7.8.0
ik分詞器路徑 -
elasticsearch-7.8.0
es容器名稱 -
/usr/share/elasticsearch/plugins/ik
docker內(nèi)es插件路徑
注意:不能有.Ds_store 文件否則啟動不起來文章來源:http://www.zghlxwxcb.cn/news/detail-845577.html
3.3.2 重啟Elasticsearch
docker restart elasticsearch-7.8.0
3.3.3 測試
GET _analyze
{
"analyzer": "ik_smart",
"text":"今天天氣不錯"
}
{
"tokens" : [
{
"token" : "今天天氣",
"start_offset" : 0,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "不錯",
"start_offset" : 4,
"end_offset" : 6,
"type" : "CN_WORD",
"position" : 1
}
]
}
更多優(yōu)質(zhì)資源:牛牛IT資源網(wǎng) www.cowcowit.com文章來源地址http://www.zghlxwxcb.cn/news/detail-845577.html
到了這里,關(guān)于Elasticsearch-7.8.0安裝最全(mac、Linux、window、centos7.5集群、docker)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!