맥북 M1 에서 하둡(hadoop) 설치하기
0. ssh 설치 여부 및 권한 확인
ssh localhost
- 터미널에서 ssh 설치 여부를 확인한다.
Connection refuesed - "ssh: connect to host localhost port 22: Connection refused"
"ssh: connect to host localhost port 22: Connection refused"
- 이런 오류가 발생한다면, 원격 로그인을 허용하지 않은 것이므로 환경 설정에서 허용해준다.
- 환경설정 > 공유(sharing) > 원격 로그인(remote login) 에서 허용하면 된다.
1. 하둡 설치
brew install hadoop
2. 환경변수 설정
brew info hadoop #하둡의 버전과 설치 경로를 확인
cd /opt/homebrew/Cellar/hadoop/3.3.6 #위의 명령어로 확인한 경로로 이동
cd libexec/etc/hadoop
수정해야 할 파일 - 1. hadoop-env.sh
open hadoop-env.sh
파일을 열고 아래 명령어로 자바 경로를 추가해준다.
/usr/libexec/java_home #자바 경로 확인
/usr/libexec/java_home -v8 #버전이 여러개라면 버전 특정하기
export JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home"
Single Node 지만 다음 3가지 모드가 지원된다. Pseudo-Distributed Mode를 위해 추가적으로 환경변수를 수정해야한다.
(1) Local (Standalone) Mode (2) Pseudo-Distributed Mode (3) Fully-Distributed Mode
Pseudo-Distributed Mode는 각 하둡 daemon이 각각의 분리된 Java 프로세스에서 실행되는 모드로, standalone 모드와 다르게 가상으로 분산 시스템을 경험할 수 있다고 한다.
수정해야 할 파일 - 2. core-site.xml
open core-site.xml
위의 명령어로 파일을 열고, 아래 내용들을 태그에 넣어준다.
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
수정해야 할 파일 - 3. hdfs-site.xml
open hdfs-site.xml
위의 명령어로 파일을 열고, 아래 내용들을 태그에 넣어준다.
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
이 단계까지 마치면, 로컬에서 맵리듀스를 실행해 볼 수 있지만 YARN으로 맵리듀스 및 리로스 매니저와 노드 매니저 daemon을 실행해보기 위해서 추가적으로 환경변수를 수정해 주면 된다.
수정해야 할 파일 - 4. mapred-site.xml
open mapred-site.xml
위의 명령어로 파일을 열고, 아래 내용들을 태그에 넣어준다.
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
수정해야 할 파일 - 5. yarn-site.xml
open yarn-site.xml
위의 명령어로 파일을 열고, 아래 내용들을 태그에 넣어준다.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
3. 하둡 실행
아래 명령어를 입력했을 때 마지막 접속 시간이 뜨지 않으면 ssh 설치 여부 및 권환 확인을 해보아야 핞다.
ssh localhost
이제 HDFS로 포맷한다.
cd /opt/homebrew/Cellar/hadoop/3.3.6 ##하둡 경로 들어가기
hdfs namenode -format ##파일시스템 포맷
본격적으로 하둡을 실행시키기 위해서 아래의 명령어들을 사용한다.
cd /opt/homebrew/Cellar/hadoop/3.3.6/libexec
sbin/start-all.sh
sbin/start-dfs.sh #로컬에서 맵리듀스 실행하는 방법
sbin/start-yarn.sh #yarn에서 맵리듀스 실행하는 방법
또한 맵리듀스 실행을 위해 HDFS 디렉토리가 필요하므로 만든다.
#경로는 하둡 최상위 경로에서 실행
#cd /opt/homebrew/Cellar/hadoop/3.3.6
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/<username>
실행을 확인해보는 코드는 아래와 같다.
jps
jps를 터미널에 입력하면 하둡이 정상 설치 및 실행되고 있음을 확인할 수 있다.
localhost로 접속해서 확인해볼 수도 있다.
Cluster status : http://localhost:8088
HDFS status : http://localhost:9870
Secondary NameNode status : http://localhost:9868
실행 종료를 위해서는 아래 코드를 입력해주면 된다.
#만약 경로가 하둡 최상단 경로가 아니라면 다시 들어가준다.
#해당 경로에서 ./start-all.sh 로 실행 해 줬기 때문에 ./stop-all.sh만 실행해주면 된다.
#아래 코드 중에 해당하는 코드로 실행한다.
sbin/stop-all.sh
sbin/stop-dfs.sh
sbin/stop-yarn.sh
참고한 사이트:
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Execution
Apache Hadoop 3.3.6 – Hadoop: Setting up a Single Node Cluster.
<!--- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or a
hadoop.apache.org
https://key4920.github.io/docs/bigdata_platform/Hadoop/hadoop_install_M1/
[M1] Mac OS에 하둡(Hadoop) 설치
맥북 Mac OS에 Hadoop을 설치해보자!
key4920.github.io