Hadoop Yarn 과 함께하는 Datopia

HadoopBeginner
지금 연습하기

소개

정보가 순수한 지식의 흐름처럼 흐르는 기발한 땅, Datopia 에는 Datina 라는 호기심 많은 존재가 살았습니다. Datina 의 유일한 목적은 데이터 영역의 복잡한 작동 방식을 이해하고 그 잠재력을 활용하는 것이었습니다. 어느 날, Datina 는 방대한 양의 데이터를 처리할 수 있는 강력한 도구인 Hadoop 이라는 신비로운 힘을 발견했습니다. 그러나 그 능력을 최대한 발휘하기 위해서는 Datina 는 Yarn 명령을 실행하고 jar 파일을 조작하는 기술을 습득해야 했습니다.

이 랩의 목표는 Datina 가 Hadoop 생태계 내에서 Yarn 명령과 jar 파일을 활용하는 과정을 안내하는 것입니다. 이 랩을 완료함으로써 Datina 는 애플리케이션을 효율적으로 관리하고 실행하는 데 필요한 기술을 습득하여 Datopia 땅에서 Hadoop 의 진정한 잠재력을 발휘할 수 있게 될 것입니다.

Hadoop 환경 탐색

이 단계에서는 Hadoop 환경에 익숙해지고 모든 필수 구성 요소가 올바르게 구성되었는지 확인합니다.

먼저, hadoop 사용자로 전환하려면:

su - hadoop

그런 다음, Hadoop 버전을 확인합니다:

hadoop version

다음과 유사한 출력을 볼 수 있습니다:

Hadoop 3.3.6
...

사용 가능한 Jar 파일 목록 확인

이 단계에서는 Hadoop 환경에서 사용 가능한 jar 파일 목록을 확인하는 방법을 배웁니다. 이러한 jar 파일에는 Yarn 명령을 사용하여 실행할 수 있는 사전 구축된 애플리케이션 및 유틸리티가 포함되어 있습니다.

ls $HADOOP_HOME/share/hadoop/mapreduce/*.jar

출력은 $HADOOP_HOME/share/hadoop/mapreduce 디렉토리에 있는 jar 파일 목록을 표시합니다. 이러한 jar 파일은 Yarn 명령과 함께 사용하여 다양한 애플리케이션 및 유틸리티를 실행할 수 있습니다.

/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-app-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-common-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.3.6.jar
...

Yarn 을 사용하여 Jar 파일 실행

이 단계에서는 yarn jar 명령을 사용하여 jar 파일을 실행하는 방법을 배웁니다. 예시로 hadoop-mapreduce-examples jar 파일을 사용합니다.

이제 hadoop-mapreduce-examples jar 에서 WordCount 예제를 실행합니다.

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /home/hadoop/input /home/hadoop/output

: hadoop fs -cat /home/hadoop/input/*를 사용하여 파일의 내용을 읽을 수 있습니다.

입력 파일의 내용:

hello world
hello labex
hello Hadoop
hello Java

위 명령에서 jar 파일 hadoop-mapreduce-examples-3.3.6.jar, 실행할 애플리케이션 wordcount, 그리고 입력 및 출력 경로 /home/hadoop/input/home/hadoop/output을 각각 지정합니다.

명령을 실행한 후 다음과 유사한 출력을 볼 수 있습니다.

hadoop:~/ $ hadoop fs -cat /home/hadoop/output/*                     [19:54:17]
Hadoop 1
Java 1
hello 4
labex 1
world 1

Yarn 애플리케이션 모니터링

이 단계에서는 다양한 명령을 사용하여 Yarn 애플리케이션을 모니터링하고 관리하는 방법을 배웁니다.

실행 중인 Yarn 애플리케이션 목록:

yarn application -list

터미널의 예시 출력:

UBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED] and tags: []):1
                Application-Id     Application-Name     Application-Type       User      Queue              State        Final-State        Progress                        Tracking-URL
application_1711070937750_0001           word count            MAPREDUCE     hadoop    default           FINISHED          SUCCEEDED            100% http://iZj6cdxwclh8pms0k1vyyhZ:19888/jobhistory/job/job_1711070937750_0001

애플리케이션 상태 가져오기

yarn application -status <application_id>

터미널의 예시 출력:

hadoop:~/ $ yarn application -status application_1711070937750_0001   [9:31:46]
2024-03-22 09:33:12,186 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
2024-03-22 09:33:12,521 INFO conf.Configuration: resource-types.xml not found
2024-03-22 09:33:12,522 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
Application Report :
 Application-Id : application_1711070937750_0001
 Application-Name : word count
 Application-Type : MAPREDUCE
 User : hadoop
 Queue : default
 Application Priority : 0
 Start-Time : 1711071042168
 Finish-Time : 1711071057334

실행 중인 애플리케이션 종료

yarn application -kill <application_id>

터미널의 예시 출력:

hadoop:~/ $ yarn application -kill application_1711070937750_0001     [9:33:14]
2024-03-22 09:34:45,075 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Application application_1711070937750_0001 has already finished

: yarn application -list -appStates ALL을 사용하여 모든 애플리케이션을 나열할 수 있습니다.

yarn application 명령을 사용하면 Yarn 애플리케이션을 나열, 모니터링 및 관리할 수 있습니다. 해당 하위 명령을 사용하여 애플리케이션 상태를 검색하고 실행 중인 애플리케이션을 종료할 수도 있습니다.

요약

이 랩에서는 호기심 많은 존재인 Datina 가 Hadoop 의 Yarn 명령과 jar 파일의 진정한 잠재력을 탐구하는 Datopia 의 세계로 여정을 시작했습니다. 이 랩을 완료함으로써 Datina 는 사용 가능한 jar 파일 나열, yarn jar 명령을 사용한 애플리케이션 실행, Yarn 애플리케이션 모니터링 및 관리에 대한 귀중한 기술을 습득했습니다.

실습을 통해 Datina 는 Hadoop 환경을 탐색하고, WordCount 와 같은 사전 구축된 애플리케이션을 실행하고, 다양한 Yarn 명령을 사용하여 실행 중인 애플리케이션을 모니터링하는 방법을 배웠습니다. 이러한 기술은 Datina 가 Hadoop 의 강력한 기능을 활용할 수 있도록 할 뿐만 아니라 데이터 영역을 더 깊이 탐구하고 숙달하기 위한 기반을 마련합니다.

이 랩은 기술적 개념과 기발한 이야기를 결합하여 매력적이고 유익한 학습 경험을 만들도록 도전했습니다. 가상의 세계와 공감할 수 있는 캐릭터를 디자인함으로써 특히 초보자를 위해 학습 과정을 더욱 즐겁고 접근하기 쉽게 만들고자 했습니다. 또한 원활한 학습 여정을 위해 명확한 지침, 예제 코드 조각 및 자세한 설명을 제공하는 데 중점을 두었습니다.