하둡의 실행 방식은 3가지가 있다.
-
리눅스가 설치된 서버를 준비한다. 그 다음 하둡을 다운로드 받는다. 이제 실행할 계정을 생성해야 한다. 하둡을 관리할 때는 root 계정으로 관리하는 것이 좋은 방법이 아니다. root 계정으로 관리하다 실수한다면 리눅스 시스템 전체가 다운되어 버릴 수도 있기 때문이다.
-
하둡은 서버 간에 SSH 프로토콜을 이용하여 통신한다. 따라서, SSH를 설치해야 한다.
-
하둡은 기본적으로 인코딩 방식을 UTF-8을 사용한다. 다만, 준비한 서버의 인코딩 방식이 UTF-8이 아닐 경우 문자열을 처리할 때 문제가 발생할 것이다. 한글도 당연히 깨질 것이다.
-
자바를 설치해야 한다.
-
- 그 다음 하둡 환경설정 파일을 수정한다. hadoop-env.sh 파일의 JAVA_HOME 파라미터를 실제 서버의 JDK가 설치된 경로로 수정한다. 그 다음 해당 파일에서 HADOOP_PID_DIR을 설정한다. 이것은 하둡 데몬의 PID 정보를 저장하는 디렉토리를 의미한다. 기본값은 /tmp 디렉토리로 되어 있을 것이므로 반드시 수정해야 한다.
- masters 파일에는 보조 네임 노드를 실행할 서버를 설정한다. 서버는 호스트명 또는 IP로 기재하도록 한다.
- slaves 파일을 수정한다. 여기서는 데이터 노드를 실행할 서버를 결정한다. masters 파일과 같이 서버는 호스트명 또는 IP로 기재한다.
- core-site.xml을 수정한다. fs.default.name과 hadoop.tmp.dir 속성을 추가하고 다른 property는 core-default.xml에 있는 기본값을 사용하도록 한다.
- fs.default.name : 이는 HDFS의 기본 이름을 의미하며, URI 형태로 사용된다. 데이터 노드는 여러 작업을 진행하는 데 있어 반드시 네임 노드의 주소를 알고 있어야 한다. 그래야 Heartbeats, Block report등을 보낼 때 이 값을 참조해 네임 노드에게 전송할 수 있는 것이다.
- hadoop.tmp.dir : 하둡에서 발생하는 임시 데이터를 저장하기 위한 공간이다. 기본적으로는 root 디렉토리 하위 디렉토리인 tmp 디렉토리에 데이터를 생성한다. root에 할당되어 있는 로컬 파일의 크기가 작을 수도 있기 때문에 hadoop 계정의 데이터가 들어 있는 home 디렉토리의 하위 디렉토리로 설정한다. 다만, root의 용량이 충분한 경우 기본값을 사용해도 된다.
- hdfs-site.xml을 수정한다.
- dfs.replication : HDFS에 저장될 데이터의 복제본 수를 의미한다. 이 값을 1로 설정하는 경우
가상 분산 모드
로 실행하겠다는 의미이다. 기본값은 3이다.
- dfs.http.address : 네임 노드의 웹서버 주소값이다. 기본값은 0.0.0.0:50070으로 설정되어 있다.
완전 분산 모드
로 하둡을 설치하는 경우 반드시 이 속성을 정해야 한다. 이 속성이 없을 경우 보조 네임 노드가 네임 노드에 접속하지 못하기 때문이다.
- dfs.secondary.http.address : 보조 네임 노드의 웹서버 주소값이다. 기본값은 0.0.0.0:50090으로 설정되어 있다.
- mapred-site.xml을 수정한다. 여기서는 mapred.job.tracker 속성을 추가한다. 이 속성은
Job Tracker
의 주소를 의미한다. 데이터 노드에서 이 주소로 MapReduce 작업을 요청하게 된다.
- 참고로, 가상 분산 모드를 설치하는 경우 앞서 설정한 모든 파일의 서버 정보를 localhost 혹은 127.0.0.1로 설정하면 된다.