하둡 7

데이터 전처리 - 결측값 처리

지난 포스트에서는 크롤링으로 수집한 데이터를 통해 선수의 공격과 수비 지표로 쓸 수 있는 공격 성공률, 리시브 효율, 세트당 서브/세트/블로킹/디그 수 등을 구했다. 하지만 공격 지표 중에는 공격 성공률 뿐 아니라 공격이 얼만큼의 효과를 냈는지 보는 '공격 효율' 또한 중요하다. 공격 효율은 (공격 성공-공격 범실)/공격 시도 로 구한다. 그러나 크롤링 당시 전체 범실 개수만 저장하고 공격에서의 범실은 저장하지 않아서 추가로 공격 범실 데이터가 필요했다. ( 데이터 새로 얻는 과정은 생략 ) 새롭게 얻은 데이터이다. 이제 기존에 작성했던 코드 중 공격 효율(at_rate)을 계산하는 부분을 추가한다. 공격 성공률, 공격 효율, 리시브 효율은 모두 백분율이므로 이전에 전처리 할 때 놓쳤던 백분율 변환 부분..

데이터 전처리 - PySpark에서 SQL 사용하기

저번 포스트에서 설명했듯이 이번 프로젝트에서는 배구 선수들의 능력치를 통해 팀 별 경기에서 어떤 팀이 승리할지를 예측하는 모델을 만들 것이다. 그러기 위해서는 선수 능력치를 판단할 수 있는 지표가 필요한데, 이전에 모았던 단순 데이터로는 한 눈에 파악하기 어렵다. 현재 데이터의 컬럼에는 이름, 소속 팀, 포지션, 총 점수 외에도 공격 시도, 공격 성공, 리시브 시도, 리시브 정확, 리시브 실패, 서브 성공, 세트 성공, 블로킹 성공, 디그 성공 이 있다. 이 중 공격 지표로 사용할 수 있는 공격 성공률과 수비 지표로 사용할 수 있는 리시브 효율을 구하고, 참여한 세트 수를 통해 세트당 서브, 세트, 블로킹, 디그 개수를 구해서 새롭게 데이터를 만들 것이다. 위의 내용으로 데이터 전처리를 해 볼 텐데, 어..

[Hadoop] 맵리듀스 - 분산 데이터 처리 프레임워크

좋은 분산 시스템을 구축하기 위해서는 효율적인 입출력도 중요하지만 이것만으로는 충분하지 않다. YARN은 클러스터에 계산을 분산하고 HDFS에 보관된 데이터를 확장 가능하도록 처리하는 방법을 추상화해서 제공하는 것 뿐이다. 따라서 계산을 표현하는 방법이 중요한데, 하둡이 가장 처음 지원한 데이터 처리 모델은 맵리듀스이다. 맵리듀스는 구글이 발표했고 많은 문제를 해결할 수 있으며 단순한 모델에 기반을 둔다. 덕분에 분산 시스템을 잘 몰라도 인프라 구축을 고민하지 않고 맵리듀스를 통해 문제를 해결할 수 있다. 맵리듀스는 병렬 처리 모델이고 문제를 맵 단계, 셔플 단계, 리듀스 단계로 나눠서 수행한다. HDFS의 데이터 지역성과 YARN의 작업 및 리소스 관리 기능이 이 세 단계 계산이 효율적이도록 돕는다. ..

[PySpark] Jupyter Notebook에서 PySpark 사용하기

저번 포스트에서는 windows10 에 스파크를 설치해보았다.다만 cmd 창에서 모든 작업을 진행하기에는 불편함이 있어서 (작업 명령어 등 내용 저장에 불편)앞으로는 쥬피터 노트북으로 작업하기 위해 작업환경을 세팅하고 테스트로 데이터를 불러와보았다.쥬피터 노트북과 아나콘다는 이미 설치되어 있다고 가정한다. 데이터를 저장하고 관리하기 위해 하둡을 함께 사용한다. (하둡 설치 방법은 이전 포스트 참고)즉, 이번 포스트에서 다루는 내용은 스파크와 하둡을 연결하는 내용이라고 볼 수 있겠다.   (1) 하둡 실행cmd 창을 열어 하둡 설치파일이 있는 디렉토리로 이동하고 다음 명령어들을 차례로 실행한다.이 때 'hdfs namenode -format' 명령은 할 때마다 실행하지 않고 맨 처음에만 실행해도 되는 것 ..

[Hadoop] YARN - 리소스 관리자와 스케줄러

저번에는 하둡이 무엇인지, 그리고 하둡의 기본 파일 시스템인 분산 파일 시스템에 대해 공부했다. 이번에는 이어서 하둡의 리소스 관리자와 스케줄러에 대해 공부해보려고 한다. 분산 시스템에서는 스케줄링과 리소스 관리 기능을 핵심 요소로 가지고 있는데, 하둡에서는 계산 리소스를 할당하고 사용자 애플리케이션을 스케줄링하는 시스템으로 YARN 을 사용한다. YARN (Yet Another Resource Negotiator) 은 스케줄링과 리소스 관리를 담당하여 데이터의 지역성을 극대화하고 계산량이 많은 애플리케이션이 자원을 독점하지 않도록 제어한다. 또한 교체가 가능한 스케줄링 시스템을 지원하고 사용자당 리소스 제한, 작업 대기열당 리소스 할당량 등의 공용 리소스 시스템 스케줄링에 필요한 환경 설정을 스케줄러에..

[Hadoop] 하둡 설치하고 확인해보기

스파크를 사용할 때 저장소로 하둡을 사용하기 위해 하둡을 설치해보겠다. 하둡 설치는 다음 과정을 따른다. (1) 하둡, 자바 다운 https://hadoop.apache.org/releases.html 위 링크에서 받으려는 하둡 버전을 확인하고 binary 를 선택해 압축파일을 다운받는다. 압축파일은 ~.tar.gz 확장자 이름을 가지고 있고 나는 3.2.2 버전을 받았다. (스파크에 포함된 하둡 버전이 3.2 버전이다.) 자바(jdk)도 다운받아야 하지만 자바는 이미 있기 때문에 해당 과정은 생략한다. (나의 자바 버전 13) (2) 환경변수 설정 스파크 설치 때와 마찬가지로 환경변수를 설정한다. (이전 게시글에서 자세히 다뤘으므로 여기서는 패스한다.) 다만 이전에 설정했던 HADOOP_HOME 을 편..

[Hadoop] 하둡과 분산 파일 시스템

데이터 과학, 데이터 분석에 관심이 있다면 한 번쯤 접하게 되는 이름이 바로 '하둡(Hadoop)'이다. 하둡은 자바 기반의 분산 컴퓨팅 플랫폼으로, 핵심 파일 시스템인 HDFS(Hadoop Distributed File System) 덕분에 대용량의 데이터를 저장하고 다룰 수 있다. 어떻게 이런 관리가 가능할까? 하둡은 구글의 GFS(Google File System)를 기반으로 설계되었는데, 일반적인 파일 시스템을 가진 여러 데이터노드를 묶어서 하나의 분산 파일 시스템을 구축하도록 하였다. 따라서 파일 시스템을 쉽게 확장할 수 있게 되었고 대용량의 데이터를 저장하고 관리할 수 있게 되었다. 이런 HDFS의 설계에는 세 가지의 가정이 반영되었는데 첫 번째, 데이터의 풀 스캐닝을 지원하기 위해서 파일 순..