[hadoop] 구성

2sky·2024년 4월 4일
post-thumbnail

Hadoop 환경 구현

Hadoop 기초 - m2 맥에 설치부터 해볼까

시작

이 분의 블로그를 많이 보면서 활용했다! 아무래도 맥북이다 보니 제한사항이 많다보니

brew install hadoop

으로 하둡을 설치해준다.

brew info hadoop
==> hadoop: stable 3.4.0 (bottled)
Framework for distributed processing of large data sets
https://hadoop.apache.org/
Conflicts with:
  corepack (because both install `yarn` binaries)
  yarn (because both install `yarn` binaries)
/opt/homebrew/Cellar/hadoop/3.4.0 (20,205 files, 1.3GB) *
  Poured from bottle using the formulae.brew.sh API on 2024-03-22 at 17:30:26
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/h/hadoop.rb
License: Apache-2.0
==> Dependencies
Required: openjdk@11 ✔
==> Analytics
install: 1,386 (30 days), 2,986 (90 days), 10,869 (365 days)
install-on-request: 1,260 (30 days), 2,601 (90 days), 9,268 (365 days)
build-error: 0 (30 days)

이런식으로 설치가 된걸 확인할 수 있다.

cd /opt/homebrew/Cellar/hadoop/3.4.0/libexec/etc/hadoop ##디렉토리 이동후
nano hadoop-env.sh ## 후 

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home 
## 자바 버전에 맞게 작성해줍니다!

맥에 적응을 못 하여 자바 설치하고 경로 잡아주는 부분이 가장 애를 먹었다.

총 4가지 파일에 내용을 붙여준다.

  1. core-site.xml
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>
  • 이 xml은 hadoop의 핵심 구성을 정의
  • HDFS에 접근할 때 사용되는 기본 파일 시스템 주소를 localhost의 9000번 포트로 지정
    • 태그 내에는 속성의 이름이 지정됨.
      여기서는 파일 시스템의 기본 위치를 저장하는 fs.defaultFS 속성을 설정
    • 태그 내에는 해당 속성의 값이 지정됨. 여기서는 네임노드 주소가 localhost:9000으로 지정
  1. mapres-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/h$
    >
  </property>
  • 이 xml은 맵리듀스 프레임워크 구성을 정의
  • 맵리듀스 프레임워크를 YARN위에서 실행하도록 지정, 맵리듀스 애플리케이션의 클래스 경로를 설정하여 필요한 라이브러리를 사용하도록 지정
    • : 여기서는 맵리듀스 프레임워크의 이름을 지정하는 mapreduce.framework.name 속성을 설정하여 맵리듀스 작업을 실행하기 위해 YARN을 사용할 것임을 나타냄
    • : 여기선 맵리듀스 애플리케이션의 클래스 경로를 지정, $HADOOP_MAPRED_HOME은 맵리듀스 라이브러리가 설치된 경로를 나타내며, 이를 통해 맵리듀스 작업을 실행하는 데 필요한 라이브러리를 참조할 수 있음.
  1. hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>
  • 이 xml은 hdfs의 구성을 정의
  • hdfs에서 데이터를 저장할 때 각 데이터 블록을 한 번만 복제하도록 지정
    • : 데이터 블록의 복제 수를 지정하는 dfs.replication 속성을 설정하여 파일을 저장할 때 hdfs에서 각 데이터 블록을 복제하는 수를 결정
    • : 1로 하여 복제가 한번만 이뤄짐
  1. yarn-site.xml
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  • 이 xml은 yarn 노드 매니저에서 사용할 보조 서비스를 지정
  • yarn 노드 매니저에서 mapreduce shuffle 를 활성화하도록 지저
    • : 보조 서비스로서 실행할 서비스의 목록을 지정
    • : mapreduce shuffle 이 서비스를 실행할 것임을 나타냄

실행

ssh localhost. # 로컬호스트로 접속

cd /opt/homebrew/Cellar/hadoop/3.4.0/libexec #폴더 이동 후

sbin/start-dfs.sh
sbin/start-yarn.sh #로 시작할 수 있다

#종료하는건 반대로
sbin/stop-dfs.sh
sbin/stop-yarn.sh 

시작하고

localhost:8088

localhost:9870 에 들어가면 각각 화면을 볼 수 있다.

이 표를 해석해보자면

  1. Configured Capacity: 클러스터에 구성된 총 용량. 여기서는 228.27 기가바이트
  2. Configured Remote Capacity: 원격 클러스터에 구성된 용량. 여기서는 0 바이트
  3. DFS Used: Hadoop 분산 파일 시스템에서 사용된 용량. 현재 4 킬로바이트 또는 0%가 사용
  4. Non DFS Used: HDFS 외부에서 사용된 용량. 여기서는 38.96 기가바이트
  5. DFS Remaining: HDFS에서 사용 가능한 잔여 용량. 현재 189.32 기가바이트 또는 전체 용량의 약 82.93%가 남아 있음
  6. Block Pool Used: 블록 풀에서 사용된 용량. 여기서는 4 킬로바이트 또는 0%가 사용
  7. DataNodes usages% (Min/Median/Max/stdDev): 데이터 노드의 사용률. 여기서는 최소, 중간, 최대 및 표준 편차가 모두 0%
  8. Live Nodes: 현재 활성 상태인 데이터 노드의 수. 여기서는 1개. (Decommissioned: 0, In Maintenance: 0)
  9. Dead Nodes: 현재 다운된 데이터 노드의 수. 여기서는 0개. (Decommissioned: 0, In Maintenance: 0)
  10. Decommissioning Nodes: 현재 비활성화된 데이터 노드의 수. 여기서는 0개.
  11. Entering Maintenance Nodes: 현재 유지 관리 모드로 전환 중인 데이터 노드의 수. 여기서는 0개.
  12. Total Datanode Volume Failures: 데이터 노드 볼륨 실패의 총 수. 여기서는 0개. (0 바이트)
  13. Number of Under-Replicated Blocks: 복제되지 않은 블록의 수. 여기서는 0개.
  14. Number of Blocks Pending Deletion (including replicas): 삭제 대기 중인 블록 수. 여기서는 0개

일단 기본적인 하둡 구성만 해보았고 다음엔 간단한 데이터를 직접 넣어보려고 한다

profile
하늘하늘한 하늘

0개의 댓글