本篇內(nèi)容主要講解“Java的Hadoop FileInputFormat切片機(jī)制怎么理解”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java的Hadoop FileInputFormat切片機(jī)制怎么理解”吧!
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)賓川免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
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í)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!