검색엔진 스터디/실습 환경 구축

Elasticserch 6.4.3 실행

막이86 2023. 11. 22. 11:20
728x90

엘라스틱서치 실행

$ docker pull elasticsearch:6.4.3
$ docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearchTest elasticsearch:6.4.3 -v /Users/chihwan/Downloads/elastic-book-snapshot-master:/es/book_backup 

// 예제 코드 추가 
$ docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /Users/chihwan/Downloads/elastic-book-snapshot-master:/usr/share/elasticsearch/data/es/book_backup --name elasticsearchTest docker.elastic.co/elasticsearch/elasticsearch:6.4.3

http://localhost:9200/ 호출

  • cluster_name은 엘라스틱서치 클러스터를 구분하는 중요한 속성
    • 이름이 같으면 충돌할 수 있으므로 반드시 수정해야 한다.
{
  "name" : "d4585ae638e2",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "WWmF3u1ZSBysWjic675zhw",
  "version" : {
    "number" : "7.17.13",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13",
    "build_date" : "2023-08-31T17:33:19.958690787Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

설정 파일 수정

  • config/elasticserch.yml 파일에서 수정
    • cluster.name: "javacafe-cluster"
    • node.name: “javacafe-node1"
      • 엘라스틱서치 노드명을 설정
    • path.data
      • 인덱스 경로를 지정
        • 설정하지 않으면 기본적으로 엘라스틱서치 하위의 data 디렉터리에 인덱스가 생성
    • path.logs
      • 노드와 클러스터에서 생성되는 로그를 저장할 경로를 지정
        • 기본경로는 /path/to/logs
    • path.repo: [
      • 엘라스틱서치 인덱스를 백업하기 위한 스냅숏의 경로를 지정
      • 예제로 제공되는 스냅숏의 경로를 지정하자
    • network.host: 0.0.0.0
      • 특정 IP만 엘라스틱서치에 접근하도록 허용할 수 있다.
      • 선택적으로 IP를 허용해야하는 경우 [1.1.1.1, 2.2.2.2]와 같이 지정
      • 모든 IP를 허용한다면 0.0.0.0
      • 127.0.0.1을 설정하면 개발모드에서 프로덕트 모드로 자동으로 변경된다.
    • http.port: 9200
      • 서버에 접속할수 있는 포트
      • 기본값은 9200
    • transport.tcp.port
      • 엘라스틱서치 클라이언트가 접근할 수 있는 TCP 포트
      • 기본값은 9300
    • discovery.zen.ping.unicast.hosts
      • 노드가 여러개인 경우 유니캐스트로 활성화된 다른 서버를 찾는다.
      • 클러스터로 묶인 노드의 IP를 지정하면된다.
    • discovery.zen.minimum_master_nodes
      • 마스터 노트의 선출 기준이 되는 노드의 수를 지정한다.
    • node.master: true
      • 마스터 노드로 동작여부를 지정
    • node.data: true
      • 데이터 노드로 동작여부를 지정
cluster.name: "javacafe-cluster"
node.name: "javacafe-node1"
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
path.repo: ["/usr/share/elasticsearch/data/es/book_backup/search_example", "/usr/share/elasticsearch/data/es/book_backup/agg_example"]

도커에서 설정파일 변경 방법

$ docker ps
CONTAINER ID   IMAGE                                                 COMMAND                  CREATED          STATUS         PORTS                                            NAMES
647bee871ade   docker.elastic.co/elasticsearch/elasticsearch:6.4.3   "/usr/local/bin/dock…"   11 seconds ago   Up 7 seconds   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearchTest

$ docker exec -it 647bee871ade /bin/bash
$ vi config/elasticsearch.yml

vi가 없는 경우 
$ apt-get update
$ apt-get install vim

도커 재시작
$ docker container restart 647bee871ade

도커 내부에서 파일 다운로드 
curl -O <https://github.com/javacafe-project/elastic-book-snapshot/archive/refs/heads/master.zip>

http://localhost:9200/ 호출

{
  "name" : "d4585ae638e2",
  "cluster_name" : "javacafe-cluster",
  "cluster_uuid" : "WWmF3u1ZSBysWjic675zhw",
  "version" : {
    "number" : "7.17.13",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13",
    "build_date" : "2023-08-31T17:33:19.958690787Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
728x90

'검색엔진 스터디 > 실습 환경 구축' 카테고리의 다른 글

Elasticsearch 8.1.2 실행  (0) 2023.11.22