설치

edit

Elasticsearch는 Java 8 이상이 필요합니다. 이 글을 쓰는 시점에서는 Oracle JDK 버전 1.8.0_131 사용이 권장됩니다. Java 설치는 플랫폼에 따라 달라지므로 여기서 자세히 다루지 않겠습니다. Oracle의 권장 설치 설명서를 Oracle’s website에서 구할 수 있습니다. Elasticsearch 설치에 앞서 Java 버전 확인을 위해 다음을 실행하십시오. 그 결과에 따라 설치하거나 업그레이드하면 됩니다.

java -version
echo $JAVA_HOME

Java가 설정되었다면 Elasticsearch를 다운로드하고 실행할 수 있습니다. 그 이진 파일은 지금까지 나온 모든 릴리스와 함께 www.elastic.co/downloads에 있습니다. 각 릴리스에서 zip 또는 tar 아카이브, DEB 또는 RPM 패키지를 선택할 수 있습니다. 여기서는 간단하게 tar 파일을 사용하겠습니다.

다음과 같이 Elasticsearch 5.3.3 tar를 다운로드합니다. Windows 사용자는 zip 패키지를 다운로드해야 합니다.

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.3.tar.gz

그리고 다음과 같이 압축을 풉니다. Windows 사용자는 zip 패키지를 풀어야 합니다.

tar -xvf elasticsearch-5.3.3.tar.gz

그러면 현재 디렉토리에 여러 파일과 폴더가 생성됩니다. 다음과 같이 bin 디렉토리로 이동합니다.

cd elasticsearch-5.3.3/bin

이제 노드와 단일 클러스터를 시작할 수 있습니다. Windows 사용자는 elasticsearch.bat 파일을 실행해야 합니다.

./elasticsearch

모두 순조롭게 진행되었다면 아래와 같은 메시지가 표시됩니다.

[2016-09-16T14:17:51,251][INFO ][o.e.n.Node               ] [] initializing ...
[2016-09-16T14:17:51,329][INFO ][o.e.e.NodeEnvironment    ] [6-bjhwl] using [1] data paths, mounts [[/ (/dev/sda1)]], net usable_space [317.7gb], net total_space [453.6gb], spins? [no], types [ext4]
[2016-09-16T14:17:51,330][INFO ][o.e.e.NodeEnvironment    ] [6-bjhwl] heap size [1.9gb], compressed ordinary object pointers [true]
[2016-09-16T14:17:51,333][INFO ][o.e.n.Node               ] [6-bjhwl] node name [6-bjhwl] derived from node ID; set [node.name] to override
[2016-09-16T14:17:51,334][INFO ][o.e.n.Node               ] [6-bjhwl] version[5.3.3], pid[21261], build[f5daa16/2016-09-16T09:12:24.346Z], OS[Linux/4.4.0-36-generic/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_60/25.60-b23]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [aggs-matrix-stats]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [ingest-common]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [lang-expression]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [lang-groovy]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [lang-mustache]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [lang-painless]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [percolator]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [reindex]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [transport-netty3]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded module [transport-netty4]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService     ] [6-bjhwl] loaded plugin [mapper-murmur3]
[2016-09-16T14:17:53,521][INFO ][o.e.n.Node               ] [6-bjhwl] initialized
[2016-09-16T14:17:53,521][INFO ][o.e.n.Node               ] [6-bjhwl] starting ...
[2016-09-16T14:17:53,671][INFO ][o.e.t.TransportService   ] [6-bjhwl] publish_address {192.168.8.112:9300}, bound_addresses {{192.168.8.112:9300}
[2016-09-16T14:17:53,676][WARN ][o.e.b.BootstrapCheck     ] [6-bjhwl] max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
[2016-09-16T14:17:56,718][INFO ][o.e.c.s.ClusterService   ] [6-bjhwl] new_master {6-bjhwl}{6-bjhwl4TkajjoD2oEipnQ}{8m3SNKoFR6yQl1I0JUfPig}{192.168.8.112}{192.168.8.112:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
[2016-09-16T14:17:56,731][INFO ][o.e.h.HttpServer         ] [6-bjhwl] publish_address {192.168.8.112:9200}, bound_addresses {[::1]:9200}, {192.168.8.112:9200}
[2016-09-16T14:17:56,732][INFO ][o.e.g.GatewayService     ] [6-bjhwl] recovered [0] indices into cluster_state
[2016-09-16T14:17:56,748][INFO ][o.e.n.Node               ] [6-bjhwl] started

너무 자세히 들여다보지는 않겠지만, "6-bjhwl"라는 노드(여러분에게는 다른 문자 집합)가 시작됐고 단일 클러스터의 마스터로 표시되었습니다. 지금은 마스터의 의미에 대해 신경 쓰지 마십시오. 여기서 중요한 것은 단일 클러스터 내에서 단일 노드를 시작했다는 사실입니다.

앞서 설명한 것처럼 클러스터 이름 또는 노드 이름을 재정의할 수 있습니다. 다음과 같이 Elasticsearch를 시작할 때 명령행에서 하면 됩니다.

./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name

또한 노드에 접속할 수 있는 위치를 나타내는 HTTP 주소(192.168.8.112) 및 포트(9200) 정보가 있는 http가 표시된 행에 주목하십시오. 기본적으로 Elasticsearch는 포트 `9200`을 사용하여 REST API에 대한 액세스를 제공합니다. 필요하다면 이 포트를 구성할 수 있습니다.