이 글에서는 Elasticsearch에서 CRUD를 수행하는 방법에 대한 몇 가지 기본 학습을 진행합니다.
Elasticsearch 독립형 이중 노드 클러스터 배포
环境:CentOS 7.2 JDK 1.8.0_74
1. 첫 번째 ElasticSearch(마스터 노드)를 설치합니다.
1. es 사용자를 생성하고 es를 시작할 수 없습니다.
루트 사용자는 /home /es 디렉토리에 진입합니다. 2. ElasticSearch 설치 패키지를 얻습니다.useradd es passwd es3. 압축을 풀고 이름을 바꿉니다(클러스터링 시 다른 ES를 쉽게 구별할 수 있도록)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gz4. 수정 내용은 다음과 같습니다:
tar xf elasticsearch-6.1.2.tar.gzmv elasticsearch-6.1.2.tar.gz elasticsearch-node2파일은 마지막에 추가됩니다. 다음 내용은 헤드를 연결하여 건강 값을 표시하는 데 사용됩니다. (각 코드 줄 앞에 공백이 없습니다.)
vi elasticsearch-node2/config/elasticsearch.yml5.
cluster.name: my-application 各节点此名称必须一致node.name: node-2 节点名称,不能与其他节点相同 network.host: ***.***.***.*** 自己的服务器IPhttp.port: **** 访问端口transport.tcp.port: **** 集群各节点间的通讯端口 discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"]
http.cors.enabled: truehttp.cors.allow-origin: "*"시작에 성공했습니다. 브라우저에
IP: 액세스 포트를 입력하세요.
웹 페이지에는 배포 성공
sh elasticsearch-node2/bin/elasticsearch6 오류 보고서 및 처리 방법을 설명하는 다음 내용이 표시됩니다.
【유형 1】
[2018-01-24T15:36:41,990][INFO ][o.e.n.Node ] [KMyyO-3] started [2018-01-24T15:36:41,997][INFO ][o.e.g.GatewayService ] [KMyyO-3] recovered [0] indices into cluster_state
이 문제입니다. 루트 사용자는 es를 실행할 수 없기 때문에 다시 시작하려면 es 사용자를 전환해야 합니다
{ "name" : "node-2", "cluster_name" : "my-application", "cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww", "version" : { "number" : "6.1.2", "build_hash" : "5b1fea5", "build_date" : "2018-01-10T02:35:59.208Z", "build_snapshot" : false, "lucene_version" : "7.1.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search"}【Type 2】
Caused by: java.lang.RuntimeException: can not run elasticsearch as root해결 방법 루트 사용자로 돌아가서 구성 파일을 수정하세요
chown -R es:es elasticsearch-node2/su - es sh elasticsearch-node2/bin/elasticsearch[ 유형 3]
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]해결 방법: 루트 사용자로 다시 변경하고 구성 파일을 수정
vi /etc/security/limits.conf#在最后面追加下面内容es hard nofile 65536es soft nofile 65536
둘째, 두 번째 ElasticSearch(보조 노드)를 설치합니다
설치 방법은 첫 번째와 동일합니다. 주의하세요. 구성 파일을 수정합니다. root 사용자는 /home/es 디렉터리를 입력합니다.
1. 압축을 풀고 이름을 변경합니다.
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]2. 구성 파일을 수정합니다.
vi /etc/sysctl.conf #在最后面追加下面内容vm.max_map_count=655360#执行命令:sysctl -p수정 내용은 다음과 같습니다.
tar xf elasticsearch-6.1.2.tar.gzmv elasticsearch-6.1.2.tar.gz elasticsearch-node3다음 코드를 추가합니다.
vi elasticsearch-node3/config/elasticsearch.yml3.
cluster.name: my-application 各节点此名称必须一致node.name: node-3 节点名称,不能与其他节点相同network.host: ***.***.***.*** 自己的服务器IPhttp.port: **** 访问端口(注意不要与第一个端口重复) transport.tcp.port: **** 集群各节点间的通讯端口(注意不要与第一个端口重复)discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"]브라우저를 시작하고
IP: 액세스 포트
를 입력합니다.웹페이지에 두 번째 배포가 성공했음을 나타내는 다음 콘텐츠가 표시됩니다. http.cors.enabled: truehttp.cors.allow-origin: "*"
3. Elasticsearch-head 플러그를 설치합니다. in
1. 헤드 플러그인 설치 sh elasticsearch-node3/bin/elasticsearch
전에 node.js를 설치해야 합니다. 설치가 완료된 후 명령을 실행하여 node 및 npm 버전을 확인하세요
{ "name" : "node-3", "cluster_name" : "my-application", "cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww", "version" : { "number" : "6.1.2", "build_hash" : "5b1fea5", "build_date" : "2018-01-10T02:35:59.208Z", "build_snapshot" : false, "lucene_version" : "7.1.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search"}2. git
curl -sL https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs3. 설치 패키지 압축을 푼다(쉬운 작업을 위해 이름을 바꿀 수 있음)
[root@host]# node -vv8.12.0[root@host]# npm -v6.4.14. 구성 파일 수정
wget https://github.com/mobz/elasticsearch-head/archive/master.zip헤드 포트 번호 변경
unzip master.zip mv elasticsearch-head-master/ head
vi head/Gruntfile.js헤드 링크 주소 변경
connect: { server: { options: { port: ****, 改为head访问端口 base: '.', keepalive: true } } }5.
6. 브라우저를 통해 헤드에 로그인
URL 서버 IP 입력: 헤드 액세스 포트
링크 주소를 기본으로 입력 노드의 액세스 주소 7. 헤드 설치 시 자주 발생하는 오류
해결책
서버 방화벽을 끄십시오
vi head/_site/app.js
[유형 2] 클러스터 상태 값이 연결되지 않았습니다
elasticsearch.yml 코드에 다음을 추가하십시오. 코드)
init: function(parent) { this._super(); this.prefs = services.Preferences.instance(); this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://主节点IP:访问端口";Q: es 노드는 왜 node2와 node3를 사용하나요?
답변: 이전에 클러스터되지 않은 ES 세트를 구축하기 위해 node1을 사용했기 때문에 후속 클러스터에 2와 3을 사용했습니다.
위 내용은 Elasticsearch 단일 머신 2노드 클러스터 배포를 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
