안녕하세요.
M1 맥북으로 하둡 설치하는 과정에 대해 다뤄보겠습니다.
상당히 복잡하게 느껴질 수 있으나, 아래의 흐름대로 설치하신다면 정상 작동하리라 생각됩니다.
1. 자바 설치 & 경로 설정
하둡을 정상적으로 구동하기 위해서는 자바가 설치되어 있어야 합니다.
또한 아무 버전의 자바가 아닌, 현재 시점 기준에서는 Java 8 또는 11 버전을 설치해야 합니다.
만약에 본인의 자바 버전이 둘중 하나가 아닐 경우 재설치가 필요합니다. 결국에는 하둡을 설치해도 정상적으로 작동할 수 없기 때문이죠.
자세한 내용은 아파치 하둡 공식 도큐먼트를 참고하시면 되겠습니다.
또한 m1맥북의 자바 재설치 방법은 제 블로그 내에도 기재된 포스팅이 있으니 참고하시면 도움이 되리라 생각됩니다.
아래는 자바와 관련된 체크리스트 입니다.
- ~/.zshrc 내 JAVA_HOME 경로 설정 명확하게 표기
- JAVA_HOME의 PATH 명시
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin:
2. localhost 암호 해제 (ssh key 생성)
hadoop 계정에 등록되어있는 유저가 로컬 시스템에 접근할 때 암호가 걸려있으면 상당히 복잡해집니다. 따라서 암호를 해제할 필요가 있습니다.
터미널에서 ssh localhost 명령어를 입력합니다.
그러면 localhost password 를 입력하라고 나오는데요.
password 없이 로긴하기 위해서는 ssh 키를 생성해야 합니다.
키 생성 코맨드는 아래와 같습니다.
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
맨 뒤 id_rsa는 제가 임의로 생성한 이름입니다. 아이디는 다르게 생성하셔도 문제가 없습니다.
그러면 다음의 이미지와 같이 키가 생성된 것을 확인하실 수 있습니다.
이제 cd ~/.ssh 위치로 이동하여 키가 생성되었는지 확인합니다. (id_rsa.pub 이 퍼블릭 키 입니다.)
자세한 내용은 아래 이미지를 참고하시면 되겠습니다.
다음은 생성된 퍼블릭 키를 authorized 에 추가할 필요가 있습니다. 아래 코드 블럭을 터미널에서 실행하면 됩니다.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# authorized_keys에 추가되었는지 확인
vim authorized_keys
# 권한 부여
chmod 0600 ~/.ssh/authorized_keys
다음으로 ssh localhost를 입력합니다.
3. 하둡 다운로드 & 경로 설정
하둡은 아파치 공식홈페이지에서 다운받을 수 있습니다 (https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz)
위 링크에 들어가셔서 다운로드 페이지로 이동을 하게 되면, 링크 주소를 복사할 수 있는데요. 링크 주소를 복사하여 wget 커맨드를 통해 다운받겠습니다.
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
이후 적절한 하둡 디렉토리를 생성하여 (또는 현재 폴더에) tar zxcf hadoop-3.3.4.tar.gz 명령어를 입력하여 설치를 진행합니다.
tar zxcf hadoop-3.3.4.tar.gz
하둡 디렉토리로 이동하여줍니다. cd hadoop-3.3.4
이제 하둡 경로를 설정해주어야 합니다.
vim ~/.zshrc를 실행하여줍니다. 다음과 같이 HADOOP_HOME과 PATH 경로를 표기하여 줍니다.
# hadoop
export HADOOP_HOME=/Users/ben/hadoop/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin
터미널에 source ~/.zshrc 명령어를 입력하여 변경사항을 반영해줍니다.
설정된 경로는 echo $HADOOP_HOME 명령어를 통해 확인할 수 있습니다.
이제 그냥 terminal에 hadoop 을 입력하고 실행해봅시다.
hadoop에 Commands에 관한 간략한 설명이 나온다면 정상적으로 설치가 된 것입니다.
4. 하둡 구동을 위한 환경설정 파일 설정
이젠 하둡 구동을 위한 최소한의 환경설정 파일 설정이 필요합니다.
설정 방법은 다음과 같습니다.
hadoop-3.3.4/etc/hadoop 경로로 이동하여줍니다.
ls 명령어를 통해 환경설정 파일들이 존재하는지 확인해봅니다.
문제가 없다면 xml파일 설정을 하겠습니다.
아래는 그림으로 대체하겠습니다.
1) core-site.xml 설정
2) hdfs-site.xml 설정
3) 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>
4) 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>
5. 하둡 실행
하둡 실행에 앞서 hdfs namenode 포맷을 진행하겠습니다. 아래 명령어를 실행해주세요.
hdfs namenode -format
위 명령어를 실행시키면 아래와 같은 로그들이 보일 것입니다.
이 다음으로는 dfs를 실행해봅시다.
sbin/start-dfs.sh
이렇게 되면 아래와 같은 메세지를 터미널에서 볼 수 있을 것입니다.
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [Girims-MacBook-Pro.local]
2023-02-15 14:17:43,000 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
정상적으로 네임노드와 데이터노드가 실행된 것을 확인할 수 있습니다.
또한 이후에는 jps를 입력하여 실행중인 노드를 확인할 수 있습니다.
jps 명령어를 이용해서 NameNode, DataNode, SecondaryNameNode 가 정상적으로 동작하고 있음을 확인해야함 (jps를 이용하면 해당 노드들이 동작중인지 확인할 수 있음)
다음으로
hadoop fs -ls /
명령어를 입력하여 하둡내 디렉토리나 파일일 있는지 확인합니다.
최초 설치하신거라면 어떠한 디렉토리도 존재하지 않을 것입니다.
다음과 같은 명령어를 입력하여 샘플 디렉토리를 만들어보겠습니다.
hadoop fs -mkdir /user # 유저 디렉토리 생성
hadoop fs -mkdir /user/ben # 유저 디렉토리 내 본인 디렉토리 생성
이후에 리스트 명령어로 디렉토리가 생성되었음을 확인할 수 있을 겁니다.
다음으로는 하둡의 sbin 디렉토리로 이동하여 하둡을 구동시켜보겠습니다.
start-dfs.sh
start-dfs.sh # dfs 실행
jps # jps를 통해 데이터 노드, 네임 노드, 세컨더리 네임노드 실행 확인
start-yarn.sh # yarn 실행
jps # 리소스매니저, 노드매니저 실행 확인
정상적으로 작동하는 것을 확인할 수 있습니다.
localhost:9870에 접속하셔서, HDFS웹 UI를 이용할 수 있다는 점도 참고하시면 됩니다.
'빅데이터 > 하둡' 카테고리의 다른 글
[하둡] MapReduce란? (MapReduce기초1) (0) | 2023.02.16 |
---|---|
[M1 맥북] Java 설치 / 재설치 방법 / 삭제 방법 (0) | 2023.02.16 |