[HADOOP] 코어 정보의 하둡 클러스터 크기 / 번호를 수집하는 방법
HADOOP코어 정보의 하둡 클러스터 크기 / 번호를 수집하는 방법
나는 (기계 당 .. 메인 메모리, 코어의 수, 크기 등), 그 크기를 알 수없는 여러 대의 컴퓨터로 구성된 클러스터 내 하둡 작업을 실행하고 있습니다. 어떤 OS 특정 라이브러리 (* 내 말은 .so를 파일)를 사용하지 않고, 자체 하둡 또는 내가 하둡 MR 작업이 실행되는 동안 같은 정보를 수집 할 수있는 몇 가지 추가 라이브러리에 대한 모든 클래스 또는 도구가 있습니다 :
나는 하드웨어 정보 또는 내가 프로그래밍 내 하둡 코드에서 이런 종류의 정보를 수집 할 이유 클러스터의 사양이 없습니다.
이걸 어떻게 달성 할 수 있습니까? 나는 때문에 다른 이유의 이러한 종류의 정보를 알고 싶습니다. 한 가지 이유는 다음과 같은 오류에 의해 주어진다 : 나는 공간이 부족하는 기계 알고 싶어요.
12/07/17 14:28:25 INFO mapred.JobClient: Task Id : attempt_201205221754_0208_m_001087_0, Status : FAILED
org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local directory for output/spill2.out
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:376)
at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:146)
at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:127)
at org.apache.hadoop.mapred.MapOutputFile.getSpillFileForWrite(MapOutputFile.java:121)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpill(MapTask.java:1247)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1155)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:582)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:649)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.
해결법
-
==============================
1.마스터 노드는 노예의 파일이 있어야 ssh를 모든 슬레이브에 대한 액세스 및 모든 노드의 목록을 가질 것이다. 그래서 노예의 노드 목록을 반복은 SCP를 사용하여 마스터에 복사에게 파일을 파일 스크립트를 작성.
마스터 노드는 노예의 파일이 있어야 ssh를 모든 슬레이브에 대한 액세스 및 모든 노드의 목록을 가질 것이다. 그래서 노예의 노드 목록을 반복은 SCP를 사용하여 마스터에 복사에게 파일을 파일 스크립트를 작성.
이 같은 스크립트를 작동합니다
호 이름 / IP ($ I)는 cpuinfo의와 meminfo를 파일에 추가 될 것이다. MR 작업이이 작업에 대한 잔인한 것입니다.
-
==============================
2.리눅스 노드에 배포 클러스터에있는 가정, 당신은 / proc 디렉토리 / cpuinfo의 및 / proc 디렉토리 / meminfo 파일 파일에서 CPU 및 메모리 정보를 추출 할 수 있습니다. 당신은 당신이 클러스터의 각 노드 터치 (또는 충분한지도 작업은 각 작업 추적기 노드가 적어도 하나의 작업을 얻을 수 있도록 생성 보장 분할 크기의 텍스트 파일을 처리 보장하는 사용자 정의 입력 형식을 작성해야 실행합니다.
리눅스 노드에 배포 클러스터에있는 가정, 당신은 / proc 디렉토리 / cpuinfo의 및 / proc 디렉토리 / meminfo 파일 파일에서 CPU 및 메모리 정보를 추출 할 수 있습니다. 당신은 당신이 클러스터의 각 노드 터치 (또는 충분한지도 작업은 각 작업 추적기 노드가 적어도 하나의 작업을 얻을 수 있도록 생성 보장 분할 크기의 텍스트 파일을 처리 보장하는 사용자 정의 입력 형식을 작성해야 실행합니다.
당신 감속기에서 출력 매퍼에서 쌍 (호스트 이름, 정보) 등의 정보를, 그리고 DEDUP 수
(호환되는 CPU가있는 경우) 그 cpuinfo의 그렇게 4 코어 하이퍼 스레드의 CPU 아마은 / proc / cpuinfo의 8 '프로세서'를 보여줍니다 아니라 코어의 수보다 하이퍼 스레드 코어의 수를보고합니다
-
==============================
3.ohai 라이브러리 (Opscode 요리사의 일부) 절경입니다; 이 출력 시스템에서 통계의 모든 종류의 JSON 덤프 것이다.
ohai 라이브러리 (Opscode 요리사의 일부) 절경입니다; 이 출력 시스템에서 통계의 모든 종류의 JSON 덤프 것이다.
mapred.max.maps.per.node - -이 플래그로 사용되는 하나의 작업이 하나 개의 노드에서 동시에 실행할 수있는 작업의 수를 제한하기를,하지만이 제거되었습니다. 우우. 당신은 그 기능을 제공하기 위해 수정 된 스케줄러를 실행해야합니다.
from https://stackoverflow.com/questions/11523480/how-to-collect-hadoop-cluster-size-number-of-cores-information by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 튜닝 하둡 매개 변수 (0) | 2019.09.19 |
---|---|
[HADOOP] 인덱스 7에서 권한에 잘못된 문자 : HDFS : // localhost를 : 9000 하둡과 (0) | 2019.09.19 |
[HADOOP] yum을 사용하여 아파치 스파크 설치 (0) | 2019.09.19 |
[HADOOP] 이클립스 - - 모두 핵심 및 수학 폴더의 코끼리 조련사 수학 라이브러리의 클래스를 포함 하둡을 (0) | 2019.09.19 |
[HADOOP] 매트릭스 포맷 변환 끓는 (0) | 2019.09.19 |