Hadoop 예제 소스 및 설치, 실행 방법

2015. 6. 12. 15:51서버 프로그래밍

행정자치부

빅데이터 플랫폼 Hadoop 설계 및 구축

교육시간 : 34시간


1) http://www.oracle.com/index.html

Downloads-Java for developers

jdk-8u45-windows-x64.exe 파일 다운로드

~~~~~~~~~~~~~~~~~~~~~~~~

C:\jdk1.8.0_45 설치위치 변경

~~~~~~~~~~~~~~

C:\jre1.8.0_45 설치위치 변경

~~~~~~~~~~~~~~


2) http://www.eclipse.org/

Download-Eclipse IDE for Java Developers

eclipse-java-luna-SR2-win32-x86_64.zip 파일 다운로드

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Workspace Launcher : C:\Users\wtime\Desktop\workspace

                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


3)https://archive.apache.org/dist/hadoop/common/hadoop-1.2.1/

hadoop-1.2.1.tar.gz 파일 다운로드

~~~~~~~~~~~~~~~~~~~


4)https://www.cygwin.com/

setup-x86_64.exe 파일 다운로드

~~~~~~~~~~~~~~~~

환경변수 추가

...;c:\cygwin64\bin;c:\cygwin64\usr\sbin

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


5)http://stat-computing.org/dataexpo/2009/the-data.html

1987.csv.bz2 ~ 2008.csv.bz2 22개 파일 다운로드


----------------------------------------------------------------------------------


workspace_20150612.zip


1.관리자권한으로 Cygwin64 Terminal 실행


2. ssh-host-config

creating config file...

--> yes

StrictMode....

--> yes

separation....

--> no

sshd install....

---> yes

---> enter

different name...

---> no

create user

---> no

Do you want to proceed anyway?

---> yes


3. sshd 서비스 실행

net start sshd

(또는 cygrunsrv -S sshd)


4. 공개키 생성

ssh-keygen

cd ~/.ssh

cat id_rsa.pub >> authorized_keys


5. hadoop 설치

tar xvfz hadoop-1.2.1.tar.gz


6. 심볼릭 링크

ln -s hadoop-1.2.1 hadoop


7. vi hadoop-env.sh

export JAVA_HOME=/cygdrive/c/jdk1.8.0_45


8. vi core-site.xml

<property>

<name>fs.default.name</name>

<value>hdfs://127.0.0.1:9000</value>

</property>


9. vi hdfs-site.xml

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>


10. vi mapred-site.xml

<property>

<name>mapred.job.tracker</name>

<value>hdfs://127.0.0.1:9001</value>

</property>


* hadoop 버전 변경

https://archive.apache.org/dist/hadoop/common/hadoop-0.21.0/

(1)hadoop-0.21.0.tar.gz 파일 다운로드

(2)c:\cygwin64\home\wtime 폴더에 복사

(3)홈디렉토리로 이동후 tar xvfz hadoop-0.21.0.tar.gz 압축 풀기

(4)rm hadoop (기존 심볼릭링크 제거)

(5)ln -s hadoop-0.21.0 hadoop (심볼릭 링크 연결)

(6)탐색기에서 c:\tmp\hadoop-wtime 폴더 제거

(7)탐색기에서 기존 hadoop-1.2.1의 conf 폴더에 있는 

   hadoop-env.sh 파일,core-site.xml 파일, 

   hdfs-site.xml 파일, mapred-site.zml 파일을

   hadoop-0.21.0의 conf 폴더에 복사

(8)아래 11번 항목부터 다시 실행


11.네임노드 포맷

하둡 루트 폴더로 이동(~/hadoop)

./bin/hadoop namenode -format


12.hadoop 실행

./bin/hadoop-daemon.sh start namenode

./bin/hadoop-daemon.sh start secondarynamenode

./bin/hadoop-daemon.sh start jobtracker

./bin/hadoop-daemon.sh start datanode

./bin/hadoop-daemon.sh start tasktracker


* 확인방법 : /cygdrive/c/jdk1.8.0_45/bin/jps

4320 SecondaryNameNode

1780 TaskTracker

3860 NameNode

2552 JobTracker

4940 DataNode

2032 Jps


* mapreduce용 입력 파일 생성

vi input.txt

cat input.txt (확인)


* HDFS에 input.txt 파일 업로드

./bin/hadoop fs -put input.txt input.txt

./bin/hadoop fs -ls (확인)

./bin/hadoop fs -cat input.txt (확인)


* WordCount 실행

./bin/hadoop jar mogaha-wordcount.jar kr.go.mogaha.wordcount.WordCount input.txt wordcount_output


./bin/hadoop fs -cat wordcount_output/part-r-00000 (확인)



13.hadoop 종료

./bin/hadoop-daemon.sh stop namenode

./bin/hadoop-daemon.sh stop secondarynamenode

./bin/hadoop-daemon.sh stop jobtracker

./bin/hadoop-daemon.sh stop datanode

./bin/hadoop-daemon.sh stop tasktracker


----------------------------------------------------------


https://github.com/tomwhite/hadoop-book/tree/master/input/ncdc/all


1901.gz 파일 다운로드

1902.gz 파일 다운로드


* HDFS상에 폴더 생성 및 파일 업로드

$ ./bin/hadoop fs -mkdir maxtemp

$ ./bin/hadoop fs -ls

$ ./bin/hadoop fs -put 1901 maxtemp

$ ./bin/hadoop fs -put 1902 maxtemp

$ ./bin/hadoop fs -ls maxtemp


* 맵리듀스 실행

./bin/hadoop jar mogaha-maxtemp.jar kr.go.mogaha.maxtemp.MaxTemp maxtemp maxtemp_output

./bin/hadoop fs -cat maxtemp_output/part-r-00000 (결과확인)


* 1987년 데이터만 샘플 테스트

./bin/hadoop jar mogaha-delaycount.jar kr.go.mogaha.delaycount.DelayCount delaycount/1987.csv delaycount_output

./bin/hadoop fs -cat delaycount_output/part-r-00000


./bin/hadoop fs -get delaycount_output2/part-r-00000 delaycount.txt (결과 파일을 로컬디스크로 다운로드)


* 실행중인 맵리듀스잡 강제 종료

./bin/hadoop job -kill job_201506120944_0006