Hadoop 설치 및 MapReduce 실습

2015. 1. 9. 09:00서버 프로그래밍

1> java 설치 폴더를 root에 복사


c:\program files\java\jdk1.6.0_45 --> c:\jdk1.6.0_45




2> www.cygwin.com 접속


setup-x86.exe 파일 다운로드




3>CygWin설치


다운로드 폴더 지정


C:\cygwin_local_packages


프록시설정


70.10.15.10


8080


다운로드 사이트 선택


http://box-soft.com




환경변수 뒤에 다음 경로 추가


Path


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


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




<SSH 설정>


> ssh-host-config 실행


yes,no,yes,enter,no,yes,암호(hadoop),yes 입력순으로 입력




> net start sshd





제어판-관리도구-서비스 CYGWIN sshd가 실행중인지 확인




> ssh-keygen (공개키 생성)




> cd ~/.ssh


> cat id_rsa.pub >> authorized_keys






4> 하둡 다운로드


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


hadoop-0.21.0.tar.gz 다운로드




c:\cygwin\home\SDS 폴더에 복사




> cd ~


> tar xvfz hadoop-0.21.0.tar.gz




심볼릭링크


> ln -s hadoop-0.21.0 hadoop




<하둡환경설정>


> cd ~/hadoop/conf


> vi hadoop-env.sh


e 누르고 #지우고 뒤경로지우고


ESC 누르고 입력위치로 이동


i 누르고 /cygdrive/c/jdk1.6.0_45 입력


ESC 누르고 :wq! 누르면 저장후 종료됨




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


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




> vi core-site.xml


<configuration>


 <property>


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


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


 </property>


</configuration>




> vi hdfs-site.xml


<configuration>


 <property>


  <name>dfs.replication</name>


  <value>1</value>


 </property>


 <property>


  <name>dfs.permissions</name>


  <value>false</value>


 </property>


</configuration>




> vi mapred-site.xml


<configuration>


 <property>


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


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


 </property>


</configuration>




<하둡실행>


> cd ~/hadoop




네임노드 포맷


> ./bin/hadoop namenode -format




하둡실행


> ./bin/start-all.sh



* 퍼미션 문제로 정상 실행이 안되면 각각 실행시킴


$ ./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


http://127.0.0.1:50070


<맵리듀스 실행>


1> input 파일을 HDFS에 업로드


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


2> 빌드한 jar 파일의 main Class를 실행


./bin/hadoop jar samsungSDS-wordcount.jar com.samsung.wordcount.WordCount input.txt wordcount_output


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


http://127.0.0.1:50030/jobtracker.jsp


<하둡종료>

$ ./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



<폴더를 input으로 지정하면 폴더안의 파일을 모두

mapreduce 수행>

hadoop fs -put 1901 1901

hadoop fs -put 1902 1902

hadoop fs -mkdir temp

hadoop fs -mv 1901 temp

hadoop fs -mv 1902 temp

hadoop jar SamsungSDS-maxtemp.jar  com.samsung.maxtemp.MaxTemp temp maxtemp-output


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


1987.csv.bz2~2008.csv.bz2 다운로드


압축 풀고 1987.csv~2008.csv 파일을


c:\cygwin\home\SDS\hadoop-0.21.0\data 폴더에 저장




> cd ~/hadoop/data


> ../bin/hadoop fs -mkdir input


> ../bin/hadoop fs -put * /user/SDS/input


> ../bin/hadoop fs -ls /user/SDS/input


$ ./bin/hadoop jar SamsungSDS-delaycount.jar com.samsung.delaycount.DelayCount input/1987.csv delaycount_1987output

$ ./bin/hadoop jar SamsungSDS-delaycount.jar com.samsung.delaycount.DelayCount input delaycount_output


> ./bin/hadoop jar SamsungSDS-hadoop-delaycount.jar com.multicampus.delaycount.DelayCount input dep_delay_count




> ./bin/hadoop fs -cat dep_delay_count/part-r-00000



<mapreduce task 죽이기>

./bin/hadoop job -kill job_201501080933_0006




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


Quiz #1


- 1987년부터 2003년까지 데이터 사용


- Project Name : DelayCount


- 항공 도착 및 출발 지연 데이터 분석


- 입력 : 항공운항데이터 (CSV파일)


- 맵리듀스 수행 결과 : 운항연도,운항월 기준 도착지연 건수 및 출발 지연건수 각각 합계 출력




Quiz #2


- 1901,1902년 미국 기상데이터 사용


- MaxTemperaure 프로젝트 생성 (교재 p57~p60 참고)


- 국립기후자료센터 데이터 분석 -> 연도별, 월별, 일자별 최고 온도 각각 출력