OpenSearch開發環境安裝Docker和Docker-Compose兩種方式

文章目錄

  • 簡介
    • 常用請求
      • 創建映射
      • 寫入數據
      • 查詢數據
      • 其他
  • 安裝
    • Docker方式
      • 安裝OpenSearch
      • 安裝OpenSearchDashboard
    • Docker-Compose方式
      • Docker-Compose安裝
      • 1.設置主機環境
      • 2.下載docker-compose.yml文件
      • 3.啟動docker-compose
      • 4.驗證
    • 問題
      • 問題1:IPv4 forwarding is disabled. Networking will not work
      • 問題2:OpenSearch Dashboards 啟用中文界面

簡介

官網

  • https://opensearch.org/

  • https://opensearch.org/docs/2.7/

這里我以2.7版本示例

前提docker已完成安裝

我的業務數據是個json如下:

{"title": "The Wind Rises","created_on": "2023-11-22T09:28:48+00:00","type": "order","user": "eddie","price": 24.99
}

當添加到opensearch時,OpenSearch 會添加一些元數據如下:

{"_index": "<index-name>","_type": "_doc","_id": "<document-id>","_version": 1,"_source": {"title": "The Wind Rises","created_on": "2023-11-22T09:28:48+00:00","type": "order","user": "eddie","price": 24.99}
}

常用請求

在Dev Tools執行

創建映射

PUT laker-index
{"mappings": {"properties": {"title": {"type": "text"},"created_on": {"type": "date"},"type": {"type": "keyword"},"user": {"type": "keyword"},"price": {"type": "half_float"}}}
}

寫入數據

POST _bulk
{"index":{"_index":"laker-index","_id":0}}
{"title":"The Wind Rises today is nice day","created_on":"2023-11-21T09:28:48+00:00","type":"order","user":"eddie","price":24.99}
{"index":{"_index":"laker-index","_id":1}}
{"title":"The Wind Rises","created_on":"2023-11-22T09:28:48+00:00","type":"sale","user":"eddie","price":4.99}
{"index":{"_index":"laker-index","_id":2}}
{"title":"The Wind Rises hello ","created_on":"2023-11-23T09:28:48+00:00","type":"order","user":"laker","price":34.99}
{"index":{"_index":"laker-index","_id":3}}
{"title":"The Wind Rises laker","created_on":"2023-11-22T09:28:48+00:00","type":"sale","user":"laker","price":14.99}
{"index":{"_index":"laker-index","_id":4}}
{"title":"The Wind Rises laker","created_on":"2023-11-21T09:28:48+00:00","type":"order","user":"laker","price":44.99}

查詢數據

GET laker-index/_search
{"size": 1,"query": {"match": {"title": "Rises"}}
}

其他

# 創建映射 mapping
PUT sample-index1
{"mappings": {"properties": {"year":    { "type" : "text" },"age":     { "type" : "integer" },"director":{ "type" : "text" },"ip_address" : {"type" : "ip","ignore_malformed": true},"timestamp": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"value": {"type": "double"}}}
}
# 將映射添加到現有索引
POST sample-index1/_mapping
{"properties": {"year":    { "type" : "text" },"age":     { "type" : "integer" },"director":{ "type" : "text" }}
}# 新增文檔
PUT /<index-name>/_doc/<document-id>
{"title": "The Wind Rises","release_date": "2013-07-20"
}
# 搜索索引
GET /<index-name>/_search?q=wind
# 刪除文檔
DELETE /<index-name>/_doc/<document-id>
# 查看集群設置
GET _cluster/settings?include_defaults=true
GET _cluster/settings
# 索引列表
GET _cat/indicesgreen  open .opensearch-observability    JbwykWeAQTeyjbiEue73xw 1 0   0 0    208b    208b
yellow open security-auditlog-2023.11.22 n_D4yJoKS4-YKLI1vpyQ9w 1 1 256 0 831.7kb 831.7kb
green  open .kibana_92668751_admin_1     RG79AlpgTiOhAoT2uifInw 1 0   1 0   5.1kb   5.1kb
green  open .kibana_1                    d88uN7czQ2eGli3Kmqcg5A 1 0   0 0    208b    208b
green  open .opendistro_security         JG9gJ3hARWmngXidVL89mw 1 0  10 0  43.5kb  43.5kb# 系統狀態
GET _cat/health?v
# 節點信息
GET _cat/nodes?v# 獲取映射
GET <index>/_mapping{"sample-index1" : {"mappings" : {"year" : {"full_name" : "year","mapping" : {"year" : {"type" : "text"}}},"age" : {"full_name" : "age","mapping" : {"age" : {"type" : "integer"}}}}}
}# 獲取所有索引的所有映射
GET _mapping
# 獲取已安裝的插件
GET _cat/plugins
127296e3f35f opensearch-alerting                  2.7.0.0
127296e3f35f opensearch-anomaly-detection         2.7.0.0
127296e3f35f opensearch-asynchronous-search       2.7.0.0
127296e3f35f opensearch-cross-cluster-replication 2.7.0.0
127296e3f35f opensearch-geospatial                2.7.0.0
127296e3f35f opensearch-index-management          2.7.0.0
127296e3f35f opensearch-job-scheduler             2.7.0.0
127296e3f35f opensearch-knn                       2.7.0.0
127296e3f35f opensearch-ml                        2.7.0.0
127296e3f35f opensearch-neural-search             2.7.0.0
127296e3f35f opensearch-notifications             2.7.0.0
127296e3f35f opensearch-notifications-core        2.7.0.0
127296e3f35f opensearch-observability             2.7.0.0
127296e3f35f opensearch-performance-analyzer      2.7.0.0
127296e3f35f opensearch-reports-scheduler         2.7.0.0
127296e3f35f opensearch-security                  2.7.0.0
127296e3f35f opensearch-security-analytics        2.7.0.0
127296e3f35f opensearch-sql                       2.7.0.0

索引模板

PUT _index_template/<template name>
# 創建一個名為的模板daily_logs,并將其應用于名稱與模式匹配的任何新索引logs-2020-01-*,并將其添加到my_logs別名中:
PUT _index_template/daily_logs
{"index_patterns": ["logs-2020-01-*"],"template": {"aliases": {"my_logs": {}},"settings": {"number_of_shards": 2,"number_of_replicas": 1},"mappings": {"properties": {"timestamp": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"value": {"type": "double"}}}}
}
# 如果您創建名為 的索引logs-2020-01-01,您可以看到它具有模板中的映射和設置:
PUT logs-2020-01-01
GET logs-2020-01-01
{"logs-2020-01-01": {"aliases": {"my_logs": {}},"mappings": {"properties": {"timestamp": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"value": {"type": "double"}}},"settings": {"index": {"creation_date": "1578107970779","number_of_shards": "2","number_of_replicas": "1","uuid": "U1vMDMOHSAuS2IzPcPHpOA","version": {"created": "7010199"},"provided_name": "logs-2020-01-01"}}}
}

安裝

Docker方式

安裝OpenSearch

1.拉取鏡像

docker pull opensearchproject/opensearch:2.7.0

2.啟動容器并暴露端口

docker run --name dev -d -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e "network.host=0.0.0.0" -e "plugins.security.disabled=false" opensearchproject/opensearch:2.7.0
  • discovery.type=single-node 單節點模式
  • network.host=0.0.0.0 在外部IP也能訪問
  • plugins.security.disabled=true 禁用安全套件,就不用密碼了(這里開發環境可以設置為true)

3.向端口 9200 發送請求。默認用戶名和密碼為admin

curl https://localhost:9200 -ku 'admin:admin'

結果如下:

{"name" : "039dd59a68de","cluster_name" : "docker-cluster","cluster_uuid" : "rUa90awRQe2KKP7VxBmwxg","version" : {"distribution" : "opensearch","number" : "2.7.0","build_type" : "tar","build_hash" : "b7a6e09e492b1e965d827525f7863b366ef0e304","build_date" : "2023-04-27T21:43:09.523336706Z","build_snapshot" : false,"lucene_version" : "9.5.0","minimum_wire_compatibility_version" : "7.10.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

也可以這樣配置

# 復雜docker容器中的配置到本地
docker cp 039dd59a68de:/usr/share/opensearch/config/opensearch.yml .
# vim opensearch.yml 修改內容
network.host: 0.0.0.0
discovery.type: single-node
plugins.security.ssl.http.enabled: false
plugins.security.disabled=true
# 再將文件復制到容器
docker cp ./opensearch.yml 039dd59a68de:/usr/share/opensearch/config/opensearch.yml
# 重新啟動docker容器:
docker restart 039dd59a68de
# 查看日志
docker logs -f 039dd59a68de

安裝OpenSearchDashboard

1.拉取鏡像

docker pull opensearchproject/opensearch-dashboards:2.7.0

2.啟動容器并暴露端口

docker run --name dev-dash -d -p 5601:5601 -e "server.host=0.0.0.0" -e 'OPENSEARCH_HOSTS=["https://10.1.77.53:9200"]' opensearchproject/opensearch-dashboards:2.7.0# 直接禁用安全套件,沒有密碼
docker run --name dev-dash -d -p 5601:5601 -e "server.host=0.0.0.0"  -e 'OPENSEARCH_HOSTS=["http://10.1.77.102:9200"]' -e "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" opensearchproject/opensearch-dashboards:2.7.0
  • server.host=0.0.0.0 允許外部IP訪問
  • opensearch.hosts=[“http://10.1.77.53:9200”] 配置opensearch地址

也可以這樣去改配置

# 復雜docker容器中的配置到本地
docker cp 40301ac292a7:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml .
# vim opensearch_dashboards.yml 修改內容
opensearch.hosts: [https://10.1.77.53:9200]
opensearch.username: admin
opensearch.password: admin
server.host: '0.0.0.0' 
# 再將文件復制到容器
docker cp ./opensearch_dashboards.yml 40301ac292a7:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml
# 重新啟動docker容器:
docker restart 40301ac292a7
# 查看日志
docker logs -f 40301ac292a7

3.訪問http://ip:5601/ 。默認用戶名和密碼為admin

Docker-Compose方式

Docker-Compose安裝

# 根據需要替換其中的版本,這里是 v2.21.0
sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 將可執行權限應用于二進制文件
sudo chmod +x /usr/local/bin/docker-compose
# 創建軟鏈
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 測試是否安裝成功
docker-compose --version
- Docker Compose version v2.21.0# 常用命令
# 自動完成包括構建鏡像,(重新)創建服務,啟動服務
docker-compose up
# 后臺執行
docker-compose up -d
# 此命令將會停止 up 命令所啟動的容器,并移除網絡
docker-compose down 
# -v刪除所有卷的選項
docker-compose down -vdocker-compose start
docker-compose stop
docker-compose version

1.設置主機環境

vm.max_map_count至少設置為 262144

# 檢測當前值
cat /proc/sys/vm/max_map_count
# 要增加該值,請將以下行添加到/etc/sysctl.conf
vim /etc/sysctl.conf
vm.max_map_count=262144
# 然后運行sudo sysctl -p重新加載
sudo sysctl -p

2.下載docker-compose.yml文件

  • docker-compose.yml
mkdir -p /user/laker/opensearch
cd /user/laker/opensearch
wget https://opensearch.org/samples/docker-compose.yml

3.啟動docker-compose

# 啟動完要看日志,等1-2分鐘就差不多了,注意看日志問題
docker-compose up

4.驗證

訪問http://ip:5601/ 。默認用戶名和密碼為admin

問題

問題1:IPv4 forwarding is disabled. Networking will not work

執行docker run時有個提醒

WARNING: IPv4 forwarding is disabled. Networking will not work.

在這里插入圖片描述

這個警告提示 Docker 在你的主機上禁用了 IPv4 轉發,這可能導致 Docker 容器無法正常工作。IPv4 轉發是指將進入的網絡流量從一個網絡接口轉發到另一個網絡接口的功能。

為了解決這個問題,你可以啟用 IPv4 轉發。

解決方案

  1. 打開 IPv4 轉發:

    sudo sysctl -w net.ipv4.ip_forward=1
    
  2. 若要使該更改永久生效,編輯 /etc/sysctl.conf 文件,將 net.ipv4.ip_forward 的值設置為 1

問題2:OpenSearch Dashboards 啟用中文界面

在 opensearch_dashboards.yml中修改配置

#設置中文
i18n.locale: "zh-CN"

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

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

相關文章

如何搭建Zblog網站并通過內網穿透將個人博客發布到公網

文章目錄 1. 前言2. Z-blog網站搭建2.1 XAMPP環境設置2.2 Z-blog安裝2.3 Z-blog網頁測試2.4 Cpolar安裝和注冊 3. 本地網頁發布3.1. Cpolar云端設置3.2 Cpolar本地設置 4. 公網訪問測試5. 結語 1. 前言 想要成為一個合格的技術宅或程序員&#xff0c;自己搭建網站制作網頁是繞…

Altium Designer學習筆記11

畫一個LED的封裝&#xff1a; 使用這個SMD5050的封裝。 我們先看下這個芯片的功能說明&#xff1a; 5050貼片式發光二極管&#xff1a; XL-5050 是單線傳輸的三通道LED驅動控制芯片&#xff0c;采用的是單極性歸零碼協議。 數據再生模塊的功能&#xff0c;自動將級聯輸出的數…

CSGO搬磚干貨,全網最詳細教學!

CSGO游戲搬磚全套操作流程及注意事項&#xff08;第一課&#xff09; 在電競游戲中&#xff0c;CSGO&#xff08;Counter-Strike: Global Offensive&#xff09;被廣大玩家譽為經典之作。然而&#xff0c;除了在游戲中展現個人實力和團隊合作外&#xff0c;有些玩家還將CSGO作為…

Java之API(上)

前言&#xff1a; 這一次內容主要是圍繞Java開發中的一些常用類&#xff0c;然后主要是去學習這些類里面的方法。 一、高級API&#xff1a; (1)介紹&#xff1a;API指的是應用程序編程接口&#xff0c;API可以讓編程變得更加方便簡單。Java也提供了大量API供程序開發者使用&…

如何使用Google My Business來提升您的內容和SEO?

如果您的企業有實體店&#xff0c;那么使用Google My Business&#xff08;GMB&#xff09;來改善您的本地SEO并增強您的在線形象至關重要。Google My Business &#xff08;GMB&#xff09; 是 Google 提供的補充工具&#xff0c;使企業能夠控制其在 Google 搜索和地圖上的數字…

大數據基礎設施搭建 - Flume

文章目錄 一、上傳壓縮包二、解壓壓縮包三、監控本地文件&#xff08;file to kafka&#xff09;3.1 編寫配置文件3.2 自定義攔截器3.2.1 開發攔截器jar包&#xff08;1&#xff09;創建maven項目&#xff08;2&#xff09;開發攔截器類&#xff08;3&#xff09;開發pom文件&a…

【數字化轉型方法論讀書筆記】-數據中臺角色解讀

一千個讀者&#xff0c;就有一千個哈姆雷特。同樣&#xff0c;數據中臺對于企業內部不同角色的價值也不同&#xff0c;下面分別從董事長、CEO、 CTO/CIO、IT 架構師、數據分析師這 5 個角色的視角詳細解讀數據中臺。 1、董事長視角下的數據中臺 在數字經濟時代&#xff0c;企業…

RTT打印在分區跳轉后無法打印問題

場景&#xff1a; RTT打印僅占用JLINK的帶寬&#xff0c;比串口傳輸更快更簡潔&#xff0c;同時RTT可以使用jscope對代碼里面的變量實時繪圖顯示波形&#xff0c;而采用串口打印波形無法實時打印。同時可以保存原始數據到本地進行分析&#xff0c;RTT在各方面完勝串口。 問題描…

PTA-城市間緊急救援

作為一個城市的應急救援隊伍的負責人&#xff0c;你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連接城市的快速道路。每個城市的救援隊數量和每一條連接兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助電話給你的時候&#xff0c;你的任務是帶領你的…

采樣概率 假設檢驗推導數組最大值的方法與可行性

當需要尋找大量數據中的最大值的時候&#xff0c;比如從 2G 個 float16 中尋找其中的最大值&#xff0c;是一件耗時的操作。 現計劃通過小樣本來發掘數據的規律&#xff0c;對最大值進行預測。 方案&#xff1a; step1&#xff0c;從2G個float16 中截取64段float16&#xff…

【Vue入門篇】基礎篇—Vue指令,Vue生命周期

&#x1f38a;專欄【JavaSE】 &#x1f354;喜歡的詩句&#xff1a;更喜岷山千里雪 三軍過后盡開顏。 &#x1f386;音樂分享【如愿】 &#x1f384;歡迎并且感謝大家指出小吉的問題&#x1f970; 文章目錄 &#x1f354;Vue概述&#x1f384;快速入門&#x1f33a;Vue指令?v-…

AI繪畫工具匯總:免費、簡單易上手

歡迎來到魔法寶庫&#xff0c;傳遞AIGC的前沿知識&#xff0c;做有格調的分享? 喜歡的話記得點個關注吧&#xff01; 提到AI繪畫&#xff0c;許多人通常會想到Midjourney和Stable Diffusion等工具&#xff0c;然而&#xff0c;這些工具對于新手而言門檻較高&#xff0c;不太友…

【C++】——標準模板庫STL作業(其一)

&#x1f383;個人專欄&#xff1a; &#x1f42c; 算法設計與分析&#xff1a;算法設計與分析_IT閆的博客-CSDN博客 &#x1f433;Java基礎&#xff1a;Java基礎_IT閆的博客-CSDN博客 &#x1f40b;c語言&#xff1a;c語言_IT閆的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

opencv使用pyinstaller打包錯誤:‘can‘t find starting number (in the name of file)

使用Python語言和opencv模塊在pycharm中編輯的代碼運行沒問題&#xff0c;但是在使用pyinstaller打包后出現錯誤can‘t find starting number (in the name of file) [ERROR:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-q3d_8t8e\opencv\modules\videoi…

安卓畢業設計基于安卓android微信小程序的家校通系統

運行環境 開發語言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服務器&#xff1a;tomcat7 小程序框架&#xff1a;uniapp 小程序開發軟件&#xff1a;HBuilder X 小程序運行軟件&#xff1a;微信開發者 項目介紹 基于微信小程序的家校通系統的設計基…

【實用】PPT沒幾頁內存很大怎么解決

PPT頁數很少但導出內存很大解決方法 1.打開ppt點擊左上角 “文件”—“選項” 2.對話框選擇 “常規與保存” &#xff08;1&#xff09;如果想要文件特別小時可 取消勾選 “將字體嵌入文件” &#xff08;2&#xff09;文件大小適中 可選擇第一個選項 “僅最入文檔中所用的字…

每日一題 1410. HTML 實體解析器(中等,模擬)

模擬&#xff0c;沒什么好說的 class Solution:def entityParser(self, text: str) -> str:entityMap {&quot;: ",&apos;: "",>: >,<: <,&frasl;: /,&amp;: &,}i 0n len(text)res []while i < n:isEntity Falseif …

Oracle-客戶端連接報錯ORA-12545問題

問題背景: 用戶在客戶端服務器通過sqlplus通過scan ip登陸訪問數據庫時&#xff0c;偶爾會出現連接報錯ORA-12545: Connect failed because target host or object does not exist的情況。 問題分析&#xff1a; 首先&#xff0c;登陸到連接有問題的客戶端數據庫上&#xff0c;…

高品質MP3音頻解碼語音芯片WT2003Hx的特征優勢與應用場景

在現代化科技快速發展的時代&#xff0c;高品質音頻語音芯片在各個領域的應用越來越廣泛。唯創知音推出的高品質MP3音頻語音芯片WT2003Hx&#xff0c;憑借其出色的特性與優勢&#xff0c;贏得了市場的廣泛認可。本文將詳細介紹WT2003Hx的特征優勢以及其在各個領域的應用場景。 …

單片機調試技巧--修改bin文件實現斷點

fromelf --text -a -c --outputall.dis F103_Moduel\F103_Moduel.axffromelf --bin --outputtest.bin F103_Moduel\F103_Moduel.axf 在啟動文件中&#xff0c;修改UsageFault_Handler UsageFault_Handler\PROC; get current contextTST lr, #0x04 ; if(!EXC_RETURN[2])ITE…