亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jobinprogress.java

?? Hadoop是一個用于運行應用程序在大型集群的廉價硬件設備上的框架。Hadoop為應用程序透明的提供了一組穩(wěn)定/可靠的接口和數據運動。在 Hadoop中實現了Google的MapReduce算法
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/** * Copyright 2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.hadoop.mapred;import org.apache.hadoop.fs.*;import org.apache.hadoop.conf.*;import org.apache.hadoop.util.LogFormatter;import java.io.*;import java.net.*;import java.util.*;import java.util.logging.*;///////////////////////////////////////////////////////// JobInProgress maintains all the info for keeping// a Job on the straight and narrow.  It keeps its JobProfile// and its latest JobStatus, plus a set of tables for // doing bookkeeping of its Tasks.///////////////////////////////////////////////////////class JobInProgress {    public static final Logger LOG = LogFormatter.getLogger("org.apache.hadoop.mapred.JobInProgress");    JobProfile profile;    JobStatus status;    File localJobFile = null;    File localJarFile = null;    TaskInProgress maps[] = new TaskInProgress[0];    TaskInProgress reduces[] = new TaskInProgress[0];    int numMapTasks = 0;    int numReduceTasks = 0;    JobTracker jobtracker = null;    TreeMap cachedHints = new TreeMap();    long startTime;    long finishTime;    String deleteUponCompletion = null;    private JobConf conf;    boolean tasksInited = false;    /**     * Create a JobInProgress with the given job file, plus a handle     * to the tracker.     */    public JobInProgress(String jobFile, JobTracker jobtracker,                          Configuration default_conf) throws IOException {        String jobid = "job_" + jobtracker.createUniqueId();        String url = "http://" + jobtracker.getJobTrackerMachine() + ":" + jobtracker.getInfoPort() + "/jobdetails.jsp?jobid=" + jobid;        this.jobtracker = jobtracker;        this.status = new JobStatus(jobid, 0.0f, 0.0f, JobStatus.PREP);        this.startTime = System.currentTimeMillis();        JobConf default_job_conf = new JobConf(default_conf);        this.localJobFile = default_job_conf.getLocalFile(JobTracker.SUBDIR,             jobid + ".xml");        this.localJarFile = default_job_conf.getLocalFile(JobTracker.SUBDIR,             jobid + ".jar");        FileSystem fs = FileSystem.get(default_conf);        fs.copyToLocalFile(new File(jobFile), localJobFile);        conf = new JobConf(localJobFile);        this.profile = new JobProfile(conf.getUser(), jobid, jobFile, url,                                      conf.getJobName());        String jarFile = conf.getJar();        if (jarFile != null) {          fs.copyToLocalFile(new File(jarFile), localJarFile);          conf.setJar(localJarFile.getCanonicalPath());        }        this.numMapTasks = conf.getNumMapTasks();        this.numReduceTasks = conf.getNumReduceTasks();        //        // If a jobFile is in the systemDir, we can delete it (and        // its JAR) upon completion        //        File systemDir = conf.getSystemDir();        if (jobFile.startsWith(systemDir.getPath())) {            this.deleteUponCompletion = jobFile;        }    }    /**     * Construct the splits, etc.  This is invoked from an async     * thread so that split-computation doesn't block anyone.     */    public void initTasks() throws IOException {        if (tasksInited) {            return;        }        //        // construct input splits        //        String jobid = profile.getJobId();        String jobFile = profile.getJobFile();        JobConf jd = new JobConf(localJobFile);        FileSystem fs = FileSystem.get(conf);        String ifClassName = jd.get("mapred.input.format.class");        InputFormat inputFormat;        if (ifClassName != null && localJarFile != null) {          try {            ClassLoader loader =              new URLClassLoader(new URL[]{ localJarFile.toURL() });            Class inputFormatClass = loader.loadClass(ifClassName);            inputFormat = (InputFormat)inputFormatClass.newInstance();          } catch (Exception e) {            throw new IOException(e.toString());          }        } else {          inputFormat = jd.getInputFormat();        }        FileSplit[] splits = inputFormat.getSplits(fs, jd, numMapTasks);        //        // sort splits by decreasing length, to reduce job's tail        //        Arrays.sort(splits, new Comparator() {            public int compare(Object a, Object b) {                long diff =                    ((FileSplit)b).getLength() - ((FileSplit)a).getLength();                return diff==0 ? 0 : (diff > 0 ? 1 : -1);            }        });        //        // adjust number of map tasks to actual number of splits        //        this.numMapTasks = splits.length;        // create a map task for each split        this.maps = new TaskInProgress[numMapTasks];        for (int i = 0; i < numMapTasks; i++) {            maps[i] = new TaskInProgress(jobFile, splits[i], jobtracker, conf, this);        }        //        // Create reduce tasks        //        this.reduces = new TaskInProgress[numReduceTasks];        for (int i = 0; i < numReduceTasks; i++) {            reduces[i] = new TaskInProgress(jobFile, maps, i, jobtracker, conf, this);        }        //        // Obtain some tasktracker-cache information for the map task splits.        //        for (int i = 0; i < maps.length; i++) {            String hints[][] = fs.getFileCacheHints(splits[i].getFile(), splits[i].getStart(), splits[i].getLength());            cachedHints.put(maps[i].getTIPId(), hints);        }        this.status = new JobStatus(status.getJobId(), 0.0f, 0.0f, JobStatus.RUNNING);        tasksInited = true;    }    /**     * This is called by TaskInProgress objects.  The JobInProgress     * prefetches and caches a lot of these hints.  If the hint is     * not available, then we pass it through to the filesystem.     */    String[][] getFileCacheHints(String tipID, File f, long start, long len) throws IOException {        String results[][] = (String[][]) cachedHints.get(tipID);        if (tipID == null) {            FileSystem fs = FileSystem.get(conf);            results = fs.getFileCacheHints(f, start, len);            cachedHints.put(tipID, results);        }        return results;    }    /////////////////////////////////////////////////////    // Accessors for the JobInProgress    /////////////////////////////////////////////////////    public JobProfile getProfile() {        return profile;    }    public JobStatus getStatus() {        return status;    }    public long getStartTime() {        return startTime;    }    public long getFinishTime() {        return finishTime;    }    public int desiredMaps() {        return numMapTasks;    }    public int finishedMaps() {        int finishedCount = 0;        for (int i = 0; i < maps.length; i++) {            if (maps[i].isComplete()) {                finishedCount++;            }        }        return finishedCount;    }    public int desiredReduces() {        return numReduceTasks;    }    public int finishedReduces() {        int finishedCount = 0;        for (int i = 0; i < reduces.length; i++) {            if (reduces[i].isComplete()) {                finishedCount++;            }        }        return finishedCount;    }    /**     * Return a treeset of completed TaskInProgress objects     */    public Vector reportTasksInProgress(boolean shouldBeMap, boolean shouldBeComplete) {        Vector results = new Vector();        TaskInProgress tips[] = null;        if (shouldBeMap) {            tips = maps;        } else {            tips = reduces;        }        for (int i = 0; i < tips.length; i++) {            if (tips[i].isComplete() == shouldBeComplete) {                results.add(tips[i]);            }        }        return results;    }    ////////////////////////////////////////////////////    // Status update methods    ////////////////////////////////////////////////////    public void updateTaskStatus(TaskInProgress tip, TaskStatus status) {        double oldProgress = tip.getProgress();   // save old progress        tip.updateStatus(status);                 // update tip        //

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲色图综合| 欧美日韩国产欧美日美国产精品| 性久久久久久久久久久久| 夜夜爽夜夜爽精品视频| 亚洲午夜av在线| 麻豆国产欧美一区二区三区| 国内一区二区视频| 成人精品视频网站| 在线免费观看视频一区| 91精品国产高清一区二区三区 | 播五月开心婷婷综合| 97久久超碰精品国产| 欧美三级乱人伦电影| 亚洲精品一区二区精华| 中文字幕亚洲一区二区va在线| 亚洲女同ⅹxx女同tv| 日韩成人免费电影| 国产成人精品亚洲日本在线桃色| 99国产精品久| 91精品国产aⅴ一区二区| 国产校园另类小说区| 亚洲精品国产精华液| 亚洲成人激情综合网| 国产经典欧美精品| 欧美在线色视频| 精品久久久久久久一区二区蜜臀| 国产精品久久久久精k8| 石原莉奈一区二区三区在线观看 | 欧美一级高清片在线观看| 久久精品水蜜桃av综合天堂| 久久精品欧美一区二区三区不卡 | 欧美日韩成人激情| 欧美日韩1区2区| 久久久久久久一区| 精品久久免费看| 亚洲摸摸操操av| 看国产成人h片视频| 91免费版在线看| 精品人在线二区三区| 亚洲精品国产高清久久伦理二区| 久久精品国产秦先生| 色综合咪咪久久| 精品电影一区二区| 亚洲一二三四区不卡| 国产成人免费视频网站高清观看视频 | 懂色av中文字幕一区二区三区| 欧美丝袜丝交足nylons图片| 国产精品视频线看| 男人的j进女人的j一区| 日本韩国一区二区三区视频| 国产人伦精品一区二区| 日韩国产欧美在线观看| 国产日本欧洲亚洲| 亚洲成av人片在线观看无码| 成人激情电影免费在线观看| 日韩午夜av一区| 亚洲成人免费影院| 91免费观看视频| 国产精品视频一二| 国产精品自拍在线| 日韩视频一区在线观看| 午夜成人免费电影| 国产精品美女一区二区三区| 欧美一区二区三区在线| 亚洲天堂av一区| 国产精品一区二区久久不卡| 日韩精品一区二区三区视频| 亚洲成人自拍一区| 日本国产一区二区| 亚洲桃色在线一区| 成人国产免费视频| 国产偷国产偷精品高清尤物| 精品一区二区在线免费观看| 欧美一区二区人人喊爽| 亚洲成人动漫在线免费观看| 91久久精品国产91性色tv| 综合色中文字幕| 9i在线看片成人免费| 亚洲国产精品成人综合色在线婷婷| 久久99国产精品久久| 欧美一级理论片| 麻豆成人在线观看| 日韩欧美123| 精品一区二区国语对白| 精品国产一区a| 精品一区二区三区免费观看| 日韩欧美一级二级三级久久久| 日韩成人免费电影| 欧美一二三区在线观看| 麻豆精品在线观看| 精品国产一区二区三区四区四 | 天堂在线亚洲视频| 成人av免费在线播放| 中文字幕av一区 二区| 国产91精品免费| 国产蜜臀av在线一区二区三区| 国产成人免费视频网站| 国产精品久久久久久久蜜臀| proumb性欧美在线观看| 欧美xxxxxxxxx| 久久精品99国产精品| 欧美精品丝袜久久久中文字幕| 亚洲国产精品一区二区www在线| www.欧美日韩| 久久久久久免费| 成人av先锋影音| 亚洲欧美视频一区| 欧美日韩不卡在线| 久久国产精品72免费观看| 久久亚洲免费视频| 成人精品在线视频观看| 中文字幕一区二区视频| 色婷婷精品久久二区二区蜜臂av| 亚洲综合视频在线观看| 欧美日韩www| 国产精品综合在线视频| 国产精品理伦片| 欧美色精品天天在线观看视频| 婷婷国产在线综合| 国产亚洲1区2区3区| 99国产精品一区| 一区二区三区在线观看视频| 欧美视频一区二区三区在线观看| 天堂午夜影视日韩欧美一区二区| 精品理论电影在线观看 | 日韩三级精品电影久久久| 韩国欧美一区二区| 亚洲欧美一区二区在线观看| 欧美精品色一区二区三区| 国产在线观看免费一区| 亚洲卡通动漫在线| 日韩精品在线网站| 99久久精品久久久久久清纯| 日韩高清不卡一区二区三区| 国产蜜臀97一区二区三区| 欧美日韩不卡一区| 国产a级毛片一区| 天天综合天天做天天综合| 国产女人18毛片水真多成人如厕 | 宅男在线国产精品| 成人精品一区二区三区四区| 水蜜桃久久夜色精品一区的特点 | 国产一区二区三区香蕉| 一区二区三区在线影院| 欧美www视频| 岛国精品一区二区| 午夜电影一区二区| 久久久久久久久久美女| 91免费视频观看| 国产真实乱偷精品视频免| 亚洲欧美一区二区三区国产精品| 欧美精选一区二区| 一区二区久久久| 欧美精品黑人性xxxx| 成人午夜在线免费| 日韩不卡在线观看日韩不卡视频| 1000精品久久久久久久久| 日韩欧美一区二区视频| 91国偷自产一区二区开放时间 | 91看片淫黄大片一级在线观看| 奇米精品一区二区三区在线观看| 亚洲欧洲制服丝袜| 精品国产免费人成在线观看| 在线观看国产91| 国产毛片精品一区| 日本aⅴ亚洲精品中文乱码| 一区二区视频免费在线观看| 国产精品伦理一区二区| 精品免费视频.| 777久久久精品| 欧美在线视频日韩| 95精品视频在线| 粉嫩一区二区三区在线看| 看片的网站亚洲| 日韩主播视频在线| 亚洲国产美国国产综合一区二区| 亚洲色图在线视频| 国产精品女主播在线观看| 久久久久久亚洲综合影院红桃| 日韩丝袜情趣美女图片| 欧美四级电影在线观看| 色综合视频在线观看| 成人免费不卡视频| 国产精品18久久久久久vr| 久久精品国产99国产| 免费精品视频在线| 午夜电影一区二区| 国产午夜亚洲精品理论片色戒| 中文字幕av不卡| 欧美国产综合色视频| 国产精品色哟哟网站| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产精品久久久久一区| 中文字幕一区二区视频| 一区二区三区在线视频播放| 亚洲成人免费av| 美女被吸乳得到大胸91| 国产剧情在线观看一区二区| 国产成人精品免费看| 91免费国产在线|