您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Java的Hadoop FileInputFormat切片機(jī)制怎么理解”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java的Hadoop FileInputFormat切片機(jī)制怎么理解”吧!
MapTask的并行度決定Map階段的任務(wù)處理并發(fā)度,進(jìn)而影響到整個(gè)Job的處理速度。
思考:1G的數(shù)據(jù),啟動(dòng)8個(gè)MapTask,可以提高集群的并發(fā)處理能力。那么1K的數(shù)據(jù),也啟動(dòng)8個(gè)MapTask,會(huì)提高集群性能嗎?MapTask并行任務(wù)是否越多越好呢?哪些因素影響了MapTask并行度?
切片與MapTask并行度決定機(jī)制
數(shù)據(jù)塊:Block是HDFS物理上把數(shù)據(jù)分成一塊一塊,默認(rèn)大小是128M。
數(shù)據(jù)切片:數(shù)據(jù)切片只是在邏輯上對(duì)輸入數(shù)據(jù)進(jìn)行分片,并不會(huì)在磁盤上將其切分成片進(jìn)行存儲(chǔ)。
Job提交流程源碼和切片源碼詳解
waitForCompletion() ## 這是調(diào)用的方法
submit();
// 1建立連接
connect();
// 1)創(chuàng)建提交Job的代理
new Cluster(getConfiguration());
// (1)判斷是本地yarn還是遠(yuǎn)程
initialize(jobTrackAddr, conf);
// 2 提交job
submitter.submitJobInternal(Job.this, cluster)
// 1)創(chuàng)建給集群提交數(shù)據(jù)的Stag路徑
Path jobStagingArea = JobSubmissionFiles.getStagingDir(cluster, conf);
// 2)獲取jobid ,并創(chuàng)建Job路徑
JobID jobId = submitClient.getNewJobID();
// 3)拷貝jar包到集群
copyAndConfigureFiles(job, submitJobDir);
rUploader.uploadFiles(job, jobSubmitDir);
// 4)計(jì)算切片,生成切片規(guī)劃文件
writeSplits(job, submitJobDir);
maps = writeNewSplits(job, jobSubmitDir);
input.getSplits(job);
// 5)向Stag路徑寫XML配置文件
writeConf(conf, submitJobFile);
conf.writeXml(out);
// 6)提交Job,返回提交狀態(tài)
status = submitClient.submitJob(jobId, submitJobDir.toString(), job.getCredentials());
FileInputFormat切片源碼解析(input.getSplits(job))
到此,相信大家對(duì)“Java的Hadoop FileInputFormat切片機(jī)制怎么理解”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。