분류 전체보기 34

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

성능 테스트의 패턴 및 전략

성능 테스트는 애플리케이션의 효율성과 안정성을 평가하기 위한 과정입니다. 이 포스트에서는 성능 테스트의 주요 패턴과 안티패턴, 그리고 성능 테스트를 수행하는 동안 주의해야 할 사항들에 대해 설명합니다. 성능 테스트 패턴 1. 지연 테스트(Latency test) > 시스템에서 작업을 완료하는 데 걸리는 시간을 측정합니다. 2. 처리율 테스트(Throughput test) > 단위 시간당 시스템이 처리할 수 있는 작업의 양을 측정합니다. 3. 부하 테스트(Load test) > 특정 부하를 시스템이 감당할 수 있는지 확인합니다. 4. 스트레스 테스트(Stress test) > 시스템의 한계점을 파악합니다. 5. 내구성 테스트(Endurance test) > 시스템을 장시간 실행할 경우 성능 이상 증상이 나..

하루노트 2023.04.08

VisualVM, CPU 캐시 및 최신 프로세서 특성 이해하기

VisualVM 소개 및 사용법 VisualVM은 자바 가상 머신 (JVM) 프로세스의 성능 및 리소스 사용을 모니터링하는 도구입니다. 실행 중인 프로세스를 실시간으로 모니터링할 수 있는 attach mechanism을 사용합니다. 사용하기 위한 설정 VisualVM을 사용하기 위해 JVM의 설정에 몇 가지 옵션을 추가해야 합니다. 설정 예제는 다음과 같습니다: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote.rmi.p..

하루노트 2023.04.08

오픈소스 분산 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..