BigData 21

Java에서 Trino를 사용하여 Elasticsearch 검색하기

이번 포스트에서는 Java에서 Trino를 사용하여 Elasticsearch에서 데이터를 검색하는 방법을 알아보겠습니다. 먼저, Trino와 Elasticsearch를 연결하기 위해서는 Trino Elasticsearch 커넥터를 설치해야 합니다. 이를 위해 Maven을 사용하여 다음과 같은 의존성을 추가합니다. io.trino elasticsearch ${trino.version} 그리고 Trino 서버에서 Elasticsearch 데이터 소스를 등록하기 위해 다음과 같은 Trino 설정 파일을 만듭니다. connector.name=elasticsearch elasticsearch.hosts=http://localhost:9200 이제 Java에서 Trino를 사용하여 Elasticsearch 데이터를..

BigData 2023.04.09

Java에서 Trino를 사용하여 HDFS에서 데이터 검색하기

이번 포스트에서는 Java에서 Trino를 사용하여 HDFS에서 데이터를 검색하는 방법을 알아보겠습니다. 먼저, Trino와 HDFS를 연결하기 위해서는 Trino HDFS 커넥터를 설치해야 합니다. 이를 위해 Maven을 사용하여 다음과 같은 의존성을 추가합니다. io.trino hdfs ${trino.version} 그리고 Trino 서버에서 HDFS 데이터 소스를 등록하기 위해 다음과 같은 Trino 설정 파일을 만듭니다. connector.name=hdfs hdfs.config.resources=/path/to/core-site.xml,/path/to/hdfs-site.xml 위 설정 파일에서 "/path/to/core-site.xml"과 "/path/to/hdfs-site.xml"은 Hadoop..

BigData 2023.04.09

오픈소스 분산 SQL 쿼리 엔진 Trino

Trino란 무엇인가? Trino는 이전에 Presto라는 이름으로 알려진 오픈소스 분산 SQL 쿼리 엔진입니다. Trino는 매우 높은 성능과 확장성을 제공하며, 여러 소스에서 데이터를 쉽게 조인하고 분석할 수 있도록 지원합니다. Trino는 다양한 데이터 소스를 지원하며, 빠른 속도로 대용량 데이터를 처리할 수 있습니다. 이러한 기능으로 Trino는 데이터 엔지니어링 및 분석 분야에서 인기 있는 도구 중 하나입니다. Presto는 2012년 Facebook에서 개발된 분산 SQL 쿼리 엔진으로, 대용량 데이터 분석 및 처리를 위해 고안되었습니다. 그러나, Presto는 오랫동안 개발이 중지되어 사용자들은 Presto의 이전 버전을 계속 사용해야 했습니다. 이후, 2019년 Starburst Data라..

BigData 2023.04.05

성능 모니터링을 위한 Kibana Stack Monitoring 활성화 및 구성

이 포스트에서는 Elasticsearch 클러스터의 성능과 상태를 모니터링하기 위해 Kibana의 Stack Monitoring 기능을 활성화하고 구성하는 방법에 대해 살펴봅니다. 1. Stack Monitoring 활성화 Elasticsearch 설정 변경: elasticsearch.yml 파일에 아래 내용 추가 xpack.monitoring.collection.enabled: true Kibana 설정 변경: kibana.yml 파일에 아래 내용 추가 xpack.monitoring.enabled: true 변경된 설정을 적용하려면 Elasticsearch 및 Kibana 노드를 재시작해야 합니다. Elasticsearch 클러스터를 사용하는 경우 모든 노드의 elasticsearch.yml에 설정을 ..

BigData/Kibana 2023.03.25

Elasticsearch 코디네이팅 노드 동작 테스트

기본 동작이지만 가장 궁금했던 내용에 대해 테스트를 진행했다. N개의 노드를 구성하고, 마스터 노드를 제외한 나머지 노드에 검색 또는 문서 생성 등을 요청할 경우 잘 생성될까? 이론상으로 알고 있는 내용을 확인하기 위함이다. 환경 구축 Node는 2개로 구성하고 각자의 역할을 다음과 같이 정의한다. 1번 노드: 마스터 노드, 데이터 노드, 포트: 9200 2번 노드: 데이터 노드, 포트: 9201 1번 노드 설정 cluster.name: my-cluster node.name: node-master node.master: true node.data: true node.ingest: false http.port: 9200 network.host: [_site_, _local_] discovery.seed_h..

초보자를 위한 Elasticsearch 설정 파일(elasticsearch.yml) 가이드

elasticsearch.yml 파일 구조 elasticsearch.yml 파일은 YAML (YAML Ain't Markup Language) 형식으로 작성되어 있으며, 키-값 쌍으로 구성되어 있습니다. 주석은 # 기호를 사용하여 추가할 수 있습니다. 여러 설정을 구분하기 위해 빈 줄을 사용할 수 있습니다. # 예시 cluster.name: my_cluster node.name: my_node 1. 클러스터 및 노드 관련 설정 cluster.name: 클러스터의 이름을 설정합니다. 노드가 속한 클러스터를 식별하는 데 사용됩니다. node.name: 노드의 이름을 설정합니다. 클러스터 내에서 노드를 식별하는 데 사용됩니다. node.master: 노드가 마스터 후보로 동작할지 여부를 설정합니다. true ..

Elasticsearch 노드의 종류와 역할 (feat 동작 흐름)

Elasticsearch는 분산형 검색 및 분석 엔진으로, 여러 노드로 구성된 클러스터로 동작합니다. 이러한 노드들은 각자 다양한 역할을 수행하며, 클러스터의 전체적인 성능과 안정성에 기여합니다. 1. Master 노드 Master 노드는 클러스터의 관리와 조정을 담당하는 노드입니다. 클러스터 내의 모든 노드는 Master 노드를 통해 연결되며, Master 노드는 클러스터의 상태를 관리하고 변경 사항을 전파합니다. 주요 역할은 다음과 같습니다: √ 클러스터 상태 관리 √ 노드 추가 및 제거 조정 √ 샤드 할당 및 재할당 node.master: true node.data: false node.ingest: false cluster.initial_master_nodes: ["node-1"] # 이 노드의 ..

Elasticsearch에서 사용되는 주요 용어 10가지

Elasticsearch에서는 다양한 용어와 개념이 사용되는데, 이번 포스트에서는 Elasticsearch에서 사용되는 주요 용어 10가지에 대해 알아보겠습니다. 1. Node Elasticsearch 클러스터에서 노드는 클러스터의 구성 단위입니다. 각 노드는 클러스터의 일부분을 구성하며, 데이터를 저장하고 검색을 수행합니다. Elasticsearch 클러스터는 여러 개의 노드로 구성될 수 있으며, 각 노드는 서로 상호작용하여 데이터를 분산하여 처리합니다. 2. Cluster Elasticsearch 클러스터는 데이터를 분산하여 처리하며, 데이터의 안정성과 가용성을 보장합니다. Elasticsearch 클러스터는 노드의 집합으로 구성되며, 각 노드는 클러스터의 일부분을 구성합니다. 3. Index Ela..

Keyword Field를 활용하는 다양한 쿼리 예제

본 내용은 윈도우에 설치된 Elasticsearch 7.10.2 버전으로 기준으로 작성되었습니다. 1. term query term query는 정확한 매치를 찾기 위해 사용됩니다. 예를 들어, 특정 필드에서 "Elasticsearch"라는 값을 가지는 문서를 찾으려면 다음과 같이 사용할 수 있습니다. GET http://localhost:9200/search_test_index/_search { "query": { "term": { "keyword_field": { "value": "Elasticsearch" } } } } 2. terms query terms query는 주어진 terms 중 하나라도 매칭되는 모든 문서를 찾습니다. 예를 들어, "test1" 또는 "Elasticsearch"라는 값을..

초보자를 위한 Elasticsearch 시작하기: CRUD

본 내용은 윈도우에 설치된 Elasticsearch 7.10.2 버전으로 기준으로 작성되었습니다. 1. Index 생성하기 PUT http://localhost:9200/test_index Header: Content-Type: application/json Body: { "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 0 } }, "mappings": { "properties": { "field1": { "type": "text" }, "field2": { "type": "text" }, "field3": { "type": "text" }, "field4": { "type": "text" } } } } 응답: { "acknow..