저녁을 먹고 든든한 상태로 오늘도 강의를 듣기위해 왔습니다.


반은 넘어갔다고 하셨습니다. 시작이 반 이라는 이야기를 하시면서 수업을 시작하셨습니다.


mapreduce.pdf

맵리듀스의 강의자료입니다.

====================================    1    ====================================


( 19 : 00 ~ 19 : 48 )


 하둡의 특징은 파일시스템이다! 라는 것 입니다. 내일 수업을 할 MySQL이나 내일 모래 R을 다룰 것이라고 하셨습니다. 

 수업의 커리큘럼을 갖고 NTS(?)과정에 대해 이야기를 해 주셨습니다. HDFS(하둡 파일 시스템)은 DB에 비해 정형적인 DB에 비해 성능이 낮다고 하셨습니다. 하지만 비 정형적인 Data에 대해서는 하둡이 막강하다고 하셨습니다. 맵리듀스 이후에는 방향이 천차만별이라고 하셨습니다. 

 처음 설치와 개념잡는 것이 조금 어렵다고만 하셨습니다. 

 Java를 잘 하는지를 확인하셨습니다. 


 사전준비 및 설치


 - JDK

 - Hadoop


경로는 C:\hadoop-2.6.0으로 잡아서 파일들 넣어주셔야 합니다. 어제 설치를 안해서인지 뭔가 정상적으로 되지를 않습니다. 


command.txt 의 내용을 따라서 작업을 진행하였습니다.


0.파일 포맷

.\etc\hadoop\hadoop-env.cmd

.\bin\hdfs namenode -format

<포멧시에는 확인문이 Y or N 을 묻는데 대문자 Y를 넣어야 함>

실습시 문제가 발생했습니다. 하지만 아래의 2번째 시간 이후 설정을 수정하고 일부 설정을 추가하여 실습을 따라갈 수 있게 하였습니다.



1.DFS 시작-

http://localhost:50070/

로 접속 확인

.\sbin\start-dfs.cmd                <창 닫으면 꺼집니다. >

.\sbin\stop-dfs.cmd 


2.yarn 시작 

Resource Manager:  http://localhost:8088  

< http://localhost:8088,   한번 열어서 보라고 하셨습니다. 웹 브라우저에서 클러스터 메트릭스를 확인할 수 있습니다. >

HDFS NameNode web interface:  http://localhost:8042

< http://localhost:8042,   한번 열어서 보라고 하셨습니다. 웹 브라우저에서 클러스터 메트릭스를 확인할 수 있습니다. >

.\sbin\start-yarn.cmd

.\sbin\stop-yarn.cmd

.\hadoop dfsadmin -safemode leave



4. 데이터 입력

.\bin\hdfs dfs -put myfile.txt /   < /는 하둡 가상의 루트 경로입니다. 이 명령어를 수행하면, 리눅스 명령어처럼 파일을 복사합니다.>

< 윗줄 명령 수행 후 Browsing HDFS 를 웹브라우져에서 확인하였습니다. 경로는  localhost:50070/explorer.html#/ >

.\bin\hdfs dfs -mkdir /input

.\bin\hdfs dfs -mkdir /output

.\bin\hdfs dfs -put /myfile.txt /input

.\bin\hdfs dfs -rm myfile.txt /

.\bin\hdfs dfs -cat /input/myfile.txt

.\bin\hdfs dfs -copyFromLocal c:/myfile.txt input

.\bin\yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount input output



.\bin\hdfs dfs -cat /output/*

bin\hdfs dfs -cat output/*


그 후 노트패드++을 설치하라고 하셨습니다.

일단 실습이 진행되지 않아서 자바를 먼저 설치하였습니다. 오라클 사이트에 가서 

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jdk-8u101-oth-JPR

jdk 1.8.0_101 버전을 다운받았습니다.


개발도 HDFS를 어떻게 구축 할 것인가, 그리고 맵리듀스를 어떻게 구축 할 것인가를 고민해야 한다고 하시면서도 요즘은 다 가져다 쓴다고 하셨습니다. 실습 중 .\bin\hdfs dfs -put myfile.txt / 을 수행하다가 문제가 생겨 잠시 쉬고 다음시간에 계속 하기로 하였습니다.



====================================    2    ====================================

( 20 : 00 ~ 20 : 45 )


쉬고 오니 파일이 <localhost:50070/explorer.html#/>에서 보이지 않던 문제가 해결이 되었습니다.

쓰레기가 좀 있었다고 하셨습니다. 그 쓰래기는 주셨던 강의자료의 파일중 일부 불필요한 것이 들어가있는 것 같습니다. 


포멧 시 C:\hadoop-2.6.0\data\dfs\datanode 의 내부가 비어있어야 하는데 그게 비어있지 않으면 파일시스템에서 문제가 생긴다고 하셨습니다.  파일을 모두 삭제하였습니다. C:\hadoop-2.6.0\data\dfs\namenode도 마찬가지로 삭제를 하면 된다고 하셨습니다. 


<현재 실습이 전혀 진행되지 못하는 상황이라 답답한 상황입니다.>

.\bin\hdfs dfs -mkdir /input로 폴더를 만들어 보셨습니다. input이라는 폴더가 만들어 집니다.

.\bin\hdfs dfs -mkdir /output로 폴더를 만들어 보셨습니다. output이라는 폴더가 만들어 집니다.

하둡은 일반적으로 인풋 폴더로 넣어서 아웃풋 폴더로 결과를 뺀다고 하셨습니다. 

.\bin\hdfs dfs -put myfile.txt /input 쓰면 디렉토리 안으로 파일을 넣는 것 입니다. 웹상에서 경로를 입력하면 폴더를 확인할 수 있습니다. 

.\bin\hdfs dfs -rm /myfile.txt /으로  Root에 있는 myfile.txt파일을 지워줍니다. (앞에 / 를 넣어줘야 합니다.)

.\bin\hdfs dfs -cat /input/myfile.txt 으로 파일 내용을 확인할 수 있습니다.

.\bin\hdfs dfs -copyFromLocal c:/myfile.txt input로 로컬에 있는, 하둡에 있지 않는 파일을 복사할 수 있습니다. 

C:\hadoop-2.6.0\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.6.0.jar을 압축풀어 내용을 확인하였습니다. 


.\bin\yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar WordCount input output 명령으로 일을 시켰습니다. 예제파일 하나를 확인하기 위한 작업입니다. 확인작업에 문제가 있어 잠시 과정을 다시 PPT자료로 설명해 주셨습니다.

PPT로 설명을 좀 하시다가 시간을 아끼기 위해서 리눅스를 설치 해 보자고 하셨습니다.

리눅스 설치도 어제 진행을 해 보았던 것 같은데 겨우 따라서 우선 설치를 걸어두긴 했습니다. 방법이 정확한지는 확인 후 더 설명을 덧붙이도록 하겠습니다.

리눅스 설치를 진행하고 있습니다.


설치준비가 완료되면 위와 같이 소프트웨어 선택을 클릭합니다.



위와 같이 4개 항목과 그 위에 있는 Java 설치까지 체크를 해 주시면 됩니다. 혹시라도 따라 해 보시는 분이 있을지는 모르겠지만 하시다가 Java관련 내용의 정확한 명칭을 알려주시면 그 부분은 수정을 하고싶습니다. 저도 캡쳐를 하지 않고 수업을 따라가다보니 놓쳤네요...


이제 사용자 계정에 대한 암호를 설정 해 주어야 합니다.


저는 그냥 1~8까지를 쭉 훑어주었습니다.




그리고 VM을 사용하다 보면 VM에서의 환경과 원래 환경을 왔다갔다 해야 할 경우가 있는데 그럴 때 마다 Ctrl+Alt_Del키를 조합해 누르는 것은 번거로우므로 위의 설정을 진행해 주시기 바랍니다. 원하는 키 하나로 호스트환경으로 돌아올 수 있는 키입니다. 아래의 화면과 같이 호스트 키 조합 부분을 클릭하시고 원하는 키를 입력하시면 됩니다.

저의 경우는 강사님과 같이 윈도우키를 활용하였습니다.


설정을 모두 마치고 완료하면 계속 리눅스가 설치되는 것을 확인하실 수 있습니다.

설치를 하고 잠시 휴식에 들어갔으며, 휴식 때 강사님께 질문을 하여 문제를 해결하고 실습을 따라갈 수 있게 되었습니다. 

강사님께 질문을 해서 일부 파일에서 수정을 해야 할 부분을 수정받고 작업을 계속하였습니다. 

밀린 실습도 다 해볼 수 있었습니다.


hadoop-env.cmd를 수정을 해야 합니다. 위의 2번 줄의 set JAVA_HOME를 추가해줍니다. 그리고 그 아래 줄 D로 되어있던 부분을 C로 수정해 줍니다. 


Localhost:50070 을 확인해보았습니다.

그리고 실습확인 화면입니다. 아직은 크게 확인할 것이 없어보입니다.


localhost:8088을 확인 해 보았습니다. 

localhost:8042을 확인 해 보았습니다.



그리고 command.txt 의 내용을 따라서 다시 실습을 진행하였습니다.


Localhost:50070 을 확인해보았습니다. 다시 가 보니 생성한 폴더들이 있는 것을 확인할 수 있습니다.

실습을 따라 하시면 .\sbin\start-dfs.cmd시 1번의 창이 2개 그리고  .\sbin\start-yarn.cmd를 수행 시 2번의 창이 2개 총 4개의 창이 열리게 됩니다.




====================================    3    ====================================

( 21 : 07 ~ 21 :  )

 HDFS에 대한 PPT 이론수업을 시작하셨습니다.

블록단위로 사용하기 때문에 블록을 잘 크기설정하여 잘라야한다고 하셨습니다. 하둡 아파치 튜토리얼 문서도 있다고 알려주셨습니다. 리듀싱은 한칸띄어서 단어를 구분! 키(Key)와 값(Value)을 갖고 만드는 것이 가장 단순한 Data라고 하셨습니다. 매핑을 때린다? 라고 하셨는데 매핑은 더이상 단순화 할 수 없는 것이라고 하셨습니다. 3단계 매핑, 리듀싱, 종합하기의 3단계만 하면 된다고 하셨습니다. 프로그램도 저3개의 작업을 하도록 클래스를 작성하면 된다고 하셨습니다.
 
 프로그램의 구조는 그래서 Mapper, Reducer, Main 처리 와 같습니다.


이론 수업을 간단히 하고 리눅스설치를 확인하였습니다. 설치가 모두 다 되어 재부팅을 하였습니다. 

설치 완료 후 몇가지 설정을 진행하였습니다. 

 

내일은 간단히 DB에 쓰고 가져오는 것을 해 볼 것이라고 하셨습니다. 

 VM 에서 클립보드를 양방향으로 공유할 수 있도록 설정을 하였습니다.

호트트와 게스트간에 복사/붙여넣기를 원활하게 할 수 있도록 해주는 기능설정입니다.



웹 브라우저를 켜서 게스트 리눅스에서도 실습을 확인하기 위해 파이어폭스를 켰지만 아무것도 확인할 수 없을때는 아래와 같이 네트워크 설정을 해 줍니다. 먼저 오른쪽 상단에 표시한 아래 화살표를 클릭합니다.

그리고 설정 버튼의 공구모양 아이콘을 클릭해줍니다.

유선 부분이 끔으로 되어있는데 그 부분을 켬으로 고쳐줍니다.


그러면 아래와 같이 인터넷을 사용할 수 있게됩니다.


hadoop_install.txt 를 갖고 실습을 할 예정입니다. VM의 리눅스 설정을 진행하였습니다. 네트워크가 꺼져있어서 네트워크 설정을 하여 인터넷을 사용할 수 있도록 하였습니다.

그리고 마지막으로 자바 버전을 확인하였습니다.






+ Recent posts