[Elasticsearch] Discovery Mode 정리.

Elastic/Elasticsearch 2020. 12. 11. 11:34

참고문서)

www.elastic.co/guide/en/elasticsearch/reference/7.x/modules-discovery.html

 

 

1. 단독 구성

discovery.type=single-node

 

2. 클러스터 구성

discovery.seed_hosts=e1,e2,e3

cluster.initial_master_nodes=e1,e2,e3

 

1번과 같이 단독 구성은 어떤 형태로든 클러스터 환경 구성이 안됩니다.

또한, 단독 구성 노드를 동일 인스턴스, 로컬 환경에서 여러 개 실행이 되지 않습니다.

 

2번과 같은 클러스터 구성에서는 최소 2대 이상의 구성이 필요 하며,

Master 노드에 대한 자격을 가지는 노드도 또한 2대 이상 필요 합니다.

 

3개 노드 구성 시)
Master 노드가 죽게 되면, Master 노드 자격 노드가 Master 로 선출 되며 서비스가 가능 합니다.

2개 노드 구성 시)
Master 노드가 죽게 되면 서비스가 불가능 합니다.

Master 노드 이외 다른 노드가 죽어도 서비스는 불가능 합니다.

 

간혹, 클러스터 구성 시 Master 노드에 대한 쿼럼 구성을 오해 하시는 경우가 있어서 작성해 보았습니다.

 

:

[Python] pyenv 구성 하기 on Mac

ITWeb/개발일반 2020. 10. 22. 11:51

기존 Mac 에 설치 되어 있던 2.7.x 를 사용하지 않으려면 User 계정의 .bash_profile 이나 .zshrc 등에 alias 설정을 통해서 3.x 만 사용 하도록 하면 됩니다.

 

$ vi .zshrc

alias python=/usr/bin/python3
alias pip=/usr/bin/pip3


python 으로 개발 시 버전별로 다르게 해야 하는 경우가 많이 발생 합니다.

예전에는 virtualenv 를 사용 했었는데 pyenv 라는 좋은 툴이 있으니 이걸 그냥 사용하는게 좋겠죠.

 

# 설치하기

$ brew install pyenv
$ brew upgrade pyenv

# bash 환경

$ vi ~/.bash_profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"


eval "$(pyenv init -)"


$ source ~/.bash_profile

# zsh 환경
$ vi .zprofile or .zshrc
PYENV_ROOT="$HOME/.pyenv"
PATH="$PYENV_ROOT/bin:${PATH}"

export PYENV_ROOT
export PATH

eval "$(pyenv init -)"

 

$ source ~/.zprofile

$ pyenv install --list
$ brew install zlib
$ pyenv install 3.8.6
$ pyenv versions

# pyenv commands
https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-commands

# 버전 변경 쉘
$ pyenv shell 3.8.6
$ python3.8.6 --version

or

$ python --version

# shell 변경
$ python --version
Python 3.8.1


$ pyenv shell 3.8.6
$ python --version
Python 3.8.6


$ pyenv shell --unset
$ python --version
Python 3.8.1

# virtualenv 설치
$ brew install pyenv-virtualenv

# bash 환경
$ vi ~/.bash_profile

eval "$(pyenv virtualenv-init -)"

 

$ source ~/.bash_profile

# zsh 환경
$ vi .zprofile or .zshrc

eval "$(pyenv virtualenv-init -)"

 

$ source ~/.zprofile

# virtualenv 생성
$ pyenv virtualenv 3.8.6 helloworld
$ pyenv activate helloworld
(helloworld) $
$ pyenv deactivate helloworld

# virtualenv 삭제
$ pyenv virtualenvs
$ pyenv uninstall helloworld

 

:

[Similarity] Universal Sentence Encoder/4 - 링크.

ITWeb/검색일반 2020. 10. 20. 17:32

https://tfhub.dev/google/universal-sentence-encoder/4

https://www.elastic.co/blog/text-similarity-search-with-vectors-in-elasticsearch

 

Elasticsearch 내 dense_vector type 을 이용한 Similarity 검색을 하기 위해 필요한 거라 링크 걸어 둡니다.

:

[Spring] WebSocket 관련 링크

ITWeb/개발일반 2020. 10. 13. 12:08
https://spring.io/guides/gs/messaging-stomp-websocket/

https://stomp.github.io/stomp-specification-1.2.html

https://github.com/sockjs/sockjs-client

WebSocket 관련 개발 참고 문서 입니다.

:

[Elasticsearch] 멀티노드 논리적 실행.

Elastic/Elasticsearch 2020. 9. 23. 16:53

elasticsearch-version.tar.gz 을 받아서 압축 해제 한 후에 단일 인스턴스에서 여러개의 노드를 실행 시켜 클러스터 구성을 하기 위한 방법 입니다.

 

Case 1)

$ ES_PATH_CONF=config bin/elasticsearch -Epath.data=data1 -Epath.logs=logs1 -d -p 1.pid

$ ES_PATH_CONF=config bin/elasticsearch -Epath.data=data2 -Epath.logs=logs2 -d -p 2.pid

$ ES_PATH_CONF=config bin/elasticsearch -Epath.data=data3 -Epath.logs=logs3 -d -p 3.pid

 

Case 2)

$ ES_PATH_CONF=config1 bin/elasticsearch -Epath.data=data1 -Epath.logs=logs1 -d -p 1.pid

$ ES_PATH_CONF=config2 bin/elasticsearch -Epath.data=data2 -Epath.logs=logs2 -d -p 2.pid

$ ES_PATH_CONF=config3 bin/elasticsearch -Epath.data=data3 -Epath.logs=logs3 -d -p 3.pid

 

별다른건 하나도 없으며, 활용하는 방법에 대한 차이 정도로 보면 될 것 같습니다.

: