이번 학교 수업에서 hadoop, pig, hive를 이용하게 되었습니다. 설치가 쉬울 줄 알았지만, 생각보다 까다롭고 기존의 guide에서 제시하지 못했던 예외들이 많이 발생하였기에, 또 기억하기 위해, 직접 포스팅하고자 합니다.

아주 만약에 혹시나 정말 혹시라도 이 포스팅이 마음에 드신다면, 널리널리 공유해주시면 정말 감사하겠습니다!

  • 시작하기에 앞서, 이 포스팅은 순전히 hadoop, pig, hive를 맛보고자 하시는, 혹은 설치에 어려움을 겪고 계시는 초보자분들을 위한 포스팅입니다. 따라서 숙련자 분들께서 보시기에는 답답하거나 틀린 부분이 있을 수 있으니, 혹여나 잘못된 부분에 대해서는 nohyg90@gmail.com 으로 메일을 주시면 참고하여 수정하도록 하겠습니다.

  • 이 포스팅은 제가 직접 작성함과 동시에 테스팅하며 바로바로 한 줄씩 확인하였음을 밝히고, 따라서, 혹여나 에러가 발생하신다면 먼저 작성하였던 코드 중, 오타가 없는지 확인바랍니다.

  • 이 포스팅은 AWS를 이용하였습니다. (하지만 OS 환경만 ubuntu로 일치한다면, 이 가이드를 똑같이 따라하셔도 무방하다고 판단됩니다!)

  • 이 포스팅은 hadoop의 여러 Operation 중, Fully-Distributed Operation에 대해서 다뤘습니다.

  • 이 포스팅은 이론적인 내용이 거의 담겨있지 않습니다. 이론적인 부분은 포스팅 중간중간에 삽입된 공식사이트를 통해 확인부탁드립니다.

  • 이 포스팅은 2016년 6월 1일에 작성되었습니다. 시간이 흐름에 따라 버전 등이 맞지 않을 수 있으니 확인바랍니다.

1. AWS EC2 인스턴스 만들기

1.5 EC2 접속하기

2. hadoop 설치하기

3. pig 설치하기

4. hive 설치하기



1. AWS EC2 인스턴스 만들기



먼저 AWS에 접속하여 EC2 인스턴스를 만들도록 합시다. EC2를 만드는 방법은 구글링을 조금만 해봐도 아주 많이 나오니 여기서는 간단한, 꼭 설정해야할, 설정들에 대해서만 언급을 하고 지나가겠습니다.

  • Step 1: AWS EC2에 접속하여 Launch Instance 버튼을 누릅니다.

  • Step 2: AMI(Amazon Machine Image)로 Ubuntu를 선택합니다.

  • Step 3: Review and Launch를 눌러 가뿐히 skip 합니다.

  • Step 4: Launch를 눌러 skip 합니다.

    • 여기까지 진행하였으면, key pair를 선택하거나, 새로 create하라는 창이 뜹니다.

    • case 1 혹시 keypair가 있으시고, 그것을 사용하실 분은 해당하는 keypair 를 선택하여 주시면 됩니다.

    • case 2 만약, key pair 가 없으신 분은 Create a new key pair를 선택 후, 이름을 지어 download key pair 버튼을 누르시기 바랍니다. (여기서 저는 통일성을 위하여 keypair 이름을 sample이라고 하겠습니다.) 저는 chrome 사용을 권장합니다. keypair 다운로드 시, safari에서는 .txt파일로 다운되어 서버에 접속이 안되는 것을 확인하였습니다.

    • 다운로드를 완료하였으면 그 경로를 잘 기억해두시고, Launch Instance 버튼을 누릅니다.

  • 여기까지 하였으면 Launch Status라는 헤더가 보이실텐데, 그럼 잘 따라오셨다고 보시면 됩니다.

위의 과정을 3번 더 반복하여 instance를 총 4개 만듭시다. (주의: 첫 인스턴스를 제외한 두번째 인스턴스부터는 접속할 때의 편의를 위하여 keypair를 방금 생성하신 keypair를 선택하시기 바랍니다.)


자 이제 4개의 instance 를 모두 만드셨으면 Elastic IP와 Security group을 설정하실 차례입니다.

일단 먼저 Elastic Ip 설정하겠습니다.

  • Step 1: AWS 메인에서 EC2를 선택하시고 들어오시면 좌측 탭에 Instances 라는 것을 클릭합니다.

  • Step 2: 아까 만든 Instance 4개가 보이실텐데, 이 4개의 instance에 적절한 이름을 지어줍니다.(예: hadoop1, hadoop2, hadoop3, hadoop4)

  • Step 3: 좌측 탭의 Elastic IP를 클릭합니다.

  • Step 4: Allocate New address를 클릭하여, 새로 Elastic IP를 생성해줍니다. 이 과정을 4번 반복하여 Elastic IP가 총 4개 생성되도록 합니다.

  • Step 5: 모두 생성되었으면, 각 Elastic IP 마다 우클릭하여 Associate Address를 클릭합니다.

  • Step 6: 그럼 창이 하나 뜰텐데요. 여기서 다른 것은 건드리지 않고, Instance 칸만을 클릭하여 아까 이름 정했던 instance 중 하나를 선택하고, Associate 버튼을 누릅니다. 이 과정을 4번 반복하여 각각의 instance가 서로 다른 Elastic IP를 가질 수 있도록 합니다. (사실 이 과정은 하나의 instance에 대해서만 해도 될 듯 합니다만, 일단은 4개에 대해 모두 하도록 합니다.)

좌측 Instances 를 클릭하고, 임의로 아까 설정한 instance들을 보았을 때, 하단 정보에 Elastic IP가 할당되어 있으면 제대로 설정하신 겁니다.


다음으로 Security group을 설정하겠습니다.

생각보다 포스팅이 길어질 것 같네요..

  • Step 1: 먼저 지난 과정에서 만든 Instance 를 차례대로 클릭하여 하단 정보에 나오는 Security groups의 이름들을 기억하도록 합니다. 아마 뒤의 숫자가 연속된 숫자일 것입니다.(제 경우는 launch-wizard-10, launch-wizard-11, launch-wizard-12, launch-wizard-13 이네요.)

  • Step 2: 좌측 탭의 Security Groups를 클릭합니다.

  • Step 3: 그럼 방금전에 보았던 launch-wizard-xx 들이 보이실겁니다. 먼저 이들 중 맘에 드는 하나를 선택합니다.

  • Step 4: 하단에 정보가 나올텐데요. Inbound 탭을 클릭하고, Edit 버튼을 클릭하도록 합니다.

  • Step 5: Add Rule 버튼을 클릭하고, 새로 생긴 것에서 All TCP를 선택합니다. 또한, 새로 생긴 것에 Custom IP라고 되어있는 것을 클릭하여 Anywhere로 바꿉니다.

  • Step 6: 다시 한번 Add Rule 버튼을 클릭하고, All ICMP를 클릭, 마찬가지로 Anywhere로 바꿔줍니다. 그 후 Save버튼을 눌러 빠져나옵시다.

  • Step 7: 다시 Instances 탭을 클릭하여 돌아갑니다.

  • Step 8: 전 단계에서 생성하였던 4개의 Instances에 대해, Step 9를 반복합니다.

  • Step 9: 각 instance를 클릭하고, 우클릭하여 Networking -> Change Security Groups를 클릭합니다. 그 후 체크된 것을 해제하고, 방금 전에 설정한 Security group을 체크해줍니다. 그리고 Assign Security Groups를 클릭하여 빠져나옵니다.

  • Step 10: 모두 다 변경하였으면, 4개의 instance들을 하나씩 클릭하여 하단 정보에 Security groups가 아까 설정한 security group으로 일치하는지 확인합니다.

여기까지가 AWS 설정 단계였습니다. 이제 Hadoop. Pig, Hive를 설치할 장소를 마련하였습니다!



1.5 EC2 접속하기



EC2 Instance를 만들었으니, 접속해보도록 합시다.

이 것은 Mac OS 기준으로 작성되었으니, windows분들은 이곳을 참고하여 접속하시기 바랍니다.

  • Step 1: keypair가 있는 곳으로 이동합니다.

  • Step 2: chmod 400 [keypair이름.pem] 명령어를 입력하여 keypair의 권한을 변경합니다.

  • Step 3: AWS에 접속하여 맘에 드는 하나의 EC2 instances의 Elastic IP를 확인합니다. (instance를 클릭하면 나오는 하단 정보에서 Elastic IP를 확인할 수 있습니다.) 그리고, 이 EC2 instance의 이름을 반드시 기억하도록 합시다. 앞으로 nameNode로 사용될 instance입니다.

  • Step 4: ssh -i [keypair이름.pem] ubuntu@[ElasticIP]를 입력합니다. 연결을 계속할 것이냐는 문구가 나오면 yes를 입력합니다.

이제 EC2에 접속하는 방법을 배웠습니다! 현재는 하나의 EC2 instance에 접속하였지만, 추후에는 4개의 instance에 접속하게 될 것입니다.



2. Hadoop 설치하기



아 드디어 본론인 2. Hadoop 설치하기 입니다. 이 부분이 조금 지루하실 수도 있고, 에러가 많이 발생하실 수도 있지만, 꼼꼼히 오타없이 따라오시면 분명히 잘 해내실 수 있을거라 믿습니다! 참고로 저는 이 포스팅을 하기 전에 며칠간 하둡을 한 5 ~ 7번은 재설치하며 오류를 찾아내느라 고생을 하였습니다….

아, hadoop의 공식사이트는 이곳이므로, 제가 담지 못한, 혹은 궁금하신 내용은 사이트를 통해 확인바랍니다.

  • Step 1: EC2 instance 에 접속합니다. (위의 1.5 AWS 접속하기를 참고하길 바랍니다.)

  • Step 2: 아래의 명령어를 입력하여 하둡을 다운받습니다(시간이 조금 소요될 수 있습니다. 참고로 저는 홈 디렉토리(~)에 작업하니, 저와 디렉토리를 일치시켜주시길 권장합니다.):

wget http://apache.mirror.cdnetworks.com/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
  • Step 3: 다운로드가 완료 되었으면, tar -xvf hadoop-2.7.1.tar.gz 명령어를 입력하여 압축을 해제합니다.

  • Step 4-1: 잠시 압축을 해제한 것은 뒤로 미뤄두고, .bashrc 파일을 설정해봅시다. sudo vi ~/.bashrc 명령어를 입력하여 .bashrc를 엽니다.

  • Step 4-2: Shift + g를 눌러 가장 마지막 줄로 이동합니다. 그리고 o 키를 눌러서 입력모드로 전환하고, 마지막 줄에 아래의 내용을 입력합니다.

export HADOOP_HOME=~/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin
  • Step 4-3: 입력을 모두 하셨으면 esc키를 누르시고 Shift + ;키를 누른 후, wq라고 입력하고 엔터를 쳐서 빠져나옵니다.

  • Step 4-4: source ~/.bashrc라고 커맨드 창에 입력하여 현재 변경한 내용이 바로 적용될 수 있도록 합니다.

  • Step 5-1: 자 이제 hadoop에 필수적인 java를 설치할 차례입니다. 아래의 명령어를 순서대로 하나씩 커맨드창에 입력하여 진행합니다: (마지막 명령어 설치시, 보라색 화면이 나오면 YES를 선택합니다.)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
  • Step 5-2: 자바를 설치하였으니, 환경변수를 설정해줍니다. ( 이곳을 따라서 환경변수 설정을 할 수도 있습니다만, 제가 이곳에 입력하는 것을 따라하셔도 완전히 무방합니다. ) sudo vi /etc/profile를 커맨드에 입력합니다. 마찬가지로, Shift + g를 눌러 마지막줄로 이동, o를 눌러 입력모드로 변환하고, 마지막 줄에 다음을 입력합니다:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
  • Step 5-3: source /etc/profile을 커맨드에 입력하여 변경사항이 바로 적용되도록 하고, 완전성을 위해 exit를 입력하여 서버에서 로그아웃하고, 재접속 하도록 합시다.

  • Step 5-4: 재접속하셨으면 echo $JAVA_HOME을 커맨드에 입력하여 출력을 확인합니다. (출력되는 것이 없다면 설정이 제대로 이루어지지 않은 것입니다.) 정상적인 경우, 아까 설정한 /usr/lib/jvm/java-8-oracle이라는 메시지가 나옵니다.

  • Step 6: 이제 다시 hadoop으로 돌아옵시다. hadoop-2.7.1 폴더로 이동합니다.vi etc/hadoop/hadoop-env.sh명령어를 통해 hadoop-env.sh 파일을 엽니다.

  • Step 7: 마찬가지로 Shift + g, o를 차례대로 눌러서 마지막줄로 이동, 입력모드로 변경합니다. 다음의 내용을 입력하도록 합니다:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export PATH=${JAVA_HOME}/bin:${PATH}
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar:${HADOOP_CLASSPATH}
  • Step 8: 마찬가지로, esc, shift + ;, wq를 차례로 입력하고 엔터를 눌러, 빠져나온 뒤, source etc/hadoop/hadoop-env.sh 명령어를 통해 변경내용을 바로 적용시켜줍니다.

  • Step 9-1: 자 이제 host 이름을 설정하도록 할텐데요, 먼저 AWS 홈페이지로 이동하여 4개의 EC2 인스턴스들에 대해 각각의 Private IP를 확인하도록 합니다. Private IP는 각 instance를 클릭하면 하단의 정보에서 확인하실 수 있습니다.

  • Step 9-2: 확인한 private ip들을 sudo vi /etc/hosts를 통하여, (앞에서 배운 내용들을 토대로 마지막 줄에) 입력하도록 합시다: (참고로 [privateIP1] 등이 자신들의 private ip로 변경되어야합니다. 그리고 여태까지 작업했던 instance의 private ip를 첫번째에 위치시켜 nameNode라는 이름을 갖도록 합시다.)

[privateIP1] nameNode
[privateIP2] resourceManager
[privateIP3] dataNode01
[privateIP4] dataNode02

모두 입력하였으면 빠져나오도록 합니다.(esc, shift + ;, wq)

  • Step 10-1: 자 이제 가장(?) 중요한 configuration을 할 차례입니다. 더욱 주의해서 따라오시기 바랍니다. 먼저 cd etc/hadoop을 통해 etc/hadoop 폴더로 이동합시다.

  • Step 10-2-1: vi core-site.xml 명령어를 입력하여 엽니다.

  • Step 10-2-2: <configuration> 태그 사이에 다음을 입력하도록 합니다:

<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://nameNode</value>
	</property>
</configuration>
  • Step 10-3-1: vi hdfs-site.xml 명령어를 입력하여 엽니다.

  • Step 10-3-2: <configuration> 태그 사이에 다음을 입력하도록 합니다:

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>
	<property>
		<name>dfs.hosts</name>
		<value>/home/ubuntu/hadoop-2.7.1/etc/hadoop/slaves</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/home/ubuntu/hadoop-2.7.1/data/namenode</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/home/ubuntu/hadoop-2.7.1/data/datanode</value>
	</property>
</configuration>
  • Step 10-4-1: 먼저, cp mapred-site.xml.template mapred-site.xml을 입력하여 복사하고, vi mapred-site.xml 을 입력하여 엽니다.

  • Step 10-4-2: <configuration> 태그 사이에 다음을 입력하도록 합니다:

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>
  • Step 10-5-1: vi slaves 명령어를 입력하여 엽니다.

  • Step 10-5-2: 다음의 내용이 되도록 내용을 변경합니다:

nameNode
resourceManager
dataNode01
dataNode02
  • Step 10-6-1: vi yarn-site.xml 명령어를 입력하여 엽니다.

  • Step 10-6-2: <configuration> 태그 사이에 다음을 입력하도록 합니다:

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>resourceManager</value>
	</property>
</configuration>

여기까지 오타 없이 잘 오셨으면, hadoop + pig + hive 설치의 60%는 끝낸 셈입니다. 조금만 더 참고 따라오시면 됩니다!

  • Step 11-1: 자 이제 처음으로 드디어 4개의 instance에 접속할 때가 왔습니다! 먼저 terminal을 추가로 3개 더 켜고, 마찬가지로 각각의 terminal이 각각의 instance에 접속할 수 있도록 해주세요.(nameNode, resoureManager, dataNode01, dataNode02가 될 것 입니다.) 아래의 step(step 11-5까지)은 각각의 instance에 모두 실행해주세요!

  • Step 11-2: SSH 암호화 키를 설정하여, 다른 node들에 접근할 때 암호 없이 바로 접근가능하도록 설정하겠습니다. 참고로 저는 이곳을 토대로 설명을 하겠습니다.

  • Step 11-3: cd ~ 명령어를 통해 ~ 디렉토리로 이동합니다.

  • Step 11-4: ssh-keygen -t rsa를 입력하고 나오는 내용들은 모두 enter를 눌러 skip합시다. 그럼 이상한 직사각형에 무늬들이 찍혀있는 액자를 보실 수 있을 것입니다.

  • Step 11-5: 다음의 명령어들을 차례대로 터미널에 입력하여 권한을 변경합니다:(다음의 파일들은 ls -al ~/.ssh/ 명령어를 통해 존재를 확인할 수 있습니다.)

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/authorized_keys
  • Step 12: 먼저, 4개의 instance를 모두 연결한 김에 Step 9-2을 모든 instance에 적용시켜 줍시다.

  • Step 13-1: 또, 4개의 instance를 켠 김에 .pem 없이 암호로 접속가능하도록 설정을 합니다. 아래의 Step 13-x를 각각의 instance에서 실행합니다.

  • Step 13-2: sudo passwd ubuntu 라고 입력하여 암호를 설정합니다. (암호가 입력되는 것은 보이지 않습니다. 암호 입력 후 엔터를 눌러서 암호 확인까지 입력해주세요.)

  • Step 13-3: sudo vi /etc/ssh/sshd_config를 입력하여 엽니다.

  • Step 13-4: 위의 파일을 연 상태로, 아무것도 안 누른 채로 /PasswordAuthentication을 입력 후 엔터를 칩니다. 그 후 i를 눌러 입력모드로 전환, no라고 되어있는 부분을 yes로 변경하고 저장하고 나옵니다.(esc, shift + ;, wq)

  • Step 13-5: 변경사항이 저장될 수 있도록 restart합니다. sudo service ssh restart

  • Step 14: 자 그럼 모든 id_rsa.pub 파일을 nameNode로 복사할 건데요. 다음의 명령어를 4개의 모든 인스턴스에서 실행하도록 합니다: (*단, id_rsa_1.pub 이 부분의 숫자는 파일이 중복되지 않도록 각 instance에서 모두 다르게 입력하도록 합니다. 즉, id_rsa_1.pub, id_rsa_2.pub id_rsa_3.pub, id_rsa_4.pub *)

scp ~/.ssh/id_rsa.pub ubuntu@nameNode:id_rsa_1.pub
  • Step 15: nameNode~에서 ls를 쳐보면 다른 node들이 전송한 id_rsa파일들이 왔음을 알 수 있습니다.

  • Step 16: 그럼, 이 파일들을 하나로 묶도록 하겠습니다. 먼저 touch idrsa라고 입력하여 파일을 하나 생성해줍니다.

  • Step 17: cat id_rsa_1.pub >> idrsa 명령어를 id_rsa_1.pub 번호만 바꿔가며 실행해줍니다. (전송 받은 id_rsa.pub 파일들을 idrsa라는 파일안에 모두 옮겨 담는 작업입니다.)

  • Step 18: idrsa를 각각의 instance에 배포해줘야겠지요. 다음의 명령어를 통하여 nameNode에서 각각의 instance에 뿌려줍시다:

scp idrsa ubuntu@resourceManager:idrsa
scp idrsa ubuntu@dataNode01:idrsa
scp idrsa ubuntu@dataNode02:idrsa
  • Step 19: 이제 각각의 instance에서 idrsa 파일을 실제로 암호를 관리하는 authorized_keys에 붙여넣읍시다. 다음의 명령어를 모든 instance에서 입력합니다:
cat idrsa >> ~/.ssh/authorized_keys
  • Step 20: 자, 거의 막바지입니다. 이제는 저희의 여태까지 계속 작업했던 첫번째 instance를 제외한 나머지 instance에도 java를 설치할 차례입니다. 거의 끝났으니 조금만 더 힘내서 따라옵시다. Step 4에서 Step 5를 나머지 3개의 instance에 적용시켜줍시다. (하나의 step씩 동시에 3개의 instance에서 복사해가며 하는 것이 편합니다.)

  • Step 21: 여태까지 저희가 hadoop을 어디에 설치했었는지 기억하시죠. 바로 nameNode입니다. 다른 instance(node)들에는 제가 hadoop을 깔지 않았는데, 그 이유가 바로 하나의 instance에만 깔고 나머지 instance는 복사하여 사용하여도 전혀 무관하기 때문입니다! nameNode~에서 다음의 명령어를 통해 hadoop을 복사합니다(마찬가지로 [nodename]은 resourceManager, dataNode01, dataNode02 로 대체돼서 실행하셔야 합니다.):

scp -r hadoop-2.7.1 ubuntu@[nodename]:hadoop-2.7.1
  • Step 22: nameNode에서 다음의 명령어를 통해 format을 합니다!
hadoop namenode -format
  • Step 23-1: 그럼 이제 nameNode에서 cd hadoop-2.7.1/ 명령어를 통해 hadoop-2.7.1 폴더로 이동하고, ./sbin/start-all.sh 명령어를 통해 hadoop을 실행합니다.

  • Step 23-2: 각각의 instance(node)에서 jps 명령어를 통해 다음이 출력되면 아주 잘 설정된 것입니다:

namenode의 경우:
???? NameNode
???? SecondaryNameNode
???? NodeManager
???? Jps
???? DataNode

그 외의 node의 경우:
???? Jps
???? NodeManager
???? DataNode
  • Step 24-1: 그럼 이제 resourceManager로 설정된 instance를 켜고 있는 terminal에서 마찬가지로 hadoop-2.7.1 폴더로 이동하고 ./sbin/yarn-daemon.sh start resourcemanager 명령어를 통해 resourcemanager를 실행합니다.

  • Step 24-2: resourceManager에서 jps를 입력하였을 때 다음과 같이 나오면 정상입니다:

???? Jps
???? ResourceManager
???? DataNode
???? NodeManager
  • Step 25: hadoop이 제대로 설치 되었나 확인해봅시다. nameNode의 Elastic IP를 AWS에서 확인하고 [elasticIP]:50070을 인터넷 주소창에 입력합니다. Hadoop 정보페이지가 나오고, 아래로 내려보면 표가 있는데, 그 표에서 Live Nodes4라고 설정되어 있다면 완료된 것입니다. hadoop 설치 완료.

  • Step 26: hadoop을 종료할 때는 마찬가지로 nameNode에서 ./sbin/stop-all.sh 명령어를 입력하고, resourceManager에서 ./sbin/yarn-daemon.sh stop resourcemanager를 입력합니다. jps 명령어를 통해 모든 instance에서 hadoop이 종료된 것을 확인하길 바랍니다. (???? Jps는 항상 존재하는 것입니다.)

  • Step 27: 중요한 단계입니다! AWS를 사용을 마치셨으면 ec2 instance를 우클릭하여 Instance State -> Stop 을 클릭하여 항상 stop해두시길 바랍니다. EC2 Instance 는 무료가 아닙니다. 일정량(free tier, 1대 기준 1달 750시간)을 초과하게 되면 과금이 됩니다! 자세한 AWS EC2 요금은 이곳을 참고하시기 바랍니다.

성공적으로 하둡 설치를 마치셨습니다. 어떻게 보면 간단하지만 어떻게 보면 길고도 실수할 것이 아주 많은 하둡 설치였습니다. 하나의 오타만 발생하여도 에러가 발생하고, 하나의 line이 빠지게 되면 node가 제대로 생성되지 않는 등 주의가 필요한 설치였습니다.



3. pig 설치하기



이제 앞으로는 간단한 일만 남았습니다. pig와 hive의 설치는 hadoop에 비하면 아주 간단한 수준입니다.

참고로, pig의 공식사이트이곳이니 제가 담지 못한 자세한 내용은 사이트를 방문하여 확인바랍니다.

그럼 pig를 설치해보도록 하겠습니다.

  • Step 1: nameNode ~에서 다음 명령어를 입력하여 pig 파일을 다운받습니다:
wget http://apache.tt.co.kr/pig/latest/pig-0.15.0.tar.gz
  • Step 2: 다음 명령어를 입력하여 다운받은 파일을 압축해제합니다:
tar -xvf pig-0.15.0.tar.gz
  • Step 3: 압축해제하여 얻은 pig-0.15.0 폴더를 하둡 폴더 안으로 이동시킵니다:
mv pig-0.15.0 hadoop-2.7.1/
  • Step 4: pig 폴더로 이동하여 pig를 실행하여 봅시다(grunt>가 나온다면 정상실행된 것입니다.):
mv pig-0.15.0
./bin/pig

pig 설치를 완료하였습니다. PATH를 설정하게되면 pig명령어를 통해 pig를 쉽게 실행할 수 있습니다.



4. hive 설치하기



이 포스팅의 마지막인 드디어, 4. hive 설치하기 입니다.

마찬가지로 공식사이트이곳이니 자세한 사항은 사이트에서 확인바랍니다.

  • Step 1: 다음 명령어를 통해 nameNode~에 hive를 다운받습니다:
wget http://apache.tt.co.kr/hive/hive-2.0.1/apache-hive-2.0.1-bin.tar.gz
  • Step 2: 다음 명령어를 통해 압축을 해제합니다:
tar -xvf apache-hive-2.0.1-bin.tar.gz
  • Step 3: pig와 마찬가지로 hadoop 폴더 안으로 압축해제한 폴더를 옮깁니다:
mv apache-hive-2.0.1-bin hadoop-2.7.1/
  • Step 4: hive를 다루기 전에, hadoop-2.7.1 폴더로 이동하여 hadoop을 실행시켜줍니다:
./sbin/start-all.sh
  • Step 5: 마찬가지로, resourceManager로 이동하여 resourcemanager도 실행시킵니다:
ssh ubuntu@resourceManager
./hadoop-2.7.1/sbin/yarn-daemon.sh start resourcemanager
  • Step 6: jps 명령어를 통해 node들이 제대로 생성되었음을 확인한 후, exit를 입력하여 다시 nameNode로 돌아옵니다.

  • Step 7: 이제 hive 폴더로 이동합니다:

cd apache-hive-2.0.1-bin/
  • Step 8: hive을 실행하기 전에 초기화 작업을 해줍니다:
./bin/schematool -initSchema -dbType derby

혹시나 이 단계에서 error가 발생하시는 분은, 이곳을 참고하시기 바랍니다.

  • Step 9: 초기화를 완료하였으면, hive를 실행시킵니다(hive>가 나온다면 정상실행된 것입니다.):
./bin/hive

hive 설치를 완료하였습니다. pig와 마찬가지로 PATH를 설정하게 되면 hive명령어를 통해 hive를 쉽게 실행할 수 있습니다.



끝까지 봐주셔서 감사합니다!


Yonggoo Noh

I am interested in Computer science and Mathematics.