hadoop을 Windows OS에서 사용하기 위해 설치하는 과정을 정리해 보았다
일단 hadoop은 Linux 환경에 설치하는게 편한데
필자는 로컬 PC에 Standalone으로 돌리면서 테스트를 해보기 위해 설치하였다
Ambari나 docker에 ClouderaHadoop 이미지를 이용해 설치할 수 있겠지만
설치하는 PC의 환경이 폐쇄망이기도 하고
docker에 ClouderaHadoop 이미지를 이용해 컨테이너에서 돌려봤는데
다른 모듈들이 많아 메모리 부족 문제가 발생하여 설치파일을 다운받아 옮겨 설치하였다
설치 환경은 아래와 같다
- OS : Windows 10 64bit
- Java버전 : 1.8.0_371
- hadoop버전 : 3.0.0
Java와 hadoop 버전은 최신 것을 사용해도 되지만
버전 호환성 문제와 Windows에서 돌리기 위해 필요한 파일들이 있어 위 버전을 추천한다
3.0.0 버전을 다운받은 이유는 아래에서 설명하겠다
1. Java 설치
먼저 hadoop을 설치하고 실행하기 위해서는 Java가 필수적으로 필요하니
아래 오라클 사이트에 접속하여 Java를 다운받아 설치하자
https://www.oracle.com/kr/java/technologies/downloads
Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.
www.oracle.com
Java 20, 17버전들이 있는데
사이트 아래쪽으로 내려보면 jdk-8u371 버전이 있는데
설치파일 jdk-8u371-windows-x64.exe를 다운받아 설치하였다
기본 위치에 설치하면 path까지 설정해 주는데
hadoop 내부에서 JAVA_HOME을 사용하기 때문에
필자는 특정 위치에 설치하고 환경변수에 JAVA_HOME을 추가하였다
Java 환경변수 설정하는 방법은 익히 아는 내용이니 생략하겠다
혹시나 기본 위치에 설치했다면 환경변수에 JAVA_HOME을 추가할때 경로를 아래와 같이 바꿔서 추가하자
C:\Program Files → C:\Progra~1
C:\Program Files (x86) → C:\Progra~2
hadoop 실행 시 띄어쓰기 오류로 인해 위 경로를 인식하지 못하기 때문이다
2. hadoop Binary 파일 다운로드 및 설치
- hadoop 설치파일 다운로드
이제 hadoop을 설치해 보자
아래 사이트에서 hadoop Binary 파일을 다운받자
https://hadoop.apache.org/releases.html
Apache Hadoop
Download Hadoop is released as source code tarballs with corresponding binary tarballs for convenience. The downloads are distributed via mirror sites and should be checked for tampering using GPG or SHA-512. Version Release date Source download Binary dow
hadoop.apache.org
hadoop 홈페이지에서 아래쪽으로 조금 내려가 보면 Apache release achive 메뉴가 있는데
클릭하면 이전 버전의 hadoop을 받을 수 있다

필자는 향후 spark 연계를 위해 기존에 설치했던 spark 버전에 호환이 되는
hadoop-3.0.0.tar.gz 파일을 다운받아 압축을 해제 하였다
최신버전을 사용해도 되는데 windows에서 실행 시 winutils와 관련된 오류가 발생할 것이다
hadoop 소스코드를 받아 직접 빌드하여 사용하면 되겠지만 과정이 복잡하므로
기존 버전을 사용하는 걸 추천한다

- winutils.exe hadoop.dll 파일 다운로드
Windows에서 hadoop을 실행하기 위해서 winutils.exe파일과 hadoop.dll파일이 필요한데
아래 사이트에서 다운받자
https://github.com/steveloughran/winutils
GitHub - steveloughran/winutils: Windows binaries for Hadoop versions (built from the git commit ID used for the ASF relase)
Windows binaries for Hadoop versions (built from the git commit ID used for the ASF relase) - GitHub - steveloughran/winutils: Windows binaries for Hadoop versions (built from the git commit ID use...
github.com
친절히 github에 올려주신 분들이 있는데
위 사이트는 3.0.0까지 올려주고 업데이트를 안하고 있다
github에 잘 찾아보면 3.2.2 버전까지 올려준 사람이 있는데 자신이 설치한 hadoop버전에 맞는 것을 받으면 된다
- hadoop 설치
이제 다운받은 hadoop Binary 파일의 압축을 해제하자
편한 경로에 설치하면 되는데 필자의 경로는 아래와 같다
D:\dev\hadoop3.0.0
압축 해제한 폴더 하위 경로의 bin폴더에 위에서 다운받은
winutils.exe 파일과 hadoop.dll 파일을 넣어주면 된다
3. hadoop 환경설정
- 환경변수 추가
먼저 환경변수에 HADOOP_HOME을 추가하고, path에 %HADOOP_HOME%bin 을 추가하자
필자의 HADOOP_HOME 경로는 D:\dev\hadoop3.0.0이다
- namenode, datanode 폴더 생성
PC 1대에서 StandAlone으로 동작시키기 위해
HADOOP_HOME 경로에 data 폴더를 만들고, 하위에 namenode, datanode 폴더를 생성하자
D:\dev\hadoop3.0.0\data\namenode
D:\dev\hadoop3.0.0\data\datanode
- 설정파일 수정
HADOOP_HOME 경로의 etc\hadoop 폴더에 있는 아래 설정파일들을 수정해 주자
hadoop-env.cmd core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml
hadoop-env.cmd 가장 아래에 추가
set HADOOP_PREFIX=%HADOOP_HOME%
set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop
set YARN_CONF_DIR=%HADOOP_CONF_DIR%
set PATH=%PATH%;%HADOOP_PREFIX%\bin
core-site.xml <configuration>에 <property> 추가
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://0.0.0.0:19000</value>
</property>
</configuration>
hdfs-site.xml 가장 아래에 <configuration>에 property에 추가
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///D:/dev/hadoop-3.0.0/data/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///D:/dev/hadoop-3.0.0/data/datanode</value>
</property>
</configuration>
여기서 주의할 점은 Windows에서 namenode와 datanode 폴더 경로를 지정할때 ₩ 대신 /로 입력해야 하며
각자 설치한 경로에 맞게 namenode, datanode 폴더를 지정해 주자
mapred-site.xml <configuration>에 <property> 추가
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>local</value>
</property>
</configuration>
yarn-site.xml <configuration>에 <property> 추가
<property>
<name>yarn.server.resourcemanager.address</name>
<value>0.0.0.0:8020</value>
</property>
<property>
<name>yarn.server.resourcemanager.application.expiry.interval</name>
<value>60000</value>
</property>
<property>
<name>yarn.server.nodemanager.address</name>
<value>0.0.0.0:45454</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.server.nodemanager.remote-app-log-dir</name>
<value>/app-logs</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/dep/logs/userlogs</value>
</property>
<property>
<name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>-1</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value>
</property>
설정은 끝났으니 한번 실행해보고
잘 동작하는지 확인해 보자
동작 및 실행은 다음글을 참조하자
2023.05.11 - [빅데이터] - [Hadoop] Hadoop Windows 설치(오프라인, StandAlone) 2
[Hadoop] Hadoop Windows 설치(오프라인, StandAlone) 2
앞글에 이어 hadoop 설정 이후 실행해보고 잘 동작하는지 확인해 보자 hadoop 설치 및 설정은 앞글을 참조하자 2023.05.11 - [빅데이터] - [Hadoop] Hadoop Windows 설치(오프라인, StandAlone) 1 [Hadoop] Hadoop Windows
boring-notes.tistory.com
'빅데이터' 카테고리의 다른 글
[Spark] Spark Windows 설치 오류(SparkException: Invalid Spark URL) (0) | 2023.05.12 |
---|---|
[Spark] Spark Windows 설치 (0) | 2023.05.12 |
[Hadoop] Hadoop Windows 설치(오프라인, StandAlone) 2 (0) | 2023.05.11 |