맵리 듀스의 하둡 빅 데이터 기술 (3) - 맵리 듀스 프레임 워크 원리 a의 개념

제 3 장 맵리 듀스 프레임 워크 원칙

3.1 InputFormat 데이터 입력

그림 삽입 설명 여기

MapTask 섹션 3.1.1 및 병렬 의사 결정 메커니즘
  • 문제는 인도
    병렬 처리함으로써 작업의 전체의 처리 속도에 영향을 미치는지도 MapTask 태스크 처리 동시성의 위상을 결정했다.
    생각 : 데이터 1G는, 동시 처리 클러스터의 능력을 향상시킬 수, 8 MapTask를 시작합니다. 또한 팔 MapTask 시작 데이터의 1K 그래서, 그것은 클러스터 성능을 향상시킬 것인가? 이를인지 가능한 MapTask 병렬 작업? 어떤 요인이 병렬 MapTask의 정도에 영향을?
  • MapTask 병렬 메커니즘 결정
    블록 : 블록은 실제 하나에 HDFS 데이터입니다.
    데이터 조각 : 입력 데이터 조각은 논리적으로 디스크에 저장되는 조각으로 절단 파편 아닌 될.
  • MapTask 병렬 의사 결정 메커니즘을
    그림 삽입 설명 여기
3.1.2 작업 제출 과정의 소스 코드와 소스 코드는 슬라이스 상세
  • 작업 제출 절차 자세한 소스
    그림 삽입 설명 여기
waitForCompletion()

submit();

// 1建立连接
	connect();	
		// 1)创建提交Job的代理
		new Cluster(getConfiguration());
			// (1)判断是本地yarn还是远程
			initialize(jobTrackAddr, conf); 

// 2 提交job
submitter.submitJobInternal(Job.this, cluster)
	// 1)创建给集群提交数据的Stag路径
	Path jobStagingArea = JobSubmissionFiles.getStagingDir(cluster, conf);

	// 2)获取jobid ,并创建Job路径
	JobID jobId = submitClient.getNewJobID();

	// 3)拷贝jar包到集群
copyAndConfigureFiles(job, submitJobDir);	
	rUploader.uploadFiles(job, jobSubmitDir);

// 4)计算切片,生成切片规划文件
writeSplits(job, submitJobDir);
		maps = writeNewSplits(job, jobSubmitDir);
		input.getSplits(job);

// 5)向Stag路径写XML配置文件
writeConf(conf, submitJobFile);
	conf.writeXml(out);

// 6)提交Job,返回提交状态
status = submitClient.submitJob(jobId, submitJobDir.toString(), job.getCredentials());
  • FileInputFormat 슬라이스 소스 분석 (input.getSplits (일))
    그림 삽입 설명 여기
3.1.3 FileInputFormat 슬라이싱기구

그림 삽입 설명 여기
그림 삽입 설명 여기

3.1.4 CombineTextInputFormat 슬라이싱기구
  • 에 상관없이 파일에 파일 작업을 계획하지 기본 프레임 TextInputFormat 슬라이스 메커니즘 조각은 얼마나 작은, 작은 많은 수의 파일이있는 경우 그래서, 그것은 효율성을 처리하는 것은 매우 낮고, MapTask을 많이 생성하는 MapTask를 제공 한 조각이 될 것입니다 .
  1. 시나리오 :
    장면 파일 CombineTextInputFormat가 너무 작은, 논리적으로 작은 파일의 복수가 MapTask에 처리 될 수 있도록 조각 작은 파일의 복수 계획 할 수 있습니다.
  2. 최대 가상 저장 부를 제공
    CombineTextInputFormat.setMaxInputSplitSize (직장, 4194304)을 // 4m
    주 : 가상 메모리는 바람직하게는 작은 파일의 실제 상황에 따라 특정 크기의 최대 설정 값을 슬라이스하도록 배치된다.
  3. 마이크로톰
    슬라이싱 처리 및 가상 저장 절차 두 부분 다음있어서 슬라이싱 프로세스를 발생시킨다.
    그림 삽입 설명 여기
    (1) 가상 저장 절차 :
  • 논리적 블록을 분할하는 최대 값 세트보다 모든 입력 디렉토리 파일 크기, 순차적 setMaxInputSplitSize 비교 값 아니더라도 더. 입력 파일이 회,이어서 최대 값으로 잘라보다 최대 이상의 세트 큰이면, 나머지 데이터 사이즈의 최대 값이 아닌 이상 2 배 이하의 최대 값을 초과 할 때, 그 파일은 두 가상 스토리지 블록 (방지로 나누어 작은 조각)가 나타납니다.
  • 예컨대 setMaxInputSplitSize가 4M, 입력 파일 크기 8.02M이며, 제 4M 논리적으로 분할된다. 4M 논리적 분할에 따른 경우의 나머지 크기가 4.02M, 0.02M 작은 가상 스토리지 파일 나타난다 4.02M로되도록 나머지 파일 (2.01M 및 2.01M) 두 파일.
    (2) 슬라이싱 공정 :
  • 파일 크기가 가상 스토리지 setMaxInputSplitSize 값보다 큰지 여부를 결정하는 단계 이상의 단일 슬라이스를 형성 같다.
  • 그 다음 가상 메모리 파일과 결합 할 수 없습니다 경우, 함께 조각을 형성한다.
  • 시험 예는 : 1.7M, 5.1M, 6.8M 340 만 및 네 개의 작은 파일이있다 파일 6 4 작은 파일 크기, 크기 가상 스토리지 블록 형성된 후에는 :
    1.7M (2.55M, 2.55 M) 및 340 만 (340 만, 340 만)이
    결국 세 개의 섹션을 형성하는, 크기는 :
    (1.7 + 2.55) M (2.55 + 3.4) M (3.4 + 3.4) M
게시 37 개 원래 기사 · 원 찬양 7 · 전망 1175

추천

출처blog.csdn.net/zy13765287861/article/details/104684219