De-Note sparkafka's dev blog

Ubuntu 환경에서 Elasticsearch 8 설치

들어가며

몇 달 전, 자바로 Elasticsearch를 사용해 개발 할 일이 있었다. 그 당시 Elasticsearch는 8.1까지 나온 상태여서 처음에는 8.1을 설치했다. 설치를 하고, 자바로 Elasticsearch 개발 하는 법을 찾아보았다. 찾아보니 Elasticsearch 8 버전 부터는 Elasticsearch Java Api Client를 통해 개발한다고 했다. 그런데 인터넷의 대부분 자료에서는 Java High Level Client를 사용 하여서 나도 Java High Level Client를 통해 개발을 하려고 했는데, 이 api가 7.15.0에서 deprecated 됐다는 것을 뒤늦게 알았다. 당장 개발을 해야 했던 나는 하는 수 없이 구버전을 재설치하여 개발하였다.

그러나 개발할 때 뭔가 최신판을 써야할 것 같은 강박? 비슷한게 있어서 나중에 꼭 한 번 최신판으로 설치하여 정리를 해야 겠다고 생각했다. 그래서 이번에 Elasticsearch 8 버전을 설치하고 Java Api Client에 대해 공부를 해볼 예정이다.


Elasticsearch 설치

먼저 Elasticsearch 다운로드 페이지에 가서 운영체제에 맞는 파일을 받는다. 나는 Ubuntu 20.04를 통해 개발하고 있다. 22/5/16 현재 최신판은 8.2.0

Elasticsearch download

난 wget을 이용해서 받았다.

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.2.0-linux-x86_64.tar.gz

그 다음, 압축을 풀고 적당한 경로로 이동시켜준다.

$ tar -xzvf elasticsearch-8.2.0-linux-x86_64.tar.gz 
$ mv elasticsearch-8.2.0 /opt/elasticsearch/ 

이 때, 이동한 폴더로 가서 바로 실행시킬 수 있다.

$ cd /opt/elasticsearch/elasticsearch-8.2.0
$ bin/elasticsearch

필요는 없는데, 나는 환경변수를 설정하였다.

$ vi ~/.bashrc
# ES_HOME
export ES_HOME=/opt/elasticsearch/elasticsearch-8.2.0
export PATH=$PATH:$ES_HOME/bin

$ source ~/.bashrc

이러면 바로 Elasticsearch를 실행할 수 있다.

이제 Elasticsearch 환경 설정을 해주자. 먼저 data와 logs를 저장 할 폴더를 만든다.

$ cd /opt/elasticsearch
$ mkdir data logs
$ ls
data  elasticsearch-8.2.0  logs

이제 config 파일을 바꿔주자. config의 elasticsearch.yml을 수정하자. Elasticsearch 8부터는 보안 관련 설정의 기본 값이 true인데, 지금은 관심이 없으므로 false로 바꿔주자. 또 node.name을 변경했을 때는 cluster.initial_master_nodes도 바꿔줘야 한다.

$ cd /opt/elasticsearch/elasticsearch-8.2.0/config
$ vi elasticsearch.yml
# 추가
# cluster.name, node.name은 아무거나 마음에 드는 걸로 하자.
cluster.name: my-cluster
node.name: node-0
path:
  data: /opt/elasticsearch/data
  logs: /opt/elasticsearch/logs
xpack.security.enabled: false
cluster.initial_master_nodes: ["node-0"]

실행해보면 이름이 바뀐 것을 확인할 수 있다.

node name changed

curl을 통해 실행이 되고 있는지 확인해보자.

$ curl -XGET localhost:9200
{
  "name" : "node-0",
  "cluster_name" : "my-cluster",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "8.2.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "b174af62e8dd9f4ac4d25875e9381ffe2b9282c5",
    "build_date" : "2022-04-20T10:35:10.180408517Z",
    "build_snapshot" : false,
    "lucene_version" : "9.1.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

정상적으로 작동하는 것을 확인하였다.


마치며

Elasticsearch 8 버전을 정상적으로 설치하였다. 다음부터는 Java Api Client를 본격적으로 정리 할 예정이다.