Es搭建——單節點——Linux

Es搭建——單節點——Linux

一、安裝
下載安裝包:
官網下載地址:https://www.elastic.co/downloads/elasticsearch
上傳包到linux 切換到安裝目錄下
解壓:tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz
重命名安裝文件夾 mv elasticsearch-7.17.1 es
cd xxxx(es安裝目錄)/es
二、配置文件修改
注意:冒號后面有個空格,否則會導致配置文件格式錯誤,啟動時報錯
1、elasticsearch.yml

cd  config
vi  elasticsearch.yml

集群相關設置

-------------------------------Cluster-------------------------------
cluster.name: 設置你的集群名稱(例es-test)

節點相關設置

-------------------------------Node----------------------------------
node.name: 設置你的節點名稱(例estest-node-1)

網絡相關設置

-------------------------------Network----------------------------------
network.host: 部署該節點的服務器IP
http.port: 9200 (es服務對外的端口,默認即可) (設置0.0.0.0時,允許任何ip訪問)

集群發現相關設置

-------------------------------Discovery----------------------------------
#初始主節點列表,集群自動發現選舉master
cluster.initial_master_nodes: Node中設置的該節點名稱(例estest-node-1)

三:啟動ES
1、測試啟動服務

cd  xxxx(es安裝目錄)/es/bin
./elasticsearch

2、后臺啟動

./elasticsearch -d

四:依次解決報錯
1、es本身自帶的jdk版本與服務器所安裝jdk版本沖突

warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [xxxxx/jdk1.8.0/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.

報錯原因:
elasticsearch默認啟動時
先找系統安裝的jdk,若未安裝jdk則使用es自帶的jdk,系統無需再安裝jdk
若系統已安裝jkd且與es所需jdk版本不一致,則es啟動報錯jdk版本問題
見es/bin 中的elasticsearch-env 的jdk判斷代碼
報錯信息和echo輸出內容符合,說明走的是:"elif [ ! -z “$JAVA_HOME” ]; then"分支

# now set the path to java
if [ ! -z "$ES_JAVA_HOME" ]; thenJAVA="$ES_JAVA_HOME/bin/java"JAVA_TYPE="ES_JAVA_HOME"
elif [ ! -z "$JAVA_HOME" ]; then# fallback to JAVA_HOMEecho "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2JAVA="$JAVA_HOME/bin/java"JAVA_TYPE="JAVA_HOME"
else# use the bundled JDK (default)if [ "$(uname -s)" = "Darwin" ]; then# macOS has a different structureJAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"elseJAVA="$ES_HOME/jdk/bin/java"fiJAVA_TYPE="bundled JDK"
fi

即:【補流程圖】

解決方案:
系統不重新安裝es所需jdk版本時,使用es內置jdk
方法a、配置 ES_JAVA_HOME路徑
因為沒有識別到ES_JAVA_HOME,故需配置ES_JAVA_HOME

#編輯配置文件
vi ~/.bashrc
#在末尾添加以下內容
export ES_JAVA_HOME=xxxx(es安裝目錄)/es/jdk
#使命令生效
source ~/.bashrc
#檢查配置是否成功
echo $ES_JAVA_HOME

方法b、修改配置 指定系統的JAVA_HOME為es的jdk路徑

cd   xxxx(es安裝目錄)/es/bin
vi ./elasticsearch       【此處需再確認---方法是否正確】
#添加以下配置
# 將jdk修改為es中自帶jdk的配置目錄
export JAVA_HOME=xxxx(es安裝目錄)/es/jdk
export PATH=$JAVA_HOME/bin:$PATHif [ -x "$JAVA_HOME/bin/java" ]; thenJAVA="xxxx(es安裝目錄)/es/jdk/bin/java"
elseJAVA=`which java`
fi

方法c、刪除系統jdk的判斷,直接啟用Es自帶的java

cd  xxxx(es安裝目錄)/es/bin
vi  elasticsearch-env   【此處需再確認---方法是否正確,修改判斷后,仍然沒有ES_HOME,試下會成功嗎】
# now set the path to java
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"

方法d、將啟動時系統jdk路徑指定為es自帶的jdk

cd  xxxx(es安裝目錄)/es/bin
vi  elasticsearch-env 

首行代碼set -e -o pipefail下
添加JAVA_HOME指向es自帶jdk的位置:export JAVA_HOME =xxxx(es安裝目錄)/es/jdk。

set -e -o pipefail
#添加下行配置:使用es自帶的jdk
export JAVA_HOME =xxxx(es安裝目錄)/es/jdk

參考:
https://blog.csdn.net/smilehappiness/article/details/118466378
https://www.cnblogs.com/zhuhuibiao/p/16446105.html
2、root用戶啟動es失敗

java.lang.RuntimeException: can not run elasticsearch as root

報錯原因
es因為安全問題拒絕使用root用戶啟動
解決方案:
添加系統用戶用來啟動es

groupadd es 
useradd es -g es -p password # -g 指定組 -p 密碼
chown es:es -R xxxx(es安裝目錄)/es/ # -R 處理指定目錄以及其子目錄下的所有文件
#切換到es用戶
su es
#啟動es
./elasticsearch

參考:
https://blog.csdn.net/fwdwqdwq/article/details/124241935
3、max virtual memory areas vm.max_map_count [65530] is too low

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

報錯原因:
Elasticsearch在啟動時會檢查操作系統的配置,若vm.max_map_count的值太低,就會報錯。
vm.max_map_count是Linux系統中一個內核參數,它限制了每個進程可以擁有的內存區域(memory areas)數量。Elasticsearch可能需要比默認更多的內存區域,如果這個值太低,Elasticsearch就會報錯。
注:262144是一個常用的值,可根據需求調整,評估可能對系統穩定性造成的影響
解決方案:
永久修改該配置

#切換至root用戶
su root
#編輯/etc/sysctl.conf文件
vi /etc/sysctl.conf
#添加配置
vm.max_map_count=262144
#保存退出后
#刷新配置文件使改動立即生效
sudo sysctl -p

參考:
https://blog.csdn.net/jane_xing/article/details/139790289

#繼續切換es用戶,重新啟動es
su es
cd  xxxx(es安裝目錄)/es/bin
./elasticsearch

4、其他問題待更新
基本解決思路:先使用 ./elasticsearch 方式啟動,找到日志的error關鍵字,百度相關報錯信息

五、判斷是否啟動成功
方法1、檢查es進程

ps -ef|grep elasticsearch

方法2、訪問url
http://部署該節點的服務器IP:9200/

六、設置es的用戶名密碼
編輯elasticsearch.yml配置文件

vi xxxx(es安裝目錄)/es/config/elasticsearch.yml
#在末尾添加下面兩行
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
#保存退出后,重啟es(重啟后配置才生效)

設置用戶名密碼

cd  xxxx(es安裝目錄)/es/bin
elasticsearch-setup-passwords interactive
#依次設置elastic、kibana、logstash等的訪問密碼

再次url再次訪問驗證是否生效,出現彈窗則生效
參考:
https://blog.csdn.net/smilehappiness/article/details/118466378
七、單節點關閉es
1、若后臺啟動,找到對應進程號,直接殺進程即可

ps -ef|grep elasticsearch
kill -9 進程號

2、若控制臺啟動,直接ctrl+c

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64474.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64474.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64474.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【機器學習】梯度下降

文章目錄 1. 梯度下降概念2. 梯度下降的技巧2.1 動態設置學習率2.2 Adagrad調整梯度2.3 隨機梯度下降(SGD)2.4 特征縮放 3. 梯度下降理論基礎 1. 梯度下降概念 梯度:Loss 對參數在某一點的偏微分,函數沿梯度的方向具有最大的變化…

數據庫在大數據領域的探索與實踐:動態存儲與查詢優化

在大數據時代,數據庫的靈活性與高效性成為數據存儲與分析的重要基石。從關系型數據庫到 NoSQL 數據庫的演進,開發者逐漸可以在結構化與非結構化數據間找到平衡。本文將聚焦大數據場景下的數據庫實踐,尤其是如何動態存儲與查詢復雜數據&#x…

【Python科研數據爬蟲】基于國家標準查詢平臺和能源標準化信息平臺的海上風電相關行業標準查詢信息爬取及處理

基于國家標準查詢平臺和能源標準化信息平臺的海上風電相關行業標準查詢信息爬取及處理 1 背景2 標準檢索平臺2.1 能源標準化信息平臺2.2 全國標準信息公共服務平臺3 標準信息數據的爬取與處理3.1 能源標準化信息平臺的信息爬取3.2 全國標準信息公共服務平臺的信息爬取3.3 標準信…

AWS Certified AI Practitioner 自學考試心得

學習目標: 考取 AWS Certified AI Practitioner 那什么是 AWS Certified AI Practitioner 認證 是基礎級的認證 比較簡單 — 學習內容: 1. AWS網站自學網站 極客時間免費課程:http://gk.link/a/12sJL 配合極客時間課程的章節測試檢驗自…

Ngnix介紹、安裝、實戰及用法!!!

一、Nginx簡介 1、Nginx概述 Nginx (“engine x”) 是一個高性能的 HTTP 和 反向代理服務器,特點是占有內存少,并發能力強,能經受高負載的考驗,有報告表明能支持高達 50,000 個并發連接數 。 2、正向代理 正向代理:如果把局…

05.HTTPS的實現原理-HTTPS的握手流程(TLS1.2)

05.HTTPS的實現原理-HTTPS的握手流程(TLS1.2) 簡介1. TLS握手過程概述2. TLS握手過程細化3. 主密鑰(對稱密鑰)生成過程4. 密碼規范變更 簡介 主要講述了混合加密流程完成后,客戶端和服務器如何共同獲得相同的對稱密鑰…

YOLO11全解析:從原理到實戰,全流程體驗下一代目標檢測

前言 一、模型介紹 二、網絡結構 1.主干網絡(Backbone) 2.頸部網絡(Neck) 3.頭部網絡(Head) 三、算法改進 1.增強的特征提取 2.優化的效率和速度 3.更高的準確性與更少的參數 4.環境適應性強 5.…

C++ 與 Python(靜態類型語言與動態語言)

C 與 Python(靜態類型語言與動態語言) 一、說明 Python和C到底有啥區別?在使用的時候有啥特殊的益處?這種問題的意義在于:如果對語言了解越清楚,越能夠更加大膽地應用哪些極限功能,從而最大限…

Jenkins 構建流水線

在 Linux 系統上安裝 Jenkins 服務,以及配置自動化構建項目 前置準備環境:docker、docker-compose、jdk、maven 一、環境搭建 1. Jenkins 安裝 (1)拉取鏡像 # 安裝鏡像包,默認安裝最新版本 docker pull jenkins/jen…

【Java】面試題 并發安全 (1)

文章目錄 synchronized1. 基本概念與作用2. 使用方式3. 底層原理(基于monitor)4. 面試題回答要點5. 注意事項與進階理解 Java中synchronized鎖相關知識總結Java內存模型(JMM)CAS概述及重要性volatile關鍵字AQS簡介 synchronized …

前端項目 npm報錯解決記錄

1.首先嘗試解決思路 npm報錯就切換yarn , yarn報錯就先切換npm刪除 node_modules 跟 package-lock.json文件重新下載依 2. 報錯信息: Module build failed: Error: Missing binding D:\vue-element-admin\node_modules\node-sass\vendor\win32-x64-8…

深度學習中batch_size

Batch size調整和epoch/iteration的關系 訓練數據集總共有1000個樣本。若batch_size10,那么訓練完全體樣本集需要100次迭代,1次epoch。 訓練樣本10000條,batchsize設置為20,將所有的訓練樣本在同一個模型中訓練5遍,則…

Redis 數據類型全解析:基礎與進階應用場景

前言:Redis 是一個高性能的內存數據庫,支持多種數據類型,能夠高效處理各種場景的數據存儲和操作。 以下是Redis數據類型的數據結構及其應用場景的詳細說明: 基礎數據類型 1. 字符串 (String) 底層數據結構 Simple Dynamic Stri…

評分模型在路網通勤習慣分析中的應用——提出問題(1)

1、問題的由來、目標和意義 最近一段時間和公司其它業務部門討論時,發現一個有趣的交通路網問題,車輛從S點行駛到V點共用時40分鐘,這段時間內路網中的卡口攝像頭識別到了車輛通過的信息。如下圖所示: 設計師需要通過這些有限的路…

leetcode 面試經典 150 題:刪除有序數組中的重復項

鏈接刪除有序數組中的重復項題序號26題型數組解題方法雙指針難度簡單熟練度????? 題目 給你一個 非嚴格遞增排列 的數組 nums ,請你 原地 刪除重復出現的元素,使每個元素 只出現一次 ,返回刪除后數組的新長度。元素的 相對順序 應該保…

提升生產力工具

VSCODE插件 干貨:用好這13款VSCode插件,工作效率提升10倍 - 程序員檸檬 - 博客園 Sourcetrail Sourcetrail 是一個開源且免費的源碼閱讀工具,以其強大的代碼導航、可視化及跨平臺支持特性,成為開發者理解復雜代碼庫的得力助手。…

什么是 Git Hooks?

在團隊開發中,當成員提交代碼的描述信息不符合約定提交規范的時候,需要阻止當前的提交,而要實現這個目的,我們就需要先來了解一個概念,叫做 Git hooks,即Git 在執行某個事件之前或之后進行一些其他額外的操…

Go語言方法和接收器類型詳解

Go語言方法和接收器類型詳解 1. 方法接收器類型 1.1 值接收器 值接收器方法不會改變接收器的狀態,因為Go語言會在調用時復制接收器的值。因此,任何對接收器成員變量的修改都只會影響副本,而不會影響原始結構體實例。 type Person struct …

MS SQL Server 實戰 排查多列之間的值是否重復

目錄 需求 范例運行環境 數據樣本設計 功能實現 上傳EXCEL文件到數據庫 SQL語句 小結 需求 在日常的應用中,排查列重復記錄是經常遇到的一個問題,但某些需求下,需要我們排查一組列之間是否有重復值的情況。比如我們有一組題庫數據&am…

抖去推碰一碰系統技術源碼/open SDK轉發技術開發

抖去推碰一碰系統技術源碼/open SDK轉發技術開發 碰一碰智能系統#碰碰卡系統#碰一碰系統#碰一碰系統技術源頭開發 碰碰卡智能營銷系統開發是一種集成了人工智能和NFC技術的工具,碰碰卡智能營銷系統通過整合數據分析、客戶關系管理、自動化營銷活動、多渠道整合和個…