isPowerfulBlog

[ElasticSearch] Ubuntu 20.04: ElasticSearch 8.4 install 본문

Data Engineering

[ElasticSearch] Ubuntu 20.04: ElasticSearch 8.4 install

왕밤빵도라에몽 2022. 9. 3. 07:26

JAVA 환경변수 설정

스크린샷, 2022-09-03 06-10-11

  • javac의 위치를 찾기 위해 readlink 명령어 사용
sudo vi /etc/profile

스크린샷, 2022-09-03 06-11-57

  • profile문서에 찾은 위치 추가 (마지막 줄)
  • 위에서 찾은 경로에서 /bin 위에 경로까지만 등록
reboot
  • 재부팅

스크린샷, 2022-09-03 06-14-35

  • 환경변수 잘 설정되었는지 확인

근데 elasticsearch 7.x 버전부터는 jdk가 내장되어있다고 하네😅
java-13-openjdk-amd64는 버전 에러나서 -> java-17-openjdk-amd64로 openjdk 재설치 후 환경변수도 변경해줬음!


우분투에서 엘라스틱서치 설치

우분투에서는 기본적으로 엘라스틱서치 컴포넌트 이용이 불가능하다고 한다.🤔
그래서 아래 과정을 거쳐서 설치해야함~

$ curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  1. 설치를 위해 Elastic Public GPG 키를 추가
$ echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
  1. sources.list.d 폴더에 Elastic 소스리스트를 추가 (버전 8.x)
$ sudo apt update
  1. package list 업데이터
$ sudo apt install elasticsearch
  1. elasticsearch 설치

fatal exception while booting Elasticsearchjava.lang.RuntimeException 에러

스크린샷, 2022-09-03 06-27-10

시켜보려했으나 error

fatal exception while booting Elasticsearchjava.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.server@8.4.1/org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:260)
    at org.elasticsearch.server@8.4.1/org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166)
    at org.elasticsearch.server@8.4.1/org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:66)

스크린샷, 2022-09-03 06-45-23

  • 파일 소유권 확인 -> root

image

https://stackoverflow.com/questions/40766301/running-elasticsearch-as-the-root-user

  • 엘라스틱서치는 root 계정으로 실행이 불가능

스크린샷, 2022-09-03 06-04-49

  • 설치 시, 기본적으로 elasticsearch user와 group 생성된다고 한다.

에러 해결

$ sudo chown elasticsearch:elasticsearch -R /usr/share/elasticsearch
$ sudo chown elasticsearch:elasticsearch -R /var/log/elasticsearch
$ sudo chown elasticsearch:elasticsearch -R /var/lib/elasticsearch
$ sudo chown elasticsearch:elasticsearch -R /etc/default/elasticsearch
$ sudo chown elasticsearch:elasticsearch -R /etc/elasticsearch
  • 엘라스틱서치 관련 파일들의 권한변경
  • -R 옵션: 하위 폴더까지 전부 권한 적용
$ sudo vi /etc/default/elasticsearch

스크린샷, 2022-09-03 06-40-27

  • /etc/default/elasticsearch 파일 수정
  • java-13-openjdk-amd64 -> java-17-openjdk-amd64
  $ sudo systemctl enable elasticsearch
  $ sudo systemctl start elasticsearch
  $ sudo systemctl status elasticsearch
  • 다시 실행

스크린샷, 2022-09-03 07-00-23

  • 실행은 된다.

curl: (52) Empty reply from server 에러

스크린샷, 2022-09-03 07-52-16

  • 서버에서 응답을 못 받는 문제
  • curl: (52) Empty reply from server
  • 8.x에서 나는 에러같다... 잘은 모르겠음

에러 해결

https://velog.io/@junsugi/Elasticsearch-curl-52-Empty-reply-from-server-%EC%97%90%EB%9F%AC
위 링크 따라서 천천히 에러 해결해봤다

스크린샷, 2022-09-03 07-42-09

  • elasticsearch 기본 계정에는 비번이 존재하는데 기억 안 나니까 새로 발급받기

스크린샷, 2022-09-03 07-48-44

  • http_ca.crt 찾기

스크린샷, 2022-09-03 07-59-32

  • http_ca.crt 인증서 경로를 넣어 curl 명령 수행
  • sudo 붙여준건 내 경우에는 인증서 경로가 root에서 시작하기 때문
  • 아까 새로 발급받은 비번입력 입력해주면 됨

진짜루 성공🥲


References

https://dana-study-log.tistory.com/entry/JAVA-JDK-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-Elasticsearch-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%8B%A4%ED%96%89-on-Linux
https://velog.io/@qnfmtm666/elasticsearch-Elasticsearch-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-Ubuntu-20.04