728x90

하둡을 윈도우즈에 설치하는 가장 스탠다드한 방법은 솔직히 좀 귀찮다.

리눅스 환경에 맞추어져있는 소스를 윈도우즈에도 동작할 수 있게 빌드해야하기 때문이고,

하둡에서 자체적으로 주는 바이너리에는 윈도우즈의 동작에 필수적인 프로그램이 없기에 무조건 소스를 받아서 빌드해야한다.


물론 사실 빌드를 여러번해봤던 사람이라면 그리 어렵진 않다. 귀찮고 시간이 걸릴 뿐.

그러나 귀찮은 사람들을위해서 누군가 이미 빌드해놓은 버전이 있다. 다행히도 우리는 그걸 쓰면된다.

2.6.0이 마지막 버전인데 최근버전은 2.8.1이므로 정 최근버전이 쓰고싶다면 소스를 다운받고 mingw와 maven을 설치 후 빌드하자.

하지만 최신버전이 급하지 않다면 2.6.0을 사용하도록 하자.


http://www.barik.net/archive/2015/01/19/172716/



이 사이트에 들어가면  제일 위의 확장자 tar.gz를 다운받아서 압축해제 하면된다.

요즘 왠만한 압축해제 프로그램은 tar.gz의 리눅스식 압축해제를 지원해주므로 큰 문제될건 없다.

(tar은 압축기능이 아니라 그냥 뭉쳐주는것, gz는 리눅스에서 유명한 압축방식)



설치 후에는 설정을 딱 두가지말 해주면 하둡을 실행시킬 수 있다.

물론 정말 제대로 쓰려면 설정을 덕지덕지 지정해줘야하지만 아무것도 모르고 사용하는게 더 위험하다 생각한다.

추가적인 설정은 앞으로 본인이 직접해나가면서 필요한 설정을 해주면되고,

사실 초기설정만 잡아주는것과 모든 설정을 다 잡아주는것의 차이는 작은 예제를 할때는 느낄 수 없다.

손대야할것은 크게 hadoop-env.cmd파일과 core-site.xml 두개이다.

먼저 hadoop-env.cmd를 열자



윈도우에서 cmd파일은 리눅스로 따지면 sh파일로 배치파일이라고 할 수 있다.

내용을 보기위해서 우클릭으로 편집을 눌러주자.



그리고 나서 본인의 jdk가 설치되어있는 위치를 확인하자 이 위치는 JAVA_HOME인데 JAVA_HOME이 환경변수로 지정되어 있어도

배치파일이 읽어오질 못한다. 따라서 우리기 직접 적어줘야한다.



JAVA_HOME에 위치를 지정해주는데 만약 공백이 있다면 ""로 감싸줘야한다.

필자는 set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_131"로 적었다.



그 다음 core-site를 정해준다.



열게되면 윈도우즈에서 작성한 파일이 아니여서 공백문자가 이상하게 표시되서 한줄로 보인다.

작업하기 귀찮으니까 다른 텍스트에디터나 IDE를 사용해서 열어주자.

솔직히 eclipse같은 IDE를 추천해주는데 xml로 지정하면 자동완성이 되기 때문이다.



이렇게 텍스트에디터에 한번 복사하면 강제개행이 윈도우식으로 자동변환된다.

다시 이를 복사하자.



붙혀넣으면 이제 개행이 제대로 적용된걸 확인할 수 있다.

이제 아래와 같이 추가해주자.




원래 하둡의 디폴트 파일 시스템은 hdfs가 아닌 일반 file이다. 그런데 이 상태로는 작동이 안된다.

따라서 hdfs로 지정해준다.

이제 namenode를 포맷시켜줘야한다.


hdfs namenode -format



하둡 경로의 sbin으로 가서 start-all.cmd를 실행시켜준다.

그러면 하둡을 돌리는데 필수적인 hdfs와 yarn이 모두 실행된다.

start-all.cmd가 deprecated된 상태이므로 앞으로 없어질 수도 있는데

그게 찝찝하다면 start-dfs.cmd와  start-yarn.cmd를 따로 해주면된다.



위와 같이 namenode,datanode,nodemanage,resourcemanager가 모두 열리고

이 모든게 종료되지 않은 상태로 있어야 성공한 것이다.

이제 간단히 동작하는지 테스트를 해보자.



원활이 사용하기 위해서 환경변수 Path에 bin을 등록해주자. sbin도 같이 등록해줘도 된다.

여기서는 일단 bin만 등록하겠다.



sbin디렉터리 내에는 이런 파일들이 있다.

hdfs도 일종의 파일 시스템이며 이 파일 시스템안에 아마 파일이나 하나 넣어보자.



hdfs dfs -put stop-yarn.cmd /stop-yarn.cmd

hdfs dfs -ls /

hdfs dfs -cat /stop-yarn.cmd


hdfs는 원래 하둡의 bin에 있는데 우리는 환경변수 Path로 설정했으므로 어디서든 접근할 수 있다.

리눅스에 대해서 아시거나 터미널에 대해서 안다면 예제가 무슨 역활인지 알것이다. 혹시나 모르는 사람들을 위해서 설명하겠다.


hdfs라는 파일시스템안의 파일을 건드리기위해서는 dfs명령어를 사용한다. 

그 다음은 리눅스 명령어를 -를 붙히면 일반 파일 시스템처럼 사용할 수 있다.

put이란 명령어는 파일을 복사해라는 명령어인데 실제 파일시스템(윈도우즈)에서 hdfs로의 복사가 이루어진다.

ls는 현재 해당경로의 리스트를 보여줘라는 것이며

cat의경우 해당 파일의 내용을 보여줘라는 것이다.


이로서 윈도우즈에서 하둡의 설치와 실행에 대해서 해보았다.

+ Recent posts