소개
정보가 순수한 지식의 흐름처럼 흐르는 기발한 땅, 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 의 강력한 기능을 활용할 수 있도록 할 뿐만 아니라 데이터 영역을 더 깊이 탐구하고 숙달하기 위한 기반을 마련합니다.
이 랩은 기술적 개념과 기발한 이야기를 결합하여 매력적이고 유익한 학습 경험을 만들도록 도전했습니다. 가상의 세계와 공감할 수 있는 캐릭터를 디자인함으로써 특히 초보자를 위해 학습 과정을 더욱 즐겁고 접근하기 쉽게 만들고자 했습니다. 또한 원활한 학습 여정을 위해 명확한 지침, 예제 코드 조각 및 자세한 설명을 제공하는 데 중점을 두었습니다.



