전체 글
[Hadoop] YARN - Yet Another Resource Negotiator
YARN이란? Cluster 환경에서 resource 관리와 application 실행을 담당하는 component. 이번 글에서 소개할 component는 Hadoop YARN 입니다. Cluster의 resource를 관리하는 역할을 하며 비슷한 역할을 담당하는 component 중에서는 가장 많이 쓰이고 있습니다. YARN이란? Hadoop이 처음 나왔을 때 1.0 버전에서는 여러 component들이 존재하지 않고 MapReduce만 존재했습니다. 그래서 cluster의 resource 관리 및 scheduling과 task 수행을 모두 MapReduce의 JobTracker가 담당했습니다. 하지만 MapReduce 이외의 다양한 component들이 생기고 수행해야하는 application의 수..
[Docker] Docker로 Hadoop 구성하기 #2 - Hadoop 설치 및 세팅
Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. 관련 글 [Docker] Docker로 Hadoop 구성하기 #1 - MacOS에 Docker 설치 및 CentOS 실행 [Docker] Docker로 Hadoop 구성하기 #3 - Hadoop 클러스터 구성 및 실행 이전 글에서 docker 설치 및 CentOS container를 생성했다면 이번 글에서는 CentOS에 hadoop 설치 및 세팅을 합니다. docker 로 hadoop cluster를 구성하기 위해선 다수의 서버가 필요합니다. 각각의 서버에 기본적인 프로그램들을 설치하기엔 번거로우니 hadoop-base 라는 이름의 container에 hadoop 과 기타 프로그램들을 설치한 뒤..
[Docker] Docker로 Hadoop 구성하기 #1 - MacOS에 Docker 설치 및 CentOS 실행
Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. 관련 글 [Docker] Docker로 Hadoop 구성하기 #2 - Hadoop 설치 및 세팅 [Docker] Docker로 Hadoop 구성하기 #3 - Hadoop 클러스터 구성 및 실행 이번에 해볼 것은 docker 를 이용해 Hadoop cluster 구성하기입니다. Hadoop cluster라는 것이 기본적으로 다수의 컴퓨터가 존재해야 합니다. 같은 환경의 컴퓨터가 여러 대 존재한다면 가능하지만 일반적인 경우에는 다수의 컴퓨터가 존재하지 않고 혹시나 있더라도 전부 똑같은 환경 구성이 되어있는 경우는 극히 드뭅니다. 그래서 이럴 때 가장 유용하게 사용될 수 있는 것이 바로 docker 입..
[Spark] Spark란? - Cluster Computing with Working Sets
Spark란? Cluster 환경에서 In-Memory를 사용해 빠른 데이터 작업을 하기 위한 프레임워크. MapReduce에 이어서 이번 글에서는 Spark 를 소개하겠습니다. 사실 MapReduce 다음 주제로 Yarn을 정하려고 했지만 공부를 하다 보니 Spark 를 하게 되었고 MapReduce와 비교하며 설명하는 것도 나쁘지 않을 것 같아 Spark 로 정하게 되었습니다. Spark란? Spark 라는 것은 MapReduce와 비슷하게 HDFS에 저장되어 있는 데이터를 작업하고 처리하기 위한 프레임워크입니다. Java 언어로 작성해야 했던 MapReduce와 달리 Spark 는 Scala, Python, Java 등 다양한 언어로 프로그래밍이 가능하고 In-Memory 기반의 빠른 연산을 이용하..
[Hadoop] MapReduce - Simplified Data Processing on Large Clusters
MapReduce란? HDFS에 저장되어 있는 빅데이터를 효율적으로 작업 및 처리를 하기 위한 분산 프로그래밍 모델 HDFS에 이어서 이번 글에서는 MapReduce 를 소개하겠습니다. HDFS를 공부했다면 "데이터는 HDFS에 저장해서 여러 DataNode에 저장되어 있는데 이 데이터를 어떻게 사용하지?"라는 궁금증이 생길 수 있습니다. HDFS에 저장되어있는 데이터를 사용하기 위해서 작업을 수행하는 서버로 데이터를 불러와 직접 어플리케이션을 실행시킬 수 있겠지만, 이것은 올바른 빅데이터 사용법이 아닙니다. 왜냐하면 상당히 큰 양의 데이터를 HDFS에 저장했는데, 작업을 위해서 이 데이터를 다시 작업 서버로 가져오는 비용은 데이터 양이 커짐에 따라 증가하기 때문입니다. 그래서 올바른 빅데이터 사용법은 ..
[Hadoop] HDFS - The Hadoop Distributed File System
HDFS란? 하둡 분산 파일 시스템 (Hadoop Distributed File System)으로써 대용량 데이터 사용 및 관리를 효율적으로 하기 위해 설계한 파일 시스템. 이번 글부터는 Hadoop Component들을 하나씩 소개해드릴 예정입니다. 하둡이라는 것이 이미 10년 전부터 유행해 인기가 있었지만 최근 AI 및 딥러닝이 발전함과 동시에 빅데이터라는 분야가 동시에 핫해졌습니다. 빅데이터도 분야가 크게 두 가지로 데이터 엔지니어링, 데이터 분석으로 나눠집니다. 이 중에서 하둡이 메인으로써 사용되는 것이 빅데이터 엔지니어링입니다. 하둡 생태계에서 가장 기본인 HDFS 부터 소개하겠습니다. HDFS 는 하둡 분산 파일 시스템으로써 대용량 데이터 사용 및 관리를 하기 위해 설계한 파일 시스템입니다. ..
[Jupyter] JupyterLab 내부 환경 변수 설정하기
JupyterLab 내부 환경 변수 설정 JupyterLab 내부 환경 변수를 kernel.json 파일을 통해서 설정할 수 있습니다. Python에서 hdfs 경로에 접근 빅데이터 플랫폼에서 JupyterLab를 사용할 때 pydoop을 import 해서 사용하는 경우가 있습니다. 그중에서도 pydoop의 hdfs를 import 하면 직접 hdfs 경로 및 파일에 접근할 수 있습니다. hdfs 에 "test"라는 파일이 존재할 때 python에서 이 파일에 접근하는 방법은 아래와 같습니다. 하지만 위의 명령어를 수행할 때 "HADOOP_CONF_DIR"가 세팅되어 있지 않다는 에러가 발생합니다. 이는 hadoop의 conf 폴더 경로가 설정되어 있지 않다는 것을 의미하는데 해당 에러는 아래와 같이 나타..
[C++] Split #2 - multiple delimiter split 함수 구현
split string이 주어져 있을 때 내가 원하는 글자를 기준으로 잘라 배열에 저장시키는 기능. strtok( 문자열의 시작 주소, 찾기 시작할 위치 ) String 함수로써 string 글자에서 원하는 글자를 찾아 시작 위치를 반환받을 수 있습니다. ( Overloading 되어있기 때문에 parameter가 더 있음 ) 관련 글 [C++] Split #1 - String delimiter split 함수 구현 이번에는 지난번 글에 이어서 C++에서의 split 기능을 두번째로 구현해보겠습니다. 이번 글에서 구현할 split은 이전 글에서도 언급했지만 다수의 delimiter를 기준으로 String을 나눠주는 기능입니다. 이러한 기능의 split은 얼핏 기억을 떠올려보면 사칙연산의 식이 input으..