빅데이터/하둡 2

하둡 2.0 튜토리얼 - (6) 얀 명령어

Johnny Yoon 2019. 7. 22. 19:25
728x90
반응형

 

 

 

 

Yarn

얀은 하둡 2.0에서 새로 도입된 시스템으로 Yet Another Resource Manager의 약자입니다. 하둡 1.0에서 클러스터의 마스터노드가 모든 기기들의 리소스 관리를 했지만, 이것이 부족하다고 판단되어 개발된 시스템입니다. 또한 하둡 1.0에서의 마스터노드에 장애가 나면 모든 HDFS의 워커노드 및 데이터노드를 사용할 수 없게 되기 때문에 취약점이 발생합니다. 마스터노드의 장애로 인해 모든 시스템이 쓸모 없어져버리는 것을 SPOF (Single Point of Failiure)라고 합니다.

 

리소스매니저

얀은 리소스매니저라는 시스템을 내부적으로 사용합니다. 리소스매니저는, 또 컨테이너라는 개념을 활용하는데 이 컨테이너는 리소스의 집합체 입니다. 시스템 입장에서의 리소스란 당연히 CPU, 메모리, 디스크용량과 같은것들이 되겠죠. 얀은 이 리소스 매니저를 통해 컨테이너를 할당하고 회수함으로 자동으로 리소스 관리를 해주는 것입니다.

 

타 애플리케이션 구동

얀의 또다른 장점은, 하둡의 HDFS위에서 다른 애플리케이션이 돌아갈 수 있게 만들어 주는 것입니다. 하둡 1.0에서는 맵리듀스 기반의 프로그램만 HDFS를 사용할 수 있었다면, 이제는 Spark와 같은 맵리듀스 기반이 아닌 시스템들도 얀에 의해 리소스 관리가 가능해지고, HDFS에 접근할 수 있게 됩니다.

 

Yarn 운영

Yarn은 Hadoop과 같이 커맨드라인에서 사용할 수 있는 명령어들을 제공합니다.

이 명령어들 중 주요 명령어들을 알아보겠습니다.

 

jar

지난번 포스팅에서 다음 명령어를 보셨을 것입니다.

> yarn jar hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount conf output

얀은 jar 명령을 통해 jvm기반의 어플리케이션을 실행할 수 있습니다. 위는 워드카운트 맵리듀스 프로그램을 얀에서 실행한 것이 됩니다.

 

application

application명령어는 얀 위에서 실행되거나 이미 실행된 프로그램의 상태를 확인할 수 있는 명령어입니다.

doop01:8088포트로 접속해 작업 히스토리를 볼 수 있는 화면이 있었습니다.

> yarn application -status application_1563597013182_0005

 

위 화면에 있는 ID를 통해 application명령어를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

19/07/21 21:09:09 INFO client.RMProxy: Connecting to ResourceManager at doop01/10.40.1.178:8032
Application Report : 
	Application-Id : application_1563597013182_0005
	Application-Name : word count
	Application-Type : MAPREDUCE
	User : doop
	Queue : default
	Start-Time : 1563601811277
	Finish-Time : 1563601829935
	Progress : 100%
	State : FINISHED
	Final-State : SUCCEEDED
	Tracking-URL : http://doop01:19888/jobhistory/job/job_1563597013182_0005
	RPC Port : 41508
	AM Host : doop01
	Aggregate Resource Allocation : 62139 MB-seconds, 34 vcore-seconds
	Diagnostics : 

 

node

node 명령어는 얀이 관리하고있는 기기들 즉 데이터노드를 관리할 수 있습니다.

다음 명령어를 통해 얀이 관리중인 노드들의 리스트를 볼 수 있습니다.

> yarn node -list

 

위 명령어의 실행결과는 다음과 같습니다. 우리가 설정해 주었던 doop01~04까지의 데이터 노드들입니다.

19/07/21 21:10:14 INFO client.RMProxy: Connecting to ResourceManager at doop01/10.40.1.178:8032
Total Nodes:4
         Node-Id	     Node-State	Node-Http-Address	Number-of-Running-Containers
    doop01:36607	        RUNNING	      doop01:8042	                           0
    doop02:38634	        RUNNING	      doop02:8042	                           0
    doop04:40442	        RUNNING	      doop04:8042	                           0
    doop03:39625	        RUNNING	      doop03:8042	                           0

 

logs

이 명령어는 애플리케이션들의 실행 로그를 덤프할 수 있습니다.

아래 명령어를 사용하면 위에서 상태를 확인한 맵리듀스의 로그를 보시려면 다음 명령어를 사용하시면 됩니다.

(하지만 애플리케이션에 따라 별도 로그가 없을 수도 있습니다.)

> yarn logs -applicationId application_1563597013182_0005

 

참고자료

이 포스팅은 "시작하세요! 하둡 프로그래밍" 책의 예제를 무작정 따라해본 포스팅입니다.

https://wikibook.co.kr/beginning-hadoop-programming-2rev/

728x90
반응형