Share
Sign In
Lighthouse Dev
하둡 - Map Reduce
L
Lighthouse
😘
1
😀
1
MapReduce는 대규모 데이터를 분산 환경에서 처리하기 위한 프로그래밍 모델입니다. MapReduce는 입력 데이터를 키-값 쌍으로 변환하는 Map 단계와, 동일한 키를 가진 데이터를 집계하는 Reduce 단계로 구성됩니다.
MapReduce는 다음과 같은 특징을 가지고 있습니다.
병렬 처리: MapReduce는 입력 데이터를 여러 노드에 분산하여 처리합니다. 이를 통해 대규모 데이터를 효율적으로 처리할 수 있습니다.
간결한 프로그래밍: MapReduce는 단순한 프로그래밍 모델을 제공합니다. 이를 통해 개발자가 대규모 데이터를 쉽게 처리할 수 있습니다.
확장성: MapReduce는 확장성이 뛰어납니다. 이를 통해 대규모 데이터 처리 환경에 쉽게 적용할 수 있습니다.
MapReduce의 구조
MapReduce는 다음과 같은 구조로 구성됩니다.
JobTracker: JobTracker는 MapReduce 작업을 관리하는 서버입니다. JobTracker는 MapReduce 작업을 분배하고, 작업의 진행 상황을 추적합니다.
TaskTracker: TaskTracker는 MapReduce 작업을 수행하는 서버입니다. TaskTracker는 JobTracker의 명령에 따라 MapReduce 작업을 수행합니다.
MapReduce의 작동 방식
MapReduce는 다음과 같은 방식으로 작동합니다.
사용자는 MapReduce 작업을 생성합니다.
JobTracker는 MapReduce 작업을 분배합니다.
TaskTracker는 MapReduce 작업을 수행합니다.
JobTracker는 작업의 진행 상황을 추적합니다.

사용자는 JobTracker를 통해 MapReduce 작업을 생성할 수 있습니다. JobTracker는 MapReduce 작업을 여러 TaskTracker에 분배합니다. TaskTracker는 JobTracker의 명령에 따라 MapReduce 작업을 수행합니다. JobTracker는 작업의 진행 상황을 추적합니다.
MapReduce의 단계
MapReduce는 다음과 같은 두 단계로 구성됩니다.
Map 단계: Map 단계는 입력 데이터를 키-값 쌍으로 변환합니다. Map 단계는 입력 데이터를 한 줄씩 읽어 키-값 쌍으로 변환합니다.
Reduce 단계: Reduce 단계는 동일한 키를 가진 데이터를 집계합니다. Reduce 단계는 Map 단계의 출력을 키-값 쌍으로 받고, 동일한 키를 가진 데이터를 집계합니다.
MapReduce는 다양한 분야에서 활용되고 있습니다. 예를 들어, 빅데이터 분석, 디지털 아카이빙, 미디어 스트리밍 등에서 MapReduce가 사용되고 있습니다.
MapReduce의 장점
MapReduce는 다음과 같은 장점을 가지고 있습니다.
병렬 처리: MapReduce는 입력 데이터를 여러 노드에 분산하여 처리합니다. 이를 통해 대규모 데이터를 효율적으로 처리할 수 있습니다.
간결한 프로그래밍: MapReduce는 단순한 프로그래밍 모델을 제공합니다. 이를 통해 개발자가 대규모 데이터를 쉽게 처리할 수 있습니다.
확장성: MapReduce는 확장성이 뛰어납니다. 이를 통해 대규모 데이터 처리 환경에 쉽게 적용할 수 있습니다.
MapReduce의 단점
MapReduce는 다음과 같은 단점을 가지고 있습니다.
복잡성: MapReduce는 복잡한 구조를 가지고 있습니다. 따라서 MapReduce를 사용하려면 충분한 이해가 필요합니다.
성능: MapReduce의 성능은 네트워크 대역폭에 따라 제한될 수 있습니다.
MapReduce의 활용 사례
MapReduce는 다음과 같은 분야에서 활용되고 있습니다.
빅데이터 분석: MapReduce는 대규모 데이터를 분석하기 위한 플랫폼으로 사용될 수 있습니다. 예를 들어, 로그 데이터를 분석하여 고객 행동을 분석하거나, 금융 데이터를 분석하여 이상 거래를 감지하는 데 MapReduce를 사용할 수 있습니다.
디지털 아카이빙: MapReduce는 디지털 아카이빙을 위한 플랫폼으로 사용될 수 있습니다. 예를 들어, 정부 기관은 공공 데이터를 MapReduce에 저장하여 보관할 수 있습니다.
미디어 스트리밍: MapReduce는 미디어 스트리밍을 위한 플랫폼으로 사용될 수 있습니다. 예를 들어, 온라인 동영상 스트리밍 서비스는 MapReduce를 사용하여 동영상을 저장하고 스트리밍할 수 있습니다.
Kp
Subscribe to 'kpmg-lighthouse'
Welcome to 'kpmg-lighthouse'!
By subscribing to my site, you'll be the first to receive notifications and emails about the latest updates, including new posts.
Join SlashPage and subscribe to 'kpmg-lighthouse'!
Subscribe
😘
1
😀
1
김원준
[1] - Sync 와 Async 그리고 Blocking과 NonBlocking
0. 개요 아무것도 모르는 대학생 시절에, 학부 인턴을한 적이 있다. 그때 팀장님이 신입 면접을 보고 오신 뒤, 나에게 질문을 하신 적이 있다. “oo아 동기와 비동기 차이를 설명해 봐” 동기 - “하나하나 순차적으로 실행하는 것 !” 비동기 - “동시에 실행되는 것 !” 이라고 대답한 기억이 있다. 아마 이렇게 대답한 나는 그 당시에 동기 / 비동기를 아래 사진과 같이 이해하고 있었던 것 같다. 내가 이해한 "동기" 내가 이해한 "비동기" 얼핏 보기엔 맞는 대답이기도 하다. 하지만 지금 와서 생각해 보면 “하나하나 순차적으로 실행하는 것 !”의 대답은, Blocking Sync에 대한 설명일 수도 있고, Blocking Async에 대한 설명일 수도 있다. 또, “동시에 실행되는 것 !” 의 대답은, NonBlocking Sync일 수도 있고 NonBlocking Async일 수도 있다. 물론, 이론적으론 그렇다. 해당 개념을 잘 모르는 사람에게는, Sync와 Async의 단어 자체는 익숙할 수 있어도, Blocking과 NonBlocking이 앞에 붙는 순간 머리가 아파올 수 있다.
👍❤️😀😘
9
Lighthouse
Clean Code 깊게파보기
개요 개발을 하면서 과거에 작업했던 코드를 다시 봐야 하는 상황이 종종 있다. 과거에 깨끗하지 않게 코드를 작성했다면, 코드를 다시 이해하고 원인을 찾는 부분에서 시간을 소요 할 가능성이 높다. 특히, 서비스 중인 프로그램에서 버그가 발생해 빠르게 이슈 대응을 해야 한다면, 머리가 새하얘질 것 이다. 또한, 이런 경험을 한 적이 있을 것이다. 시간이 부족해서 빠르게 개발하고, ‘아.. 나중에 리팩토링 해야겠다.’ 라고 생각한 경우도 있을 것이다. 하지만, 리팩토링을 하는 Task를 따로 추가하는 경우는 매우 희박한 경험들이 있을 것이다. 이런 경험을 하면서 개발 초기 부터 이해가 잘되는 코드를 만들기 위한 방법을 찾아 보게 되었고, 클린 코드에 대해 알게 되면서 학습을 진행했다. 클린 코드를 알기 전 개발에 급급해서 만들었던 과거의 코드 클린 코드란? 한 개발자는 클린 코드에 대해 다음과 같이 말했다. 그래디 부치(Grady Booch) ”클린 코드는 단순하고 직접적이다. 클린 코드는 잘 쓴 문장처럼 읽힌다. 클린 코드는 설계자의 의도를 숨기지 않는다. 오히려 명쾌한 추상화와 단순한 제어문으로 가득하다." 이 외에도 여러 개발자들의 말을 정리하면 다음과 같다. 다른 사람이 읽기 쉬운 코드 유지 보수가 쉬운 코드 간단 명료하고, 의도가 분명한 코드 클린 코드에 대해 많은 말들이 있지만 개인적으로 클린코드의 핵심은 라고 생각 된다. “누구에게나” 라고 생각한 이유는 프로젝트는 팀원들과 같이 진행을 하기 때문에 내가 작성한 코드를 팀원들이 읽기 때문이다.
👍❤️😘
4
Lighthouse
하둡 - 아파치 프로젝트 및 KHP
아파치 프로젝트 아파치 프로젝트는 오픈 소스 소프트웨어 개발을 위한 비영리 조직입니다. 하둡은 아파치 프로젝트의 핵심 프로젝트 중 하나입니다. 아파치 프로젝트는 하둡의 개발, 유지 관리, 보급을 담당하고 있습니다. 아파치 프로젝트는 하둡의 안정성과 성능을 향상시키기 위해 지속적으로 노력하고 있습니다. 또한, 하둡의 사용을 지원하기 위한 다양한 도구와 리소스를 제공하고 있습니다. KHP(카카오하둡) KHP는 카카오가 자체 개발한 하둡 배포판입니다. KHP는 하둡의 최신 버전을 기반으로 개발되었으며, 카카오의 요구 사항에 맞게 최적화되어 있습니다. KHP는 다음과 같은 특징을 가지고 있습니다. 높은 확장성: KHP는 대규모 클러스터 환경에서의 안정적인 운영을 지원합니다. 높은 성능: KHP는 하둡의 성능을 향상시키기 위한 다양한 최적화 기술을 적용하고 있습니다. 쉽고 편리한 관리: KHP는 하둡의 관리를 단순화하기 위한 다양한 기능을 제공합니다. KHP는 카카오의 빅데이터 플랫폼의 기반으로 사용되고 있습니다. 또한, 카카오 외에도 다양한 기업과 기관에서 KHP를 사용하고 있습니다.
😘😀👍❤️
4