빅데이터/하둡 2

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

Johnny Yoon 2019. 7. 21. 18:00
728x90
반응형

 

 

 

 

 

하둡 2.0

이제 하둡 2버전으로 넘어가보도록 하겠습니다.

먼저 설치를 진행할 것인데요, Virtual Box VM과 Java가 모두 설치되었다고 가정하고 진행합니다.

해당 설치 내용은 아래 두개의 포스팅에서 찾아볼 수 있습니다.

https://jyoondev.tistory.com/32

https://jyoondev.tistory.com/34

 

 

프로토콜 버퍼

프로토콜버퍼란 (이하 프로토버프, Protobuf) 구글이 개발한 데이터전송 방식(규격)입니다.

다른말로는 직렬화 라이브러리 라고도 하죠. 우리가 흔히 알고있는 직렬화/규격 포맷은 json과 xml이 있습니다.

프로토버프는 json이나 xml보다 크기가 작고 성능이 좋아 하둡에서 채택해 사용하게 되었습니다.

이를 설치하기 위해 구글의 깃허브 페이지로 들어가겠습니다.

https://codeload.github.com/protocolbuffers/protobufhttps://github.com/protocolbuffers/protobuf/releases

 

위의 링크에서 2.5.0버전을 찾아 gzip파일을 설치하시거나, 아래 wget으로 바로 설치하시면 됩니다.

> wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

 

리눅스 패키지 설치

프로토버프를 빌드하려면 이에 필요한 패키지들을 CentOS에 설치해 주어야 합니다.

우선 네트워크를 사용해야 하니 각 기기에서 아래 프로세스를 모두 해주어야 합니다.

Devices > Network > Network Settings 메뉴로 들어갑니다.

네트워크 셋팅을 NAT로 바꿔줍니다.

이렇게 하면 ssh로 접속한 콘솔들은 모두 먹통이 되니 VM에서 작업해주셔야 합니다.

 

이제 패키지들을 설치해주겠습니다. 다음 커맨드를 실행하시기 바랍니다.

참고로 설치하는 중간중간 y/N를 물어봅니다. 이때 y를 매번 해주셔야 합니다.

> yum install autoconf automake libtool curl make gcc-c++ unzip

프로토버프 설치 가이드 문서를 보시면 g++를 설치하게 되어있지만, 이는 우분투에 해당하고,

CentOS를 사용하시면 gcc-c++를 설치하셔야 합니다.

위의 설치가 끝났으면 Network설정을 다시 Bridge Adapter로 변경해줍니다.

그리고 dhclient를 실행해 다시 ip를 얻어줍니다. 그리고 모든 ip가 이전과 동일하게 설정되었는지 확인하시기 바랍니다.

 

프로토버프 빌드

프로토버프와 피키지들을 모두 설치하셨다면 빌드를 진행해야 합니다.

이를 위해 먼저 모든 VM으로 파일을 전송하기 위한 Shell Script를 사용하겠습니다.

아래의 스크립트를 돌리시려면 호스트 기기에 doop01부터 doop04까지 /etc/hosts에 등록이 되어있어야 합니다.

저는 호스트가 우분투라 첫줄에 /bin/bash를 사용했지만, /bin/sh를 사용해야되는 분도 계실겁니다.

#!/bin/bash

for ((i=1; i <= 4; i++)) ; do
  echo "sending file $1 to $2"
  scp $1 root@doop0$2:~/
done

 

Shell Script가 어려우신 분들을 위해 파이썬 코드도 준비했습니다.

(사실 결국 os.system에서 scp를 사용해주는 코드입니다.)

아래를 python 파일이름.py file1.txt /home/doop 형식으로 사용하시면 됩니다.

import os, sys

argv = sys.argv
if len(argv) != 3:
	print("Usage: <sending dir> <receiving dir>")
for i in range(1,5):
	os.system("scp %s root@doop0%d:%s" % (argv[1], i, argv[2]))

 

위의 스크립트를 사용해 프로토버프 파일을 /usr/local/ 로 옮겨주겠습니다.

> python send.py protobuf-2.5.0.tar.gz /usr/local

 

그리고 각 기기들로 접속해 압축을 풀어줍니다.

> tar xvfz protobuf-2.5.0.tar.gz

 

그리고 아래 커맨드를 차례로 실행해줍니다.

> cd protobuf-2.5.0/
> ./configure
> make
> make install

설치 프로세스가 꽤 길 것입니다.

 

설치가 끝나면 완료가 된것을 체크하기 위해 다음 커맨드를 사용해 버전을 확인해줍니다.

> protoc --version

제대로 빌드가 되었다면 libprotoc 2.5.0이 나올것입니다.

이것으로 프로토버프 설치를 완료했습니다.

 

참고자료

이 포스팅은 "시작하세요! 하둡 프로그래밍" 책의 예제를 무작정 따라해본 포스팅입니다.

https://wikibook.co.kr/beginning-hadoop-programming-2rev/

728x90
반응형