클러스터: 5개의 글
들어가며 Spark를 튜닝하기 위해서는 클러스터의 구조가 어떻게 구성이 되어 있는지, 프로그램은 어떤 순서로 실행이 되는지에 대한 지식은 보유를 하고 계셔야 시스템을 설정 및 튜닝이 가능합니다. 예를 들어 설정하는 옵션에서 executor-memory의 값을 설정해야 하는데, executor가 어떤 역할을 하는지 모른다면... 아니되오 . Spark의 components를 Driver Program, SparkContext, Cluster Manager, Worker Node, Executor, Task, Cache가 있고, 각각의 역할과 어떻게 동작하는지에 대해서 알아보겠습니다. Components Driver Program main()함수를 갖고 있는 프로세스를 말합니다. 우리가 spark-submi..
Spark란? Apache Spark는 빠르고 general-purpose cluster computing system입니다. 다시 말해서 기존에는 batch processing을 하기 위해서 MapReduce를 사용하고, sql을 사용하기 위해서는 hive를 사용하는 등 다양한 플랫폼을 도입해야 했었습니다. 하지만 이제는 Spark 하나의 시스템만을 설치해도 batch, streaming, graph processing, sql 등의 처리가 가능합니다. 또한 Spark는 Java, Scala, Python, 그리고 R언어의 API를 제공하기 때문에 쉽게(?) 구현을 할 수 있습니다. 아래의 high-level tools를 제공함으로써, 위에서 언급한 범용적인 플랫폼이라고 말할 수 있습니다. High-L..
Yarn? Hadoop 1.0에서는 JobTracker가 클러스터의 자원 배분과 Job관리를 함께 수행했기 때문에 JobTracker에서 병목현상이 일어났다. JobTracker가 하던 두 가지 역할-자원관리를 Resource Manager와 Application Master로 분리해서 JobTracker에 몰리던 병목을 제거했습니다. Resource Management, Scheduling/Monitoring을 구분하는 daemon의 기능을 분할하였습니다. global하게 ResourceManager, per-application ApplicationManager를 두자라는 아이디어에서 부터 시작했습니다. 범용 컴퓨팅 클러스터가 가능 (MapReduce)외에도 다양한 어플리케이션을 실행할 수 있으며, ..
오늘은 간단하게 클러스터 모니터링을 위한 API 몇개를 정리해본다. http://es-host:9200/_cat/allocation?v -> 클러스터 디스크 현황 http://es-host:9200/_cluster/health?pretty -> 클러스터 헬스체크 http://es-host:9200/_cat/indices?v -> 인덱스 상태 확인 http://es-host:9200/_cat/shards -> 모든 샤드 상태 확인 http://es-host:9200/_cat/shards/{index_name}?v -> 특정 인덱스의 샤드 상태확인 https://brunch.co.kr/@alden/43 출처: https://coding-start.tistory.com/384?category=757916 [코..
바로 이전 포스팅에 이어 세그먼트 불변성에 대한 포스팅을 이어나가겠습니다. 세그먼트 불변성 세그먼트가 수정 불가능한 불변성을 가짐으로써 제공되는 장점들이 있다. 1)동시성 문제 회피 불변성이 보장된다면 Lock이 필요 없어진다. 다수의 스레드가 동작하는 복잡한 다중 스레드 환경에서 동시성 문제는 매우 중대한 문제이다. 루씬은 세그먼트의 불변성으로 이러한 동시성 문제를 간단히 피해갔다. 2)시스템 캐시 활용 데이터가 OS 커널에서 제공하는 시스템 캐시에 한번 생성되면 일정 시간 동안은 그대로 유지된다. 불변성을 보장하지 않을 경우 수정이 있을 때마다 시스템 캐시를 삭제하고 다시 생성해야하는 비용이 큰 작업을 수행하게 된다. 하지만 불변성이라면 이러한 시스템 캐시를 효율적으로 이용할 수 있다. 3)높은 캐시..