전체 글 143

Mapreduce Algorithm Design

YARN : Jobtracker, tasktracker 대체 reducer 개수 만큼 결과 파일 생성 shuffle and sort - map side - reduce side API - Mapper ->setup 64MB당 한번 ->cleanup 64MB당 한번 -> map key/value당 한번 - Reducer -> setup 한 번 -> cleanup 한 번 -> reduce key마다 실행 Partitioner 파티션 번호 리턴 Job : mapper 개수는 정의 안함. 인풋크기로 나누면 됨 Writable : de/ serialization WritableComparable : 모든 Key. 정렬해야해서 Serialization : object -> byte stream Deserializa..

디버깅

CFile.Write(CString , int); 사이사이 공백 버그 CFile.Write(CString , int); 로 파일에 텍스트를 출력하려고 했다. 그런데 출력된 txt 파일을 열어보니 글자 사이사이마다 공백이 포함되어있었고, 이에 따라 출력하려던 글자의 절반만 출력되었다. 연구 결과 원인은 Wide 캐릭터와 그냥 캐릭터 사이의 차이 때문인 것 같다. CFile.Write 함수는 인자로 CString 형식을 받아주기는 하지만 특정 빌드 환경에서 문자 사이마다 공백이 추가된다. 그래서 W2A함수를 사용해 유니코드에서 멀티바이트 형식으로 변환해주었더니 원하는 대로 잘 동작하였다. CFile.Write(W2A(CString), int); 과 같이 써주었다. 주의할 점은 W2A 함수를 사용하기 전 US..

벌레잡이 2021.10.30

MapReduce소개

분산파일시스템의 큰 데이터를 맵리듀스로 분석, 변환 - 데이터, 연산을 많은 호스트들에 분산해서 실행 - 앱의 연산(task) 를 병렬실행 close to data 평범한 서버를 계속 추가하면 연산능력을 늘릴 수 있다. 맵리듀스는 프로그래밍 모델 키/밸류 형태 동기 : 계산들이 여러 머신들에 분산돼서 실행됨. -> 오버헤드가 큼. -> 추상화 레벨 높여 시스템이 알아서 해줘 -> 맵리듀ㅜ스 탄생 단순 계산의 추상화. 복잡한 부분은 뒤로 숨김. 논리 레코드(텍스트 한 줄 등)에 map 적용 -> 키 밸류 생성 같은 키의 값들은 같은 reduce로 묶임 적용 -> combine map 과 reduce만 만들면 됨. 데이터가 한 블록의 크기보다 크면 여러 블록으로 나누어 처리 input -> splitting..

버그

어떤 변수를 수정해 주었는데 전혀 다른 변수가 같이 수정되는 현상. 사실 이런 경우 대부분은 포인터가 꼬인 상황이다. 나의 경우 그 원인은 BSTR이었다. BSTR은 아닌 척 하고 있지만 사실은 wchar * 형이다. 포인터 형식이므로 마구잡이로 할당해주면 같은 주소 공간을 여러 변수가 참조하게 되는 상황이 발생하고 위와 같은 문제가 일어날 수 있으니 주의하자. 나는 결국 BSTR을 버리고 CString을 사용해서 문제를 해결했다. 메모리 누수 현상 Resource Monitor프로젝트를 진행하다가 처음으로 메모리 누수 현상을 겪었다. 메모리 누수의 원인은 보통 동적할당을 해주었는데 해제를 제때 안해주었을 때 발생한다. 동적할당은 new 혹은 malloc 등의 함수를 사용할 때가 많다. 필요 없어진 포인..

카테고리 없음 2021.10.19

하둡 실습

컨테이너 기반 하둡 설치 방식 독립 실행 모드 : 기본 실행모드, 로컬에서만 실행. 분산 환경은 불가능함. 가상 분산 모드 : 여러 노드를 사용. 한 장비에 모든 하둡 환경을 설정. 서버 환경이 불완전한 경우( 서버가 최소 3개는 있어야 가능) .HDFS, MapReduce와 관련된 데몬들을 하나의 장비에 가상환경 구성. 완전 분산 모드 : 여러 대의 자비에 하둡 설치. 라이브 서비스 제공 하둡 실행 환경 구성 -환경 설정 파일 hadoop-env.sh : 하둡을 실행하는 쉘 스크립트 파일에서 필요한 환경변수 설정.(JDK경로, 클래스 패스, 데몬 실행 옵션 등) masters : 보조 네임노드를 실행할 서버를 설정. slaves: 데이터 노드를 실행할 서버 설정. core-site.xml : HDFS와..

장치 초기화

이 글은 Inflearn의 Rookies님의 강의를 보고 제 나름대로 필기한 내용입니다. https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-2/dashboard [C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12 - 인프런 | 강의 DirectX 12를 통해 그래픽스 기초를 학습하는 강의입니다. 3D 세상의 물체가 어떤 원리로 모니터 화면에 그려지는지 공부하게 됩니다., MMORPG 개발에 필요한 모든 기술, C++ & Unreal로 Step By Step! 🕹️ www.inflearn.com 이번 글에선 장치 초기화에 대해 알아보자. 이전 글인 "프로젝트 세팅"과 이어지는 내용이..

그래픽스 2021.10.13

Hadoop HDFS

Basic Concepts of HDFS de facto standard : 사실상 표준 Big Data STORE : hdfs processing : map reduce 요약 큰 데이터 저장, 높은 대역대로 애플리케이션에 데이터 스트림 전달, 저장소와 계산능력 여러 서버에 분산. hadoop project 맵리듀스 사용 분산파일 시스템 제공, - 빅데이터가 있고 계산능력을 빅데이터에 보냄. Parallel adding commodity server -> computation sacle Hadoop Ecosystem Mapreduce, yarn, HDFS why distributed file system? 단일 머신의 한계. 네트워크 통신 기반 -> 훨씬 복잡함. 큰 문제는 노드가 죽을 수도 있음, 이때..