SlideShare una empresa de Scribd logo
1 de 80
Descargar para leer sin conexión
hadoop 2 & Hive 
스터디 환경 구축 
with VirtualBox 
어디에도 이보다 친절한 자료는 없다! 
IT가맹점개발팀 
이태영 
2014.10.29
출처 : http://hortonworks.com/hadoop/yarn/ 
YARN의 가장 큰 특징 
Resource Manager의 분리
YARN 
Yet Another Resource Negotiator 
특징 
•JobTracker의 두 가지 역할 분리 
①Resource 관리 
②Job 상태 관리 
기존 JobTracker의 병목을 제거 
•범용 클러스터 API 
MR 외에 다양한 어플리케이션을 실행할 수 있으며, 어플리케이션 마다 자원(CPU, 메모리)를 할당
출처 : http://hortonworks.com/hadoop/yarn/
Master Node 하둡 클러스터의 Resource와 Job 관리를 함께 수행. 병목이 발생하는 지점 
Data Node 
한 노드에서 실행할 수 있는 
Map과 Reduce Task의 개수 제한. 
M/R만 처리 
Hadoop 1.x 
출처 : http://hadoop.apache.org/docs/current/hadoop- yarn/hadoop-yarn-site/YARN.html
출처 : http://hadoop.apache.org/docs/current/hadoop- yarn/hadoop-yarn-site/YARN.html 
Resource Manager 
클라이언트가 요청한 어플리케이션마다 자원을 관리 
하둡 클러스터 내 1개 
Node Manager 각 슬레이브 노드 마다 1개. 컨테이너와 자원의 상태를 RM에게 통지 
Hadoop 2.x 
Application Master 어플리케이션의 실행을 관리하고 상태를 RM에게 통지 어플리케이션마다 1개. 
Container 
어플리케이션을 수행하는 역할 
제한된 자원을 소유하며, 
상태를 AM에게 통지
출처 : http://hadoop.apache.org/docs/current/hadoop- yarn/hadoop-yarn-site/YARN.html 
1.클라이언트가 RM에게 어플리케이션 제출 
2.NM을 통해 AM 실행 
3.AM은 RM에게 자신을 등록 
4.AM은 RM에게 컨테이너 할당할 공간/위치를 받음 
5.AM은 NM에게 컨테이너를 실행 요청 (어플리케이션 정보를 NM에게 제공) 
6.컨테이너는 어플리케이션의 상태정보를 AM에 알림 
7.클라이언트는 어플리케이션의 실행정보를 얻기 위해 AM와 직접 통신 
8.어플리케이션 종료되면 AM은 RM에게서 자신의 자원을 해제하고 종료 
Hadoop 2.x
Hadoop 2.4 설치 
1.설치순서 (Windows 64bit에서만 가능) 
①CentOS 6.5 설치 
②Java 8 설치 
③구글 크롬 설치 
④리눅스 클러스터 구축 
⑤Hadoop 2.5 설치 
⑥Hive 설치 
⑦예제
CentOS 6.5 설치 
Master 
Slave 
Slave 
Slave 
<설치구성 목표> 
서버명 
big01 
IP 
192.168.65.101 
서버명 
big02 
IP 
192.168.65.102 
서버명 
big03 
IP 
192.168.65.103 
서버명 
big04 
IP 
192.168.65.104
CentOS 6.5 설치 
1. VirtualBox를 설치한다. 2. 새로 만들기(N) 버튼을 누르고 리눅스용 VM을 하나 만든다. (이름은 big01)
CentOS 6.5 설치 
1. Basic Server를 선택 2. 소프트웨어 추가를 위해 [지금 선택]을 하여 다음 버튼
CentOS 6.5 설치 
1. Basic Server를 선택 
2. 소프트웨어 추가를 위해 [지금 선택]을 하여 다음 버튼 
1. 데스크탑을 선택하여 KDE를 제외한 모든 옵션 선택
CentOS 6.5 설치 
사용자 추가 
아이디 
hadoop 
암호 
hadoop
CentOS 6.5 설치 
[NTP 서버] 아무거나 선택 후 다음
CentOS 6.5 설치 
리눅스 OS 설치는 성공
CentOS 설치가 완료된 후 게스트 확장 설치를 해준다. 
CentOS 6.5 설치
CentOS 6.5 설치
아래처럼 Building the main Guest Additions module 에러(실패)가 발생하면 
$ yum install gcc dkms make kernel-devel $ yum install kernel sources $ yum install kernel-headers $ yum groupinstall "Development Tools" 
root 권한으로 아래 명령어로 관련 pkg 설치 후, 리부팅&게스트 모드 재설치 
CentOS 6.5 설치
CentOS 6.5 설치 
게스트모드 설치가 정상적으로 완료되면, 
1. 창 크기 맞게 해상도가 자유자재 설정 
2. 윈도우 OS에서 마우스로 파일 드래그&드롭 복사 
3. 윈도우 OS와 가상 VM간 클립보드 공유 가능 (Ctrl+C, Ctrl+V)
CentOS 6.5 설치 
메뉴에서 클립보드 공유, Drag'n Drop을 모두 양방향으로 변경 
이제 윈도우즈와 VM간 파일을 드래그앤드롭으로 복사할 수 있고 
윈도우즈와 VM간 Ctrl+C, Ctrl+V도 자유롭게 사용 가능.
CentOS 6.5 설치 
터미널에서 setup 명령어로 진입하여 방화벽 설정의 활성화 해제
Google Chrome 설치 
1. YUM repository 설정 
[google-chrome] 
name=google-chrome 
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64 
enabled=1 
gpgcheck=1 
# vi /etc/yum.repos.d/google-chrome.repo 
root 권한 필요 
# yum install google-chrome-stable 
2. YUM 설치 
# wget http://chrome.richardlloyd.org.uk/install_chrome.sh # chmod u+x install_chrome.sh # ./install_chrome.sh 
3. 구글 크롬 스크립트 다운로드 및 실행
Google Chrome 설치 
root 권한 필요 
# google-chrome & 
4. 구글 크롬 실행 
실행이 안되면, 이전 스크립트 명령어 재실행 
# ./install_chrome.sh 
정상적으로 완료되면, 시스템 메뉴 오른쪽 - 브라우저 버튼을 클릭하면 크롬이 실행
자바8 설치 
1. CentOS가 설치한 자바7 삭제 
# yum remove java 후 [Y/N] y 입력 
2. 자바 8 다운로드 
http://java.sun.com 접속 후 다운로드
자바8 설치 
3. 자바 8 설치 
[hadoop@big01 ~]$ cd 다운로드/ 
[hadoop@big01 다운로드]$ mv jdk-8u25-linux-x64.tar.gz ~/ 
[hadoop@big01 다운로드]$ cd - 
/home/hadoop 
[hadoop@big01 ~]$ tar zxvf jdk-8u25-linux-x64.tar.gz 
[hadoop@big01 ~]$ ln -s jdk1.8.0_25 java 
모든 오픈소스 Binary들은 링크를 걸어주는게 관리측면에서 편하다.
자바8 설치 
4. 자바 8 환경설정 
[hadoop@big01 ~]$ vi .bash_profile 
1) JAVA_HOME 설정 및 PATH 추가 
[hadoop@big01 ~]$ . .bash_profile 
2) 프로파일 실행 
[hadoop@big01 ~]$ java -version 
java version "1.8.0_25" 
Java(TM) SE Runtime Environment (build 1.8.0_25-b17) 
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) 
3) 자바 버전 확인
리눅스 클러스터링 
설치 완료 
big02 
big03 
big04 
Master 
Slave 
Slave 
Slave 
<설치 목표> 
big01 
남은 것 
남은 것 
남은 것 
big01 설치 완료 
남은 3대는 어떡해?
big02, big03, big04 차례로 
그.냥.복.사 
리눅스 클러스터링
어댑터2 추가 - 호스트 전용 어댑터 선택 
MAC주소를 랜덤 재할당 
big02, big03, big04 동일하게 
리눅스 클러스터링
1 
2 
3 
IP주소 영역 확인 
리눅스 클러스터링
4대 서버들을 선택(SHIFT+마우스 클릭) 
서버 시작(T) 
리눅스 클러스터링
리눅스 클러스터링 
1) DNS 변경 
(big01을 복제하였으니) big02, big03, big04 가상노드들을 
선택하여 자신의 서버명으로 변경해준다. 
setup 명령어 - 네트워크 설정 - DNS 설정 
1 
2 
로그아웃 후 big02로 변경 확인
리눅스 클러스터링 
2) NIC 네트워크 설정 
[hadoop@big01 바탕화면]$ ifconfig 
eth0 Link encap:Ethernet HWaddr 08:00:27:CC:F1:DB 
inet6 addr: fe80::a00:27ff:fecc:f1db/64 Scope:Link 
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
eth1 Link encap:Ethernet HWaddr 08:00:27:47:36:C0 
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0 
inet6 addr: fe80::a00:27ff:fe47:36c0/64 Scope:Link 
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
lo Link encap:Local Loopback .... 
NAT 
Host-Only (노드들간 통신용) 
맥 어드레스 
맥 어드레스 
/etc/sysconfig/network-scripts 디렉토리 내부에 
ifcfg-* 파일명으로 NIC 설정파일들이 존재 한다. 
예) eth0 장치의 경우 ifcfg-eth0 
(없으면 다른 파일을 복사해서 만들어주고 수정)
리눅스 클러스터링 
2) NIC 네트워크 설정 
eth1 없다 
-rw-r--r--. 1 root root 136 2014-10-30 21:43 ifcfg-eth0 
-rw-r--r--. 1 root root 254 2013-10-10 23:48 ifcfg-lo 
[root@big01 network-scripts]# cp ifcfg-eth0 ifcfg-eth1 [root@big01 network-scripts]# vi ifcfg-eth1 
DEVICE=eth0 HWADDR=08:00:27:CC:F1:DB TYPE=Ethernet UUID=c06f2b6b-efc3-4415-af28-7c51869efc8f ONBOOT=no NM_CONTROLLED=yes BOOTPROTO=dhcp 
DEVICE=eth1 HWADDR=08:00:27:47:36:C0 TYPE=Ethernet IPADDR=192.168.56.111 NETWORK=192.168.56.0 GATEWAY=192.168.56.1 NETMASK=255.255.255.0 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=no 
eth1 생성&편집 
ifcfg-eth1 수정 전 
[root@big01 network-scripts]# /etc/init.d/network restart 인터페이스 eth0 (을)를 종료 중: [ OK ] 인터페이스 eth1 (을)를 종료 중: 장치 상태: 3 (연결 끊겼음) [ OK ] loopback 인터페이스 종료 중: [ OK ] loopback 인터페이스 활성화중 입니다: [ OK ] eth1 인터페이스 활성화중 입니다: [ OK ] 
ifcfg-eth1 수정 후
리눅스 클러스터링 
아래처럼 ifconfig를 참고하여 NIC 설정파일들을 만든다. 
big02, big03, big04 노드들의 IP는 다음장을 참고
Master 
Slave 
Slave 
Slave 
서버명 
big01 
IP 
192.168.65.101 
서버명 
big02 
IP 
192.168.65.102 
서버명 
big03 
IP 
192.168.65.103 
서버명 
big04 
IP 
192.168.65.104 
리눅스 클러스터링
리눅스 클러스터링 
TIP) 아예 NIC 디바이스명과 맥어드레스를 변경하려면? 
$ vi /etc/udev/rules.d/70-persistent-net.rules # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:1C:6B:E7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:94:D0:C1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" 
/etc/sysconfig/network-scripts 아래 해당 NIC 스크립트 생성&설정 
•/etc/sysconfig/network-scripts/ifcfg-eth0 
•/etc/sysconfig/network-scripts/ifcfg-eth1 
$ reboot
리눅스 클러스터링 
TIP) network restar시 RTNETLINK answers: File exists 에러 
[root@big01 바탕화면]# service network restart 
인터페이스 eth0 (을)를 종료 중: 장치 상태: 3 (연결 끊겼음) [ OK ] 
인터페이스 eth1 (을)를 종료 중: [ OK ] 
loopback 인터페이스 종료 중: [ OK ] 
loopback 인터페이스 활성화중 입니다: [ OK ] 
eth0 인터페이스 활성화중 입니다: 활성화된 연결 상태: 활성화중 
활성화된 연결 경로: /org/freedesktop/NetworkManager/ActiveConnection/5 
상태: 활성화됨 
연결이 활성화되었습니다 [ OK ] 
eth1 인터페이스 활성화중 입니다: RTNETLINK answers: File exists [ OK ] 
해당 ifcfg-* 파일에 NOZEROCONF=yes 추가 후 restart
리눅스 클러스터링 
3) host 설정 
# vi /etc/hosts 192.168.56.101 big01 192.168.56.102 big02 192.168.56.103 big03 192.168.56.104 big04 
big01, big02, big03, big04 모두 적용 
4) ssh 연결 확인 
[hadoop@big01 바탕화면]$ ssh big02 
The authenticity of host 'big02 (192.168.56.102)' can't be established. 
RSA key fingerprint is 09:6f:be:0b:0c:ba:3c:a7:a4:19:3c:ac:84:05:5a:ff. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added 'big02,192.168.56.102' (RSA) to the list of known hosts. 
hadoop@big02's password: 
첫 접속시 인증을 받으므로, big02, big03, big04 한 번씩 접속
리눅스 클러스터링 
5) ssh 키 배포 
[hadoop@big01 바탕화면]$ ssh big02 hadoop@big02's password: 
연결할 때마다 비밀번호를 입력해야 하므로 hadoop 계정의 ssh 키를 배포한다. 
[hadoop@big01 ~]$ ssh-keygen -t rsa 
엔터, 엔터, 엔터 
+--[ RSA 2048]----+ 
| | 
| | 
| . | 
| o . . . | 
| S E . o | 
| . o o . | 
| o O = .| 
| B B.+ | 
| ..*==. | 
+-----------------+ 
나오면 성공
리눅스 클러스터링 
5) ssh 키 배포 
[hadoop@big01 ~]$ cd .ssh/ 
[hadoop@big01 .ssh]$ scp id_rsa.pub /home/hadoop/.ssh/authorized_keys 
[hadoop@big01 .ssh]$ scp id_rsa.pub hadoop@big02:/home/hadoop/.ssh/authorized_keys 
[hadoop@big01 .ssh]$ scp id_rsa.pub hadoop@big03:/home/hadoop/.ssh/authorized_keys 
[hadoop@big01 .ssh]$ scp id_rsa.pub hadoop@big04:/home/hadoop/.ssh/authorized_keys 
계정의 .ssh 디렉토리의 id_rsa.pub 파일을 각 노드로 authorized_keys 파일로 배포한다. 
[hadoop@big01 .ssh]$ ssh big02 Last login: Fri Oct 31 00:25:10 2014 from big01 [hadoop@big01 .ssh]$ ssh big03 Last login: Fri Oct 31 00:25:11 2014 from big01 [hadoop@big01 .ssh]$ ssh big04 Last login: Fri Oct 31 00:25:18 2014 from big01 
이후 마스터 노드인 big01에서 각 노드별로 ssh 접속을 할 때 묻지도 따지지도 않는다. 
이것으로 클러스터링 구축 끝 -
Hadoop 2.5 설치 
1) 하둡 2.5 다운로드 http://hadoop.apache.org 접속 후 다운로드 2) 계정 홈 디렉토리로 mv $ mv hadoop-2.5.1.tar.gz ~ 3) 압축을 풀고 hadoop 심볼릭 링크를 생성 $ ln -s hadoop-2.5.1 hadoop 
4) .bash_profile에 HADOOP_HOME과 PATH 설정 
1. 하둡 2.5 설치 
PATH에 하둡의 bin 디렉토리와 sbin 디렉토리를 추가 
뿌뿌
Hadoop 2.5 설치 
$HADOOP_HOME/etc/hadoop 디렉토리 
파일명 
설명 
hadoop-env.sh 
Hadoop을 실행하는 쉘스크립트 파일 
JDK Path, Classpath, 데몬 옵션 등 설정 
slaves 
Data node들의 서버 지정 
core-site.xml 
HDFS와 MapReduce에서 공통적으로 사용할 정보들을 설정. 
hdfs-site와 mapred-site의 공통 설정 부분 
hdfs-site.xml 
하둡 파일시스템(HDFS)과 관련된 환경 정보를 설정 
mapred-site.xml 
MapReduce의 어플리케이션 정보를 설정 
yarn-site.xml 
Resource Manager, Node Manager 정보를 설정 
yarn-env.sh 
YARN을 실행하는 쉘스크립트 파일 
출처 : http://hadoop.apache.org/docs/r2.5.0/hadoop-project- dist/hadoop-common/ClusterSetup.html 
2. 하둡 2.5 환경설정
Hadoop 2.5 설치 
2. 하둡 2.5 환경설정 
파일명 
설명 
hadoop-env.sh 
Hadoop을 실행하는 쉘스크립트 파일이다. 
JDK Path, Classpath, 데몬 옵션 등 설정 
export JAVA_HOME=/home/hadoop/java export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop 
파일 최상단에 아래 정보 추가 
내용 추가한 화면 
복사/붙여넣기용
Hadoop 2.5 설치 
2. 하둡 2.5 환경설정 
파일명 
설명 
yarn-env.sh 
YARN을 실행하는 쉘스크립트 파일 
export JAVA_HOME=/home/hadoop/java 
export HADOOP_HOME=/home/hadoop/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop 
파일 최상단에 아래 정보 추가
Hadoop 2.5 설치 
2. 하둡 2.5 환경설정 
파일명 
설명 
slaves 
Data node들의 서버 지정 
파일에 slave 노드들 작성/저장 
Master 
Slave 
Slave 
Slave 
big02 
big03 
big04 
big01 
big02 big03 big04
Hadoop 2.5 설치 
2. 하둡 2.5 환경설정 
파일명 
설명 
core-site.xml 
HDFS와 MapReduce에서 공통적으로 사용할 정보들을 설정. 
hdfs-site와 mapred-site의 공통 설정 부분 
<configuration> 
<property> 
<name>fs.default.name</name> 
<value>hdfs://big01:9000</value> 
</property> 
<property> 
<name>hadoop.tmp.dir</name> 
<value>/home/hadoop/hadoop/tmp/</value> 
</property> 
</configuration> 
저장 완료 후 /home/hadoop/hadoop/tmp 디렉토리 생성 
1)아래 내용 작성 후 저장 
참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-project-dist/hadoop- common/core-default.xml
Hadoop 2.5 설치 
2. 하둡 2.5 환경설정 
파일명 
설명 
hdfs-site.xml 
하둡 파일시스템(HDFS)과 관련된 환경 정보를 설정 
<configuration> 
<property> 
<name>dfs.replication</name> 
<value>3</value> 
</property> 
<property> 
<name>dfs.permissions</name> 
<value>false</value> 
</property> 
<property> 
<name>dfs.namenode.secondary.http-address</name> 
<value>big02:50090</value> 
</property> 
<property> 
<name>dfs.namenode.secondary.https-address</name> 
<value>big02:50091</value> 
</property> 
</configuration> 
1)아래 내용 작성 후 저장 
참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-project-dist/hadoop- hdfs/hdfs-default.xml
Hadoop 2.5 설치 
2. 하둡 2.5 환경설정 
파일명 
설명 
mapred-site.xml 
MapReduce의 어플리케이션 정보를 설정 
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 
1)아래 내용 작성 후 저장 
참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-mapreduce- client/hadoop-mapreduce-client-core/mapred-default.xml 
mapred-site.xml이 없다면 mapred-site.xml.template 복사/생성
Hadoop 2.5 설치 
2. 하둡 2.5 환경설정 
파일명 
설명 
yarn-site.xml 
Resource Manager, Node Manager 정보를 설정 
<configuration> 
<property> 
<name>yarn.nodemanager.aux-services</name> 
<value>mapreduce_shuffle</value> 
</property> 
<property> 
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
<value>org.apache.hadoop.mapred.ShuffleHandler</value> 
</property> 
<property> 
<name>yarn.resourcemanager.resource-tracker.address</name> 
<value>big01:8025</value> 
</property> 
...(이어서)... 
참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-yarn/hadoop-yarn- common/yarn-default.xml 
...(이어서)... <property> <name>yarn.resourcemanager.scheduler.address</name> <value>big01:8030</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>big01:8040</value> </property> </configuration> 
1 
2
Hadoop 2.5 설치 
3. 하둡 2.5 배포 
[hadoop@big01 ~]$ cd 
[hadoop@big01 ~]$ scp -r hadoop-2.5.1 hadoop@big02:~ 
[hadoop@big01 ~]$ scp -r hadoop-2.5.1 hadoop@big03:~ 
[hadoop@big01 ~]$ scp -r hadoop-2.5.1 hadoop@big04:~ 
[hadoop@big01 ~]$ ssh hadoop@big02 "ln -s hadoop-2.5.1 hadoop" 
[hadoop@big01 ~]$ ssh hadoop@big03 "ln -s hadoop-2.5.1 hadoop" 
[hadoop@big01 ~]$ ssh hadoop@big04 "ln -s hadoop-2.5.1 hadoop" 
[hadoop@big01 ~]$ scp .bash_profile hadoop@big02:~ [hadoop@big01 ~]$ scp .bash_profile hadoop@big03:~ [hadoop@big01 ~]$ scp .bash_profile hadoop@big04:~ 
1) 하둡 디렉토리 배포 
2) 하둡 디렉토리 심볼릭 링크 처리 
3) 계정 profile 배포
Hadoop 2.5 설치 
4. 하둡 2.5 실행 
[hadoop@big01 ~]$ hadoop namenode -format 
14/10/31 21:05:45 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 
14/10/31 21:05:45 INFO util.ExitUtil: Exiting with status 0 
14/10/31 21:05:45 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at big01/192.168.56.101 
************************************************************/ 
1) 하둡 네임노드 포멧 
[hadoop@big01 ~]$ start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh 14/10/31 21:06:40 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [big01] Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /home/hadoop/hadoop-2.5.1/logs/hadoop-hadoop-secondarynamenode-big01.out starting yarn daemons starting resourcemanager, logging to /home/hadoop/hadoop-2.5.1/logs/yarn-hadoop-resourcemanager-big01.out big03: starting nodemanager, logging to /home/hadoop/hadoop-2.5.1/logs/yarn-hadoop-nodemanager-big03.out big02: starting nodemanager, logging to /home/hadoop/hadoop-2.5.1/logs/yarn-hadoop-nodemanager-big02.out 
2) 하둡 디렉토리 실행
Hadoop 2.5 설치 
Master 
Slave 
Slave 
Slave 
big02 
big03 
big04 
big01 
4. 하둡 2.5 실행 
3) 하둡 실행 확인 
[hadoop@big01 ~]$ jps 명령어 
[hadoop@big01 ~]$ jps 
4085 ResourceManager 
3759 NameNode 
31120 DataNode 
30306 SecondaryNameNode 
31229 NodeManager 
31025 NodeManager 30920 DataNode 
30979 DataNode 31083 NodeManager
Hadoop 2.5 설치 
5. 하둡 2.5 실행 확인 
a) HDFS 확인 - http://big01:50070
Hadoop 2.5 설치 
5. 하둡 2.5 실행 확인 
b) Resource & Node Manager 확인 - http://big01:8088
Hadoop 개발 
1. 이클립스 설치 1) http://eclipse.org 에서 이클립스 다운로드 
2) 압축 풀고, 바탕화면에 링크 만들기
Hadoop 개발 
1. 자바 프로젝트 생성 
1. 프로젝트명 생성 BCHadoop 2. package 추가 word 3. 클래스 추가 WordCount
Hadoop 개발 
<?xml version="1.0" encoding="UTF-8"?> 
<project name="bc-hadoop-study" default="build"> 
<property name="major-version" value="1" /> 
<property name="minor-version" value="0" /> 
<property name="build-number" value="0" /> 
<property name="version" value="${major-version}.${minor-version}.${build-number}" /> 
<property name="company-name" value="bc" /> 
<property name="project-name" value="hadoop" /> 
<property name="general-lib" value="${company-name}-${project-name}.jar" /> 
<property name="general-src" value="${company-name}-${project-name}-src.zip" /> 
<property name="build-Path" location="." /> 
<property name="src.dir.src" location="${build-Path}/src" /> 
<property name="src.dir.bin" location="${build-Path}/bin" /> 
<property name="src.dir.build" location="${build-Path}/build" /> 
<target name="build" depends="build-lib, build-src" /> 
<target name="Clean-all" depends="clean-lib, clean-src" /> 
<target name="clean-lib"> 
<delete file="${src.dir.bild}/${general-lib}" /> 
</target> 
<target name="clean-src"> 
<delete file="${src.dir.bild}/${general-src}" /> 
</target> 
<target name="build-lib" depends="clean-lib"> 
<jar destfile="${src.dir.build}/${general-lib}" basedir="${src.dir.bin}"> 
<manifest> 
<attribute name="${project-name}-Version" value="${version}" /> 
</manifest> 
</jar> 
</target> 
<target name="build-src" depends="clean-src"> 
<zip zipfile="${src.dir.build}/${general-src}" basedir="${src.dir.src}"> 
</zip> 
</target> 
</project> 
2. ant 빌드파일 추가 
build.xml 파일 추가 오른쪽 내용 붙여넣기
Hadoop 개발 
3. Hadoop 2.5 라이브러리 Build Path 추가 
프로젝트 마우스 오른쪽 버튼 - Build Path - Configure Build Path 선택
Hadoop 개발 
3. Hadoop 2.5 라이브러리 Build Path 추가 
Library에서 Add External Jars 선택
Hadoop 개발 
3. Hadoop 2.5 라이브러리 Build Path 추가 
하둡 디렉토리 내에 share/hadoop 이동하면 라이브러리 묶음 존재
Hadoop 개발 
3. Hadoop 2.5 라이브러리 Build Path 추가 
common 디렉토리 이동 후 아래 jar 파일을 선택/확인
Hadoop 개발 
3. Hadoop 2.5 라이브러리 Build Path 추가 
hdfs 디렉토리 이동 후 전체 jar 파일을 선택/확인
Hadoop 개발 
3. Hadoop 2.5 라이브러리 Build Path 추가 
mapreduce 디렉토리 이동 후 전체 jar 파일을 선택/확인
Hadoop 개발 
3. Hadoop 2.5 라이브러리 Build Path 추가 
tools/lib 디렉토리로 이동 후 전체 jar 파일 선택 /확인
Hadoop 개발 
4. WordCount 클래스 코딩 
public class WordCount { public static class WordCountMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } public static class WordCountReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } ...(이어서)... 
...(이어서)... public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(WordCountMapper.class); job.setCombinerClass(WordCountReducer.class); job.setReducerClass(WordCountReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } } 
1 
2
Hadoop 개발 
4. WordCount 프로젝트 빌드 
build.xml 파일을 선택, 마우스 오른쪽 버튼을 눌러 Ant Build 실행
Hadoop 개발 
4. WordCount 프로젝트 빌드 
BUILD SUCCESSFUL 나오면 당연히 빌드 성공 
이 위치에 bc-hadoop.jar 파일이 생성되었다!
Hadoop 개발 
4. WordCount 프로젝트 빌드 
[실행명령어] hadoop jar <빌드 jar 파일> <실행 Driver 클래스> <입력파일> <출력파일> 
[hadoop@big01 hadoop-2.5.0-src]# hadoop jar /home/hadoop/workspace/BCHadoop/build/bc-hadoop.jar word.WordCount /user/hadoop/alice.txt result.txt 
14/11/01 00:03:55 INFO client.RMProxy: Connecting to ResourceManager at big01/192.168.56.101:8040 
14/11/01 00:03:59 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this. 
14/11/01 00:04:00 INFO input.FileInputFormat: Total input paths to process : 1 
14/11/01 00:04:00 INFO mapreduce.JobSubmitter: number of splits:1 
14/11/01 00:04:00 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1414758336803_0001 
14/11/01 00:04:02 INFO impl.YarnClientImpl: Submitted application application_1414758336803_0001 
14/11/01 00:04:02 INFO mapreduce.Job: The url to track the job: http://big01:8088/proxy/application_1414758336803_0001/ 
14/11/01 00:04:02 INFO mapreduce.Job: Running job: job_1414758336803_0001 
14/11/01 00:04:16 INFO mapreduce.Job: Job job_1414758336803_0001 running in uber mode : false 
14/11/01 00:04:16 INFO mapreduce.Job: map 0% reduce 0% 
14/11/01 00:04:27 INFO mapreduce.Job: map 100% reduce 0% 
[hadoop@big01 ~]$ hadoop fs -cat result.txt/part-r-00000 | head "'TIS 1 "--SAID 1 "Come 1 "Coming 1 "Defects," 1 "Edwin 1 "French, 1 "HOW 1 "He's 1
Hive 설치 
1) Hive 0.13 다운로드 http://hive.apache.org 접속 후 다운로드 2) 계정 홈 디렉토리로 mv $ mv apache-hive-0.13.1-bin.tar.gz ~ 3) 압축을 풀고 hadoop 심볼릭 링크를 생성 $ ln -s apache-hive-0.13.1-bin hive 4) .bash_profile에 HIVE_HOME과 PATH 추가
Hive 아키텍처 
Meta 
Store 
Hadoop MapReduce 
Hadoop DFS 
CLI 
JDBC 
Driver 
SQL Parser 
Query Optimizer 
Physical Plan 
Execution 
Client 
•Hive는 별도 환경 설정을 하지 않으면, Metastore는 derby db로 지정 
•derby의 경우 파일 전체로 Lock이 되므로 다수 이용자가 동시 사용 불가 → Metastore를 RDBMS로 지정
Hive 특징 
1) Hive에서 사용되는 데이터는 읽기 전용 
•UPDATE와 DELETE는 사용 불가 
•INSERT는 빈 테이블에 입력, 혹은 기존 데이터를 덮어쓰는 경우만 가능 
•INSERT OVEWRITE 사용 2) Hive 서브쿼리는 FROM 절에만 사용 가능 3) 저장 프로시저 (stored procedure) 사용 불가 4) ANSI SQL만 지원하며 MySQL에 가장 유사 5) Hive의 테이블 종류 
•Managed Table : Hive가 데이터의 생명 주기를 직접 제어 
•External Table : Hive가 데이터의 생명 주기를 관리 안 함
Hive 고유한 SQL문 
1. 데이터를 업로드 하는 방법 LOAD DATA INPATH '위치' OVERWRITE INTO TABLE 테이블 PARTITION( 변수 = ' 값 ' ); 
2. External 테이블 생성 
CREATE EXTERNAL TABLE 테이블( COLUMN STRING ) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY 'n' 
STORED AS TEXTFILE 
LOCATION 'HDFS의 파일 경로' ;
MySQL 설치 
1. MySQL 설치 
# yum install mysql-server 
2. MySQL 실행 
# service mysqld start 
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h big01 password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! [ OK ] mysqld (을)를 시작 중: [ OK ]
MySQL 설치 
3. root 비밀번호 변경 # mysqladmin -u root hadoop 
[root@big01 hadoop]# mysqladmin -u root password hadoop [root@big01 hadoop]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> exit 
4. MySQL 부팅시 실행 추가 #chkconfig mysqld on 
[root@big01 hadoop]# chkconfig mysqld on 
[root@big01 hadoop]# chkconfig --list mysqld 
mysqld 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
MySQL-Hive 연동 
1. MySQL Connector 설치 
# yum install mysql-connector-java 
2. MySQL Connector .jar 파일 복사 
# cp /usr/share/java/mysql-connector-java.jar ~hadoop/hive/lib/mysql-connector-java.jar 
[root@big01 java]# mysql -u root -p Enter password: mysql> create database metastore; Query OK, 1 row affected (0.00 sec) mysql> use metastore; Database changed 
4. Hive 유저 추가 및 권한 할당 
mysql> create user 'hive'@'%' identified by 'hive'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on metastore.* to 'hive'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 
귀찮으니 hive 유저의 비번도 hive, 모든 권한 할당 
3. MySQL 접속 후 metastore DB 생성
MySQL-Hive 연동 
5. hive-site.xml 설정 # yum install mysql-connector-java 
<configuration> 
<property> 
<name>javax.jdo.option.ConnectionURL</name> 
<value>jdbc:mysql://big01/metastore?createDatabaseIfNotExist=true</value> 
</property> 
<property> 
<name>javax.jdo.option.ConnectionDriverName</name> 
<value>com.mysql.jdbc.Driver</value> 
</property> 
<property> 
<name>javax.jdo.option.ConnectionUserName</name> 
<value>hive</value> 
</property> 
<property> 
<name>javax.jdo.option.ConnectionPassword</name> 
<value>hive</value> 
</property> 
<property> 
<name>hive.metastore.uris</name> 
<value>thrift://big01:9083</value> 
</property> 
</configuration>
MySQL-Hive 연동 
6. hive 서버 서비스 실행 
[hadoop@big01 hive]$ hive --service hiveserver & Starting Hive Thrift Server [hadoop@big01 hive]$ hive --service metastore & Starting Hive Metastore Server 
7. hive 실행 
[hadoop@big01 hive]$ hive Logging initialized using configuration in jar:file:/home/hadoop/apache-hive-0.13.1- bin/lib/hive-common-0.13.1.jar!/hive-log4j.properties hive> 
mysql> use metastore; 
Database changed 
mysql> show tables; 
+---------------------------+ 
| Tables_in_metastore | 
+---------------------------+ 
29 rows in set (0.00 sec) 
mysql> 
8. MySQL에서 metastore 확인 
hive가 정상적으로 실행되면 metastore에는 
자동적으로 테이블들이 만들어진다.
Hive 예제 
1. Hive WordCount 예제 
hive> create external table alice( line string ); hive> load data inpath 'alice.txt' overwrite into table alice; hive> create table word_hive as select word, count(1) cnt from (select explode(split(line, 's')) as word from alice) w group by word; 
hive> select * from word_hive limit 10; OK 1437 173 1 THE END 1 and 1 Said 1 With 1 cau 1 whole 1 (WITH ALICE'S LOVE). 1 
2. 결과 확인 
CTAS 쿼리 
HDFS 데이터를 테이블로 로드
끝.

Más contenido relacionado

La actualidad más candente

Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
처음 접하는 Oozie Workflow, Coordinator
처음 접하는 Oozie Workflow, Coordinator처음 접하는 Oozie Workflow, Coordinator
처음 접하는 Oozie Workflow, CoordinatorKim Log
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다민철 정민철
 
하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기beom kyun choi
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Matthew (정재화)
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...OpenStack Korea Community
 
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbmsNAVER D2
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기NAVER D2
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대DaeHeon Oh
 
What is chef - korean
What is chef - koreanWhat is chef - korean
What is chef - koreanSangUk Park
 
introduce of Hadoop map reduce
introduce of Hadoop map reduceintroduce of Hadoop map reduce
introduce of Hadoop map reduceDaeyong Shin
 

La actualidad más candente (20)

Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)
 
Apache hive
Apache hiveApache hive
Apache hive
 
Hadoop overview
Hadoop overviewHadoop overview
Hadoop overview
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
처음 접하는 Oozie Workflow, Coordinator
처음 접하는 Oozie Workflow, Coordinator처음 접하는 Oozie Workflow, Coordinator
처음 접하는 Oozie Workflow, Coordinator
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다
 
하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기
 
Apache sqoop
Apache sqoopApache sqoop
Apache sqoop
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
 
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대
 
SPARK SQL
SPARK SQLSPARK SQL
SPARK SQL
 
What is chef - korean
What is chef - koreanWhat is chef - korean
What is chef - korean
 
introduce of Hadoop map reduce
introduce of Hadoop map reduceintroduce of Hadoop map reduce
introduce of Hadoop map reduce
 

Similar a 20141029 하둡2.5와 hive설치 및 예제

[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1Ji-Woong Choi
 
Enterprise Linux 7 new feature_network configuration
Enterprise Linux 7 new feature_network configurationEnterprise Linux 7 new feature_network configuration
Enterprise Linux 7 new feature_network configurationsuk kim
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHousejieun kim
 
Hadoopcluster install in_centos_virtualbox
Hadoopcluster install in_centos_virtualboxHadoopcluster install in_centos_virtualbox
Hadoopcluster install in_centos_virtualbox은봉 이
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guideseungdon Choi
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)Ian Choi
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) wonyong hwang
 
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
Red Hat OpenStack 17 저자직강+스터디그룹_2주차Red Hat OpenStack 17 저자직강+스터디그룹_2주차
Red Hat OpenStack 17 저자직강+스터디그룹_2주차Nalee Jang
 
Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)wonyong hwang
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호ETRIBE_STG
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxwonyong hwang
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014Gruter
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치ymtech
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdfHeeJung Chae
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 

Similar a 20141029 하둡2.5와 hive설치 및 예제 (20)

[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
 
Enterprise Linux 7 new feature_network configuration
Enterprise Linux 7 new feature_network configurationEnterprise Linux 7 new feature_network configuration
Enterprise Linux 7 new feature_network configuration
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouse
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
Hadoopcluster install in_centos_virtualbox
Hadoopcluster install in_centos_virtualboxHadoopcluster install in_centos_virtualbox
Hadoopcluster install in_centos_virtualbox
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Lam pstack
Lam pstackLam pstack
Lam pstack
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0)
 
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
Red Hat OpenStack 17 저자직강+스터디그룹_2주차Red Hat OpenStack 17 저자직강+스터디그룹_2주차
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf
 
Internship backend
Internship backendInternship backend
Internship backend
 

Más de Tae Young Lee

2016년 비씨카드 신입사원 선배특강 20160719
2016년 비씨카드 신입사원 선배특강 201607192016년 비씨카드 신입사원 선배특강 20160719
2016년 비씨카드 신입사원 선배특강 20160719Tae Young Lee
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)Tae Young Lee
 
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) 파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) Tae Young Lee
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)Tae Young Lee
 
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) 20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) Tae Young Lee
 
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영Tae Young Lee
 
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영Tae Young Lee
 
20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현Tae Young Lee
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍Tae Young Lee
 

Más de Tae Young Lee (9)

2016년 비씨카드 신입사원 선배특강 20160719
2016년 비씨카드 신입사원 선배특강 201607192016년 비씨카드 신입사원 선배특강 20160719
2016년 비씨카드 신입사원 선배특강 20160719
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
 
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) 파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
 
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) 20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
 
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
 
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
 
20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍
 

20141029 하둡2.5와 hive설치 및 예제

  • 1. hadoop 2 & Hive 스터디 환경 구축 with VirtualBox 어디에도 이보다 친절한 자료는 없다! IT가맹점개발팀 이태영 2014.10.29
  • 2. 출처 : http://hortonworks.com/hadoop/yarn/ YARN의 가장 큰 특징 Resource Manager의 분리
  • 3. YARN Yet Another Resource Negotiator 특징 •JobTracker의 두 가지 역할 분리 ①Resource 관리 ②Job 상태 관리 기존 JobTracker의 병목을 제거 •범용 클러스터 API MR 외에 다양한 어플리케이션을 실행할 수 있으며, 어플리케이션 마다 자원(CPU, 메모리)를 할당
  • 5. Master Node 하둡 클러스터의 Resource와 Job 관리를 함께 수행. 병목이 발생하는 지점 Data Node 한 노드에서 실행할 수 있는 Map과 Reduce Task의 개수 제한. M/R만 처리 Hadoop 1.x 출처 : http://hadoop.apache.org/docs/current/hadoop- yarn/hadoop-yarn-site/YARN.html
  • 6. 출처 : http://hadoop.apache.org/docs/current/hadoop- yarn/hadoop-yarn-site/YARN.html Resource Manager 클라이언트가 요청한 어플리케이션마다 자원을 관리 하둡 클러스터 내 1개 Node Manager 각 슬레이브 노드 마다 1개. 컨테이너와 자원의 상태를 RM에게 통지 Hadoop 2.x Application Master 어플리케이션의 실행을 관리하고 상태를 RM에게 통지 어플리케이션마다 1개. Container 어플리케이션을 수행하는 역할 제한된 자원을 소유하며, 상태를 AM에게 통지
  • 7. 출처 : http://hadoop.apache.org/docs/current/hadoop- yarn/hadoop-yarn-site/YARN.html 1.클라이언트가 RM에게 어플리케이션 제출 2.NM을 통해 AM 실행 3.AM은 RM에게 자신을 등록 4.AM은 RM에게 컨테이너 할당할 공간/위치를 받음 5.AM은 NM에게 컨테이너를 실행 요청 (어플리케이션 정보를 NM에게 제공) 6.컨테이너는 어플리케이션의 상태정보를 AM에 알림 7.클라이언트는 어플리케이션의 실행정보를 얻기 위해 AM와 직접 통신 8.어플리케이션 종료되면 AM은 RM에게서 자신의 자원을 해제하고 종료 Hadoop 2.x
  • 8. Hadoop 2.4 설치 1.설치순서 (Windows 64bit에서만 가능) ①CentOS 6.5 설치 ②Java 8 설치 ③구글 크롬 설치 ④리눅스 클러스터 구축 ⑤Hadoop 2.5 설치 ⑥Hive 설치 ⑦예제
  • 9. CentOS 6.5 설치 Master Slave Slave Slave <설치구성 목표> 서버명 big01 IP 192.168.65.101 서버명 big02 IP 192.168.65.102 서버명 big03 IP 192.168.65.103 서버명 big04 IP 192.168.65.104
  • 10. CentOS 6.5 설치 1. VirtualBox를 설치한다. 2. 새로 만들기(N) 버튼을 누르고 리눅스용 VM을 하나 만든다. (이름은 big01)
  • 11. CentOS 6.5 설치 1. Basic Server를 선택 2. 소프트웨어 추가를 위해 [지금 선택]을 하여 다음 버튼
  • 12. CentOS 6.5 설치 1. Basic Server를 선택 2. 소프트웨어 추가를 위해 [지금 선택]을 하여 다음 버튼 1. 데스크탑을 선택하여 KDE를 제외한 모든 옵션 선택
  • 13. CentOS 6.5 설치 사용자 추가 아이디 hadoop 암호 hadoop
  • 14. CentOS 6.5 설치 [NTP 서버] 아무거나 선택 후 다음
  • 15. CentOS 6.5 설치 리눅스 OS 설치는 성공
  • 16. CentOS 설치가 완료된 후 게스트 확장 설치를 해준다. CentOS 6.5 설치
  • 18. 아래처럼 Building the main Guest Additions module 에러(실패)가 발생하면 $ yum install gcc dkms make kernel-devel $ yum install kernel sources $ yum install kernel-headers $ yum groupinstall "Development Tools" root 권한으로 아래 명령어로 관련 pkg 설치 후, 리부팅&게스트 모드 재설치 CentOS 6.5 설치
  • 19. CentOS 6.5 설치 게스트모드 설치가 정상적으로 완료되면, 1. 창 크기 맞게 해상도가 자유자재 설정 2. 윈도우 OS에서 마우스로 파일 드래그&드롭 복사 3. 윈도우 OS와 가상 VM간 클립보드 공유 가능 (Ctrl+C, Ctrl+V)
  • 20. CentOS 6.5 설치 메뉴에서 클립보드 공유, Drag'n Drop을 모두 양방향으로 변경 이제 윈도우즈와 VM간 파일을 드래그앤드롭으로 복사할 수 있고 윈도우즈와 VM간 Ctrl+C, Ctrl+V도 자유롭게 사용 가능.
  • 21. CentOS 6.5 설치 터미널에서 setup 명령어로 진입하여 방화벽 설정의 활성화 해제
  • 22. Google Chrome 설치 1. YUM repository 설정 [google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64 enabled=1 gpgcheck=1 # vi /etc/yum.repos.d/google-chrome.repo root 권한 필요 # yum install google-chrome-stable 2. YUM 설치 # wget http://chrome.richardlloyd.org.uk/install_chrome.sh # chmod u+x install_chrome.sh # ./install_chrome.sh 3. 구글 크롬 스크립트 다운로드 및 실행
  • 23. Google Chrome 설치 root 권한 필요 # google-chrome & 4. 구글 크롬 실행 실행이 안되면, 이전 스크립트 명령어 재실행 # ./install_chrome.sh 정상적으로 완료되면, 시스템 메뉴 오른쪽 - 브라우저 버튼을 클릭하면 크롬이 실행
  • 24. 자바8 설치 1. CentOS가 설치한 자바7 삭제 # yum remove java 후 [Y/N] y 입력 2. 자바 8 다운로드 http://java.sun.com 접속 후 다운로드
  • 25. 자바8 설치 3. 자바 8 설치 [hadoop@big01 ~]$ cd 다운로드/ [hadoop@big01 다운로드]$ mv jdk-8u25-linux-x64.tar.gz ~/ [hadoop@big01 다운로드]$ cd - /home/hadoop [hadoop@big01 ~]$ tar zxvf jdk-8u25-linux-x64.tar.gz [hadoop@big01 ~]$ ln -s jdk1.8.0_25 java 모든 오픈소스 Binary들은 링크를 걸어주는게 관리측면에서 편하다.
  • 26. 자바8 설치 4. 자바 8 환경설정 [hadoop@big01 ~]$ vi .bash_profile 1) JAVA_HOME 설정 및 PATH 추가 [hadoop@big01 ~]$ . .bash_profile 2) 프로파일 실행 [hadoop@big01 ~]$ java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) 3) 자바 버전 확인
  • 27. 리눅스 클러스터링 설치 완료 big02 big03 big04 Master Slave Slave Slave <설치 목표> big01 남은 것 남은 것 남은 것 big01 설치 완료 남은 3대는 어떡해?
  • 28. big02, big03, big04 차례로 그.냥.복.사 리눅스 클러스터링
  • 29. 어댑터2 추가 - 호스트 전용 어댑터 선택 MAC주소를 랜덤 재할당 big02, big03, big04 동일하게 리눅스 클러스터링
  • 30. 1 2 3 IP주소 영역 확인 리눅스 클러스터링
  • 31. 4대 서버들을 선택(SHIFT+마우스 클릭) 서버 시작(T) 리눅스 클러스터링
  • 32. 리눅스 클러스터링 1) DNS 변경 (big01을 복제하였으니) big02, big03, big04 가상노드들을 선택하여 자신의 서버명으로 변경해준다. setup 명령어 - 네트워크 설정 - DNS 설정 1 2 로그아웃 후 big02로 변경 확인
  • 33. 리눅스 클러스터링 2) NIC 네트워크 설정 [hadoop@big01 바탕화면]$ ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:CC:F1:DB inet6 addr: fe80::a00:27ff:fecc:f1db/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth1 Link encap:Ethernet HWaddr 08:00:27:47:36:C0 inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe47:36c0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 lo Link encap:Local Loopback .... NAT Host-Only (노드들간 통신용) 맥 어드레스 맥 어드레스 /etc/sysconfig/network-scripts 디렉토리 내부에 ifcfg-* 파일명으로 NIC 설정파일들이 존재 한다. 예) eth0 장치의 경우 ifcfg-eth0 (없으면 다른 파일을 복사해서 만들어주고 수정)
  • 34. 리눅스 클러스터링 2) NIC 네트워크 설정 eth1 없다 -rw-r--r--. 1 root root 136 2014-10-30 21:43 ifcfg-eth0 -rw-r--r--. 1 root root 254 2013-10-10 23:48 ifcfg-lo [root@big01 network-scripts]# cp ifcfg-eth0 ifcfg-eth1 [root@big01 network-scripts]# vi ifcfg-eth1 DEVICE=eth0 HWADDR=08:00:27:CC:F1:DB TYPE=Ethernet UUID=c06f2b6b-efc3-4415-af28-7c51869efc8f ONBOOT=no NM_CONTROLLED=yes BOOTPROTO=dhcp DEVICE=eth1 HWADDR=08:00:27:47:36:C0 TYPE=Ethernet IPADDR=192.168.56.111 NETWORK=192.168.56.0 GATEWAY=192.168.56.1 NETMASK=255.255.255.0 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=no eth1 생성&편집 ifcfg-eth1 수정 전 [root@big01 network-scripts]# /etc/init.d/network restart 인터페이스 eth0 (을)를 종료 중: [ OK ] 인터페이스 eth1 (을)를 종료 중: 장치 상태: 3 (연결 끊겼음) [ OK ] loopback 인터페이스 종료 중: [ OK ] loopback 인터페이스 활성화중 입니다: [ OK ] eth1 인터페이스 활성화중 입니다: [ OK ] ifcfg-eth1 수정 후
  • 35. 리눅스 클러스터링 아래처럼 ifconfig를 참고하여 NIC 설정파일들을 만든다. big02, big03, big04 노드들의 IP는 다음장을 참고
  • 36. Master Slave Slave Slave 서버명 big01 IP 192.168.65.101 서버명 big02 IP 192.168.65.102 서버명 big03 IP 192.168.65.103 서버명 big04 IP 192.168.65.104 리눅스 클러스터링
  • 37. 리눅스 클러스터링 TIP) 아예 NIC 디바이스명과 맥어드레스를 변경하려면? $ vi /etc/udev/rules.d/70-persistent-net.rules # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:1C:6B:E7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:94:D0:C1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" /etc/sysconfig/network-scripts 아래 해당 NIC 스크립트 생성&설정 •/etc/sysconfig/network-scripts/ifcfg-eth0 •/etc/sysconfig/network-scripts/ifcfg-eth1 $ reboot
  • 38. 리눅스 클러스터링 TIP) network restar시 RTNETLINK answers: File exists 에러 [root@big01 바탕화면]# service network restart 인터페이스 eth0 (을)를 종료 중: 장치 상태: 3 (연결 끊겼음) [ OK ] 인터페이스 eth1 (을)를 종료 중: [ OK ] loopback 인터페이스 종료 중: [ OK ] loopback 인터페이스 활성화중 입니다: [ OK ] eth0 인터페이스 활성화중 입니다: 활성화된 연결 상태: 활성화중 활성화된 연결 경로: /org/freedesktop/NetworkManager/ActiveConnection/5 상태: 활성화됨 연결이 활성화되었습니다 [ OK ] eth1 인터페이스 활성화중 입니다: RTNETLINK answers: File exists [ OK ] 해당 ifcfg-* 파일에 NOZEROCONF=yes 추가 후 restart
  • 39. 리눅스 클러스터링 3) host 설정 # vi /etc/hosts 192.168.56.101 big01 192.168.56.102 big02 192.168.56.103 big03 192.168.56.104 big04 big01, big02, big03, big04 모두 적용 4) ssh 연결 확인 [hadoop@big01 바탕화면]$ ssh big02 The authenticity of host 'big02 (192.168.56.102)' can't be established. RSA key fingerprint is 09:6f:be:0b:0c:ba:3c:a7:a4:19:3c:ac:84:05:5a:ff. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'big02,192.168.56.102' (RSA) to the list of known hosts. hadoop@big02's password: 첫 접속시 인증을 받으므로, big02, big03, big04 한 번씩 접속
  • 40. 리눅스 클러스터링 5) ssh 키 배포 [hadoop@big01 바탕화면]$ ssh big02 hadoop@big02's password: 연결할 때마다 비밀번호를 입력해야 하므로 hadoop 계정의 ssh 키를 배포한다. [hadoop@big01 ~]$ ssh-keygen -t rsa 엔터, 엔터, 엔터 +--[ RSA 2048]----+ | | | | | . | | o . . . | | S E . o | | . o o . | | o O = .| | B B.+ | | ..*==. | +-----------------+ 나오면 성공
  • 41. 리눅스 클러스터링 5) ssh 키 배포 [hadoop@big01 ~]$ cd .ssh/ [hadoop@big01 .ssh]$ scp id_rsa.pub /home/hadoop/.ssh/authorized_keys [hadoop@big01 .ssh]$ scp id_rsa.pub hadoop@big02:/home/hadoop/.ssh/authorized_keys [hadoop@big01 .ssh]$ scp id_rsa.pub hadoop@big03:/home/hadoop/.ssh/authorized_keys [hadoop@big01 .ssh]$ scp id_rsa.pub hadoop@big04:/home/hadoop/.ssh/authorized_keys 계정의 .ssh 디렉토리의 id_rsa.pub 파일을 각 노드로 authorized_keys 파일로 배포한다. [hadoop@big01 .ssh]$ ssh big02 Last login: Fri Oct 31 00:25:10 2014 from big01 [hadoop@big01 .ssh]$ ssh big03 Last login: Fri Oct 31 00:25:11 2014 from big01 [hadoop@big01 .ssh]$ ssh big04 Last login: Fri Oct 31 00:25:18 2014 from big01 이후 마스터 노드인 big01에서 각 노드별로 ssh 접속을 할 때 묻지도 따지지도 않는다. 이것으로 클러스터링 구축 끝 -
  • 42. Hadoop 2.5 설치 1) 하둡 2.5 다운로드 http://hadoop.apache.org 접속 후 다운로드 2) 계정 홈 디렉토리로 mv $ mv hadoop-2.5.1.tar.gz ~ 3) 압축을 풀고 hadoop 심볼릭 링크를 생성 $ ln -s hadoop-2.5.1 hadoop 4) .bash_profile에 HADOOP_HOME과 PATH 설정 1. 하둡 2.5 설치 PATH에 하둡의 bin 디렉토리와 sbin 디렉토리를 추가 뿌뿌
  • 43. Hadoop 2.5 설치 $HADOOP_HOME/etc/hadoop 디렉토리 파일명 설명 hadoop-env.sh Hadoop을 실행하는 쉘스크립트 파일 JDK Path, Classpath, 데몬 옵션 등 설정 slaves Data node들의 서버 지정 core-site.xml HDFS와 MapReduce에서 공통적으로 사용할 정보들을 설정. hdfs-site와 mapred-site의 공통 설정 부분 hdfs-site.xml 하둡 파일시스템(HDFS)과 관련된 환경 정보를 설정 mapred-site.xml MapReduce의 어플리케이션 정보를 설정 yarn-site.xml Resource Manager, Node Manager 정보를 설정 yarn-env.sh YARN을 실행하는 쉘스크립트 파일 출처 : http://hadoop.apache.org/docs/r2.5.0/hadoop-project- dist/hadoop-common/ClusterSetup.html 2. 하둡 2.5 환경설정
  • 44. Hadoop 2.5 설치 2. 하둡 2.5 환경설정 파일명 설명 hadoop-env.sh Hadoop을 실행하는 쉘스크립트 파일이다. JDK Path, Classpath, 데몬 옵션 등 설정 export JAVA_HOME=/home/hadoop/java export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop 파일 최상단에 아래 정보 추가 내용 추가한 화면 복사/붙여넣기용
  • 45. Hadoop 2.5 설치 2. 하둡 2.5 환경설정 파일명 설명 yarn-env.sh YARN을 실행하는 쉘스크립트 파일 export JAVA_HOME=/home/hadoop/java export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop 파일 최상단에 아래 정보 추가
  • 46. Hadoop 2.5 설치 2. 하둡 2.5 환경설정 파일명 설명 slaves Data node들의 서버 지정 파일에 slave 노드들 작성/저장 Master Slave Slave Slave big02 big03 big04 big01 big02 big03 big04
  • 47. Hadoop 2.5 설치 2. 하둡 2.5 환경설정 파일명 설명 core-site.xml HDFS와 MapReduce에서 공통적으로 사용할 정보들을 설정. hdfs-site와 mapred-site의 공통 설정 부분 <configuration> <property> <name>fs.default.name</name> <value>hdfs://big01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop/tmp/</value> </property> </configuration> 저장 완료 후 /home/hadoop/hadoop/tmp 디렉토리 생성 1)아래 내용 작성 후 저장 참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-project-dist/hadoop- common/core-default.xml
  • 48. Hadoop 2.5 설치 2. 하둡 2.5 환경설정 파일명 설명 hdfs-site.xml 하둡 파일시스템(HDFS)과 관련된 환경 정보를 설정 <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>big02:50090</value> </property> <property> <name>dfs.namenode.secondary.https-address</name> <value>big02:50091</value> </property> </configuration> 1)아래 내용 작성 후 저장 참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-project-dist/hadoop- hdfs/hdfs-default.xml
  • 49. Hadoop 2.5 설치 2. 하둡 2.5 환경설정 파일명 설명 mapred-site.xml MapReduce의 어플리케이션 정보를 설정 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 1)아래 내용 작성 후 저장 참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-mapreduce- client/hadoop-mapreduce-client-core/mapred-default.xml mapred-site.xml이 없다면 mapred-site.xml.template 복사/생성
  • 50. Hadoop 2.5 설치 2. 하둡 2.5 환경설정 파일명 설명 yarn-site.xml Resource Manager, Node Manager 정보를 설정 <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>big01:8025</value> </property> ...(이어서)... 참고 : http://hadoop.apache.org/docs/r2.5.0/hadoop-yarn/hadoop-yarn- common/yarn-default.xml ...(이어서)... <property> <name>yarn.resourcemanager.scheduler.address</name> <value>big01:8030</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>big01:8040</value> </property> </configuration> 1 2
  • 51. Hadoop 2.5 설치 3. 하둡 2.5 배포 [hadoop@big01 ~]$ cd [hadoop@big01 ~]$ scp -r hadoop-2.5.1 hadoop@big02:~ [hadoop@big01 ~]$ scp -r hadoop-2.5.1 hadoop@big03:~ [hadoop@big01 ~]$ scp -r hadoop-2.5.1 hadoop@big04:~ [hadoop@big01 ~]$ ssh hadoop@big02 "ln -s hadoop-2.5.1 hadoop" [hadoop@big01 ~]$ ssh hadoop@big03 "ln -s hadoop-2.5.1 hadoop" [hadoop@big01 ~]$ ssh hadoop@big04 "ln -s hadoop-2.5.1 hadoop" [hadoop@big01 ~]$ scp .bash_profile hadoop@big02:~ [hadoop@big01 ~]$ scp .bash_profile hadoop@big03:~ [hadoop@big01 ~]$ scp .bash_profile hadoop@big04:~ 1) 하둡 디렉토리 배포 2) 하둡 디렉토리 심볼릭 링크 처리 3) 계정 profile 배포
  • 52. Hadoop 2.5 설치 4. 하둡 2.5 실행 [hadoop@big01 ~]$ hadoop namenode -format 14/10/31 21:05:45 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 14/10/31 21:05:45 INFO util.ExitUtil: Exiting with status 0 14/10/31 21:05:45 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at big01/192.168.56.101 ************************************************************/ 1) 하둡 네임노드 포멧 [hadoop@big01 ~]$ start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh 14/10/31 21:06:40 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [big01] Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /home/hadoop/hadoop-2.5.1/logs/hadoop-hadoop-secondarynamenode-big01.out starting yarn daemons starting resourcemanager, logging to /home/hadoop/hadoop-2.5.1/logs/yarn-hadoop-resourcemanager-big01.out big03: starting nodemanager, logging to /home/hadoop/hadoop-2.5.1/logs/yarn-hadoop-nodemanager-big03.out big02: starting nodemanager, logging to /home/hadoop/hadoop-2.5.1/logs/yarn-hadoop-nodemanager-big02.out 2) 하둡 디렉토리 실행
  • 53. Hadoop 2.5 설치 Master Slave Slave Slave big02 big03 big04 big01 4. 하둡 2.5 실행 3) 하둡 실행 확인 [hadoop@big01 ~]$ jps 명령어 [hadoop@big01 ~]$ jps 4085 ResourceManager 3759 NameNode 31120 DataNode 30306 SecondaryNameNode 31229 NodeManager 31025 NodeManager 30920 DataNode 30979 DataNode 31083 NodeManager
  • 54. Hadoop 2.5 설치 5. 하둡 2.5 실행 확인 a) HDFS 확인 - http://big01:50070
  • 55. Hadoop 2.5 설치 5. 하둡 2.5 실행 확인 b) Resource & Node Manager 확인 - http://big01:8088
  • 56. Hadoop 개발 1. 이클립스 설치 1) http://eclipse.org 에서 이클립스 다운로드 2) 압축 풀고, 바탕화면에 링크 만들기
  • 57. Hadoop 개발 1. 자바 프로젝트 생성 1. 프로젝트명 생성 BCHadoop 2. package 추가 word 3. 클래스 추가 WordCount
  • 58. Hadoop 개발 <?xml version="1.0" encoding="UTF-8"?> <project name="bc-hadoop-study" default="build"> <property name="major-version" value="1" /> <property name="minor-version" value="0" /> <property name="build-number" value="0" /> <property name="version" value="${major-version}.${minor-version}.${build-number}" /> <property name="company-name" value="bc" /> <property name="project-name" value="hadoop" /> <property name="general-lib" value="${company-name}-${project-name}.jar" /> <property name="general-src" value="${company-name}-${project-name}-src.zip" /> <property name="build-Path" location="." /> <property name="src.dir.src" location="${build-Path}/src" /> <property name="src.dir.bin" location="${build-Path}/bin" /> <property name="src.dir.build" location="${build-Path}/build" /> <target name="build" depends="build-lib, build-src" /> <target name="Clean-all" depends="clean-lib, clean-src" /> <target name="clean-lib"> <delete file="${src.dir.bild}/${general-lib}" /> </target> <target name="clean-src"> <delete file="${src.dir.bild}/${general-src}" /> </target> <target name="build-lib" depends="clean-lib"> <jar destfile="${src.dir.build}/${general-lib}" basedir="${src.dir.bin}"> <manifest> <attribute name="${project-name}-Version" value="${version}" /> </manifest> </jar> </target> <target name="build-src" depends="clean-src"> <zip zipfile="${src.dir.build}/${general-src}" basedir="${src.dir.src}"> </zip> </target> </project> 2. ant 빌드파일 추가 build.xml 파일 추가 오른쪽 내용 붙여넣기
  • 59. Hadoop 개발 3. Hadoop 2.5 라이브러리 Build Path 추가 프로젝트 마우스 오른쪽 버튼 - Build Path - Configure Build Path 선택
  • 60. Hadoop 개발 3. Hadoop 2.5 라이브러리 Build Path 추가 Library에서 Add External Jars 선택
  • 61. Hadoop 개발 3. Hadoop 2.5 라이브러리 Build Path 추가 하둡 디렉토리 내에 share/hadoop 이동하면 라이브러리 묶음 존재
  • 62. Hadoop 개발 3. Hadoop 2.5 라이브러리 Build Path 추가 common 디렉토리 이동 후 아래 jar 파일을 선택/확인
  • 63. Hadoop 개발 3. Hadoop 2.5 라이브러리 Build Path 추가 hdfs 디렉토리 이동 후 전체 jar 파일을 선택/확인
  • 64. Hadoop 개발 3. Hadoop 2.5 라이브러리 Build Path 추가 mapreduce 디렉토리 이동 후 전체 jar 파일을 선택/확인
  • 65. Hadoop 개발 3. Hadoop 2.5 라이브러리 Build Path 추가 tools/lib 디렉토리로 이동 후 전체 jar 파일 선택 /확인
  • 66. Hadoop 개발 4. WordCount 클래스 코딩 public class WordCount { public static class WordCountMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } public static class WordCountReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } ...(이어서)... ...(이어서)... public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(WordCountMapper.class); job.setCombinerClass(WordCountReducer.class); job.setReducerClass(WordCountReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } } 1 2
  • 67. Hadoop 개발 4. WordCount 프로젝트 빌드 build.xml 파일을 선택, 마우스 오른쪽 버튼을 눌러 Ant Build 실행
  • 68. Hadoop 개발 4. WordCount 프로젝트 빌드 BUILD SUCCESSFUL 나오면 당연히 빌드 성공 이 위치에 bc-hadoop.jar 파일이 생성되었다!
  • 69. Hadoop 개발 4. WordCount 프로젝트 빌드 [실행명령어] hadoop jar <빌드 jar 파일> <실행 Driver 클래스> <입력파일> <출력파일> [hadoop@big01 hadoop-2.5.0-src]# hadoop jar /home/hadoop/workspace/BCHadoop/build/bc-hadoop.jar word.WordCount /user/hadoop/alice.txt result.txt 14/11/01 00:03:55 INFO client.RMProxy: Connecting to ResourceManager at big01/192.168.56.101:8040 14/11/01 00:03:59 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this. 14/11/01 00:04:00 INFO input.FileInputFormat: Total input paths to process : 1 14/11/01 00:04:00 INFO mapreduce.JobSubmitter: number of splits:1 14/11/01 00:04:00 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1414758336803_0001 14/11/01 00:04:02 INFO impl.YarnClientImpl: Submitted application application_1414758336803_0001 14/11/01 00:04:02 INFO mapreduce.Job: The url to track the job: http://big01:8088/proxy/application_1414758336803_0001/ 14/11/01 00:04:02 INFO mapreduce.Job: Running job: job_1414758336803_0001 14/11/01 00:04:16 INFO mapreduce.Job: Job job_1414758336803_0001 running in uber mode : false 14/11/01 00:04:16 INFO mapreduce.Job: map 0% reduce 0% 14/11/01 00:04:27 INFO mapreduce.Job: map 100% reduce 0% [hadoop@big01 ~]$ hadoop fs -cat result.txt/part-r-00000 | head "'TIS 1 "--SAID 1 "Come 1 "Coming 1 "Defects," 1 "Edwin 1 "French, 1 "HOW 1 "He's 1
  • 70. Hive 설치 1) Hive 0.13 다운로드 http://hive.apache.org 접속 후 다운로드 2) 계정 홈 디렉토리로 mv $ mv apache-hive-0.13.1-bin.tar.gz ~ 3) 압축을 풀고 hadoop 심볼릭 링크를 생성 $ ln -s apache-hive-0.13.1-bin hive 4) .bash_profile에 HIVE_HOME과 PATH 추가
  • 71. Hive 아키텍처 Meta Store Hadoop MapReduce Hadoop DFS CLI JDBC Driver SQL Parser Query Optimizer Physical Plan Execution Client •Hive는 별도 환경 설정을 하지 않으면, Metastore는 derby db로 지정 •derby의 경우 파일 전체로 Lock이 되므로 다수 이용자가 동시 사용 불가 → Metastore를 RDBMS로 지정
  • 72. Hive 특징 1) Hive에서 사용되는 데이터는 읽기 전용 •UPDATE와 DELETE는 사용 불가 •INSERT는 빈 테이블에 입력, 혹은 기존 데이터를 덮어쓰는 경우만 가능 •INSERT OVEWRITE 사용 2) Hive 서브쿼리는 FROM 절에만 사용 가능 3) 저장 프로시저 (stored procedure) 사용 불가 4) ANSI SQL만 지원하며 MySQL에 가장 유사 5) Hive의 테이블 종류 •Managed Table : Hive가 데이터의 생명 주기를 직접 제어 •External Table : Hive가 데이터의 생명 주기를 관리 안 함
  • 73. Hive 고유한 SQL문 1. 데이터를 업로드 하는 방법 LOAD DATA INPATH '위치' OVERWRITE INTO TABLE 테이블 PARTITION( 변수 = ' 값 ' ); 2. External 테이블 생성 CREATE EXTERNAL TABLE 테이블( COLUMN STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' STORED AS TEXTFILE LOCATION 'HDFS의 파일 경로' ;
  • 74. MySQL 설치 1. MySQL 설치 # yum install mysql-server 2. MySQL 실행 # service mysqld start PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h big01 password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! [ OK ] mysqld (을)를 시작 중: [ OK ]
  • 75. MySQL 설치 3. root 비밀번호 변경 # mysqladmin -u root hadoop [root@big01 hadoop]# mysqladmin -u root password hadoop [root@big01 hadoop]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> exit 4. MySQL 부팅시 실행 추가 #chkconfig mysqld on [root@big01 hadoop]# chkconfig mysqld on [root@big01 hadoop]# chkconfig --list mysqld mysqld 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
  • 76. MySQL-Hive 연동 1. MySQL Connector 설치 # yum install mysql-connector-java 2. MySQL Connector .jar 파일 복사 # cp /usr/share/java/mysql-connector-java.jar ~hadoop/hive/lib/mysql-connector-java.jar [root@big01 java]# mysql -u root -p Enter password: mysql> create database metastore; Query OK, 1 row affected (0.00 sec) mysql> use metastore; Database changed 4. Hive 유저 추가 및 권한 할당 mysql> create user 'hive'@'%' identified by 'hive'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on metastore.* to 'hive'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 귀찮으니 hive 유저의 비번도 hive, 모든 권한 할당 3. MySQL 접속 후 metastore DB 생성
  • 77. MySQL-Hive 연동 5. hive-site.xml 설정 # yum install mysql-connector-java <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://big01/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://big01:9083</value> </property> </configuration>
  • 78. MySQL-Hive 연동 6. hive 서버 서비스 실행 [hadoop@big01 hive]$ hive --service hiveserver & Starting Hive Thrift Server [hadoop@big01 hive]$ hive --service metastore & Starting Hive Metastore Server 7. hive 실행 [hadoop@big01 hive]$ hive Logging initialized using configuration in jar:file:/home/hadoop/apache-hive-0.13.1- bin/lib/hive-common-0.13.1.jar!/hive-log4j.properties hive> mysql> use metastore; Database changed mysql> show tables; +---------------------------+ | Tables_in_metastore | +---------------------------+ 29 rows in set (0.00 sec) mysql> 8. MySQL에서 metastore 확인 hive가 정상적으로 실행되면 metastore에는 자동적으로 테이블들이 만들어진다.
  • 79. Hive 예제 1. Hive WordCount 예제 hive> create external table alice( line string ); hive> load data inpath 'alice.txt' overwrite into table alice; hive> create table word_hive as select word, count(1) cnt from (select explode(split(line, 's')) as word from alice) w group by word; hive> select * from word_hive limit 10; OK 1437 173 1 THE END 1 and 1 Said 1 With 1 cau 1 whole 1 (WITH ALICE'S LOVE). 1 2. 결과 확인 CTAS 쿼리 HDFS 데이터를 테이블로 로드
  • 80. 끝.