728x90
반응형

빅데이터 42

하둡 2.0 튜토리얼 - (5) 워드카운트

하둡 예제 실행 이번 포스팅에서는 하둡에서 기본적으로 제공하는 기본 예제인 워드카운트를 실행해보도록 하겠습니다. 홈디렉토리 생성 먼저 doop계정에 대한 홈 디렉토리를 생성해주겠습니다. 다음 커맨드를 실행해보시면 . 디렉토리가 없다고 나올것입니다. > hdfs dfs -ls 하둡2에서는 계정에 대한 디렉토리를 사용자가 따로 생성해주어야 합니다. 다음 커맨드들을 차례로 실행시커 홈 디렉토리를 만들어주겠습니다. > hdfs dfs -mkdir /home > hdfs dfs -mkdir /home/doop 그리고 다시 -ls 를 실행하면 이제 홈 디렉토리가 생성되었고, 아무 파일/디렉터리가 없기떄문에 아무 로그도 나오지 않을 것입니다. 예제 대상 파일 저장 이제 예제의 대상이 되는 파일을 hdfs로 넣어주겠습..

하둡 2.0 튜토리얼 - (4) 하둡 실행

하둡 실행 하둡을 실행하기 위해서는 앞서 했던 설정파일들을 오타 없이 잘 작성하셔야 합니다. (저는 한글자 오타 때문에 고생을 많이 했습니다.) 무언가 실행이 잘 되지 않을때는 꼭 로그파일들을 확인하시기 바랍니다. 하둡을 실행하기 위한 프로세스는 다음과 같습니다: 주키퍼 포맷 3개의 저널노드 실행 Active 네임노드 실행 Standby 네임노드 실행 주키퍼 장애 컨트롤러 (zkfc)실행 데이터노드 실행 얀 클러스터 실행 히스토리서버 실행 alias등록 먼저 하둡 실행 및 운영을 위해 미리 편리한 alias들을 등록해두겠습니다. .bashrc 파일을 열어 다음과같은 alias들을 등록해줍니다. alias hadoop="~/hadoop/sbin/hadoop-daemon.sh" alias hdfs="~/ha..

하둡 2.0 튜토리얼 - (3) 하둡 설치

하둡 설치 아래 튜로리얼은 hadoop 1.x와 관련된 파일인 hadoop디렉토리와 hadoop-data디렉토리를 삭제한 뒤 진행됩니다. 하둡 2.7 다운로드 먼저 하둡2의 특정 버전을 다운로드 받겠습니다. 하둡은 이미 3.x이상의 버전이 출시되고 있기 때문에 특정 버전들만 공식적으로 나와있습니다. 우리가 다운로드할 2.7.2버전은 2.7.6버전으로 stable release되어있고 2.7.2버전은 아카이브 되어있습니다. 따라서 아래 링크를 통해 다운받아 주겠습니다. https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz 직접 링크로 다운받으셔도 되고 wget명령어를 이용하셔도 됩니다. > wget https://arc..

하둡 2.0 튜토리얼 - (2) 주키퍼 설치

하둡 High Availability 하둡2부터는 High Availability (이하 HA)라는 용어를 사용합니다. High Availability란 하나의 네임노드와 보조네임노드를 설정하는것이 아닌, 두개의 네임노드를 설정하는 방법입니다. 이는 Active-Stanby방법으로 두번째 네임노드가 Active네임노드에 장애가 생기면, Stanby상태에 있다가 Active한 상태로 되는 방식입니다. 주키퍼 (Zookeeper) 주키퍼는 이 두개의 네임노드를 이용한 HA를 가능하게 하는 분산 코디네이터입니다. 하둡은 주키퍼를 통해 어떤 네임노드가 Active인지 혹은 Stanby인지를 저장합으로서 네임노드들을 관리합니다. 하둡 설정에 의해 주키퍼는 기본적으로 3대가 설정되어 있어야 합니다. 주키퍼 사용자 ..

하둡 2.0 튜토리얼 - (1) 프로토버프 설치

하둡 2.0 이제 하둡 2버전으로 넘어가보도록 하겠습니다. 먼저 설치를 진행할 것인데요, Virtual Box VM과 Java가 모두 설치되었다고 가정하고 진행합니다. 해당 설치 내용은 아래 두개의 포스팅에서 찾아볼 수 있습니다. https://jyoondev.tistory.com/32 https://jyoondev.tistory.com/34 프로토콜 버퍼 프로토콜버퍼란 (이하 프로토버프, Protobuf) 구글이 개발한 데이터전송 방식(규격)입니다. 다른말로는 직렬화 라이브러리 라고도 하죠. 우리가 흔히 알고있는 직렬화/규격 포맷은 json과 xml이 있습니다. 프로토버프는 json이나 xml보다 크기가 작고 성능이 좋아 하둡에서 채택해 사용하게 되었습니다. 이를 설치하기 위해 구글의 깃허브 페이지로 ..

하둡 1.0 튜토리얼 - (17) 하둡 스트리밍

하둡스트리밍 하둡 스트리밍이란, 기존 자바로 맵리듀스를 실행하던것 외에 스크립트 언어 (파이썬, 루비, 셸스크립트 등)를 하둡에서 실행하게 해주는 인터페이스를 말합니다. 맵리듀스가 일정 시간동안 쌓인 데이터를 한번에 배치처리 하는 개념이었다면, 하둡스트리밍은 그때그때 데이터를 처리해야할 필요가 있을때 많이 쓰는 방식입니다. 하둡스트리밍 패키지 하둡 스트리밍을 실행하기 위해서는 contrib/streaming 디렉터리의 hadoop-streaming-1.2.1.jar 파일이 필요합니다. 이 jar파일을 사용해 스크립트를 실행시키는 구조입니다. 하둡 스트리밍을 사용하기 위한 기본적인 커맨드 문법은 다음과 같습니다. > hadoop jar hadoop-streaming-1.2.1.jar \ -input 입력경..

빅데이터/하둡 2019.07.21

하둡 1.0 튜토리얼 - (16) 조인

조인 RDBMS에서의 조인이란 두개의 테이블을 한개(혹은 여러개)의 키값을 기준으로 합치는 작업입니다. 맵리듀스를 사용해 이전에 사용했던 항공데이터와 다른 데이터를 조인해 보겠습니다. 데이터 다운로드 먼저 데이터를 받아야합니다. 다음 명령어를 사용하시면 다운받을 수 있고, > wget http://stat-computing.org/dataexpo/data/carriers.csv 다음 링크를 가셔도 다운 받을 수 있습니다. http://stat-computing.org/dataexpo/2009/carriers.csv 데이터 정제 항공 데이터의 첫줄을 없애주었듯이 이 데이터도 없애주겠습니다. 아래 커맨드를 입력하면 첫줄과 큰다옴표가 데이터에서 사라지게 됩니다. > perl -p -i -e 's/"//g' c..

빅데이터/하둡 2019.07.19

하둡 1.0 튜토리얼 - (15) 전체정렬

전체 정렬 전체 정렬이란 입력 데이터를 먼저 개발자가 샘플링 해서 데이터의 분포도를 조사한 뒤, 미리 파티션의 갯수와 파티션에 저장할 데이터의 범위를 조사한 분포에 맞게 정해주는 정렬 방법입니다. 이때 분포와 파티션 정보가 잘 들어맞는다면 분산환경의 장점을 살려 좋은 효율을 내겠지만, 계산법이 틀렸다면, 특정 파티션에 데이터가 집중되면서 그 리듀스 태스크는 부하가 걸려 오래걸리게 됩니다. 전체정렬은 결국 다른 방식으로 부분정렬을 하고, 그 부분정렬을 모두 합치면 전체정렬이 완성됩니다. 정렬의 관점에서만 보면 전체정렬이 더 낫다고 볼 수 있으나, 부분정렬은 검색이 용이하다는 장점이 있기 때문에 각각의 용도가 다르다고 보면 됩니다. 전체정렬 구현 전체 정렬은 시퀀스파일이 이미 생성되었다는 것을 전제로 진행됩..

빅데이터/하둡 2019.07.18

하둡 1.0 튜토리얼 - (14) 부분정렬

부분정렬 이번에는 같은 데이터를 다른 방식으로 정렬해보겠습니다. 항공 데이터를 운항 거리 순으로 정렬해보겠습니다. 부분 정렬이란, Map작업의 결과를 MapFile이라는 다른 형식으로 변경해 저장한 뒤, 이를 검색하는 방법입니다. 이는 먼저 입력 데이터를 시퀀스파일을 변환하고, 시퀀스파일을 맵파일로 변경합니다. 그리고 맵파일에서 데이터를 검색/조회하는 방식으로 수행됩니다. 프로젝트 생성 먼저 프로젝트를 생성해주도록 하겠습니다. IntelliJ에서 partialSort라는 프로젝트를 생성합니다. 이 프로젝트에서는 3개의 각기 다른 jar빌드를 해주어야 하기 때문에, 하위 모듈들을 생성해주겠습니다. 가장 상위 모듈인 partialSort모듈에 오른쪽 클릭을 하시고, New > Module을 선택해 모듈들을 ..

빅데이터/하둡 2019.07.18

하둡 1.0 튜토리얼 - (13) 보조정렬

기존 데이터의 문제 지난 포스팅에서 집계한 데이터에는 한가지 문제가 있습니다. 바로 키 값들이 정렬이 안되어 있습니다. 데이터를 조금 더 뽑아보면 문제를 알 수 있습니다. > hadoop fs -cat delay_count_mos/departure-r-00000 | tail -15 마지막 15줄의 데이터를 뽑아보면 다음과 같이 나옵니다. 2007,7307864 2007,8298530 2007,9195615 2008,1247948 2008,10162531 2008,11157278 2008,12263949 2008,2252765 2008,3271969 2008,4220864 2008,5220614 2008,6271014 2008,7253632 2008,8231349 2008,9147061 문제가 보이시나요?..

빅데이터/하둡 2019.07.18
728x90
반응형