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 참고)
- 국립기후자료센터 데이터 분석 -> 연도별, 월별, 일자별 최고 온도 각각 출력