當前位置: 首頁>>代碼示例>>Java>>正文


Java WritableComparable類代碼示例

本文整理匯總了Java中org.apache.hadoop.io.WritableComparable的典型用法代碼示例。如果您正苦於以下問題:Java WritableComparable類的具體用法?Java WritableComparable怎麽用?Java WritableComparable使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


WritableComparable類屬於org.apache.hadoop.io包,在下文中一共展示了WritableComparable類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: configure

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
public void configure(JobConf job) {
  // 'key' == sortInput for sort-input; key == sortOutput for sort-output
  key = deduceInputFile(job);
  
  if (key == sortOutput) {
    partitioner = new HashPartitioner<WritableComparable, Writable>();
    
    // Figure the 'current' partition and no. of reduces of the 'sort'
    try {
      URI inputURI = new URI(job.get(JobContext.MAP_INPUT_FILE));
      String inputFile = inputURI.getPath();
      // part file is of the form part-r-xxxxx
      partition = Integer.valueOf(inputFile.substring(
        inputFile.lastIndexOf("part") + 7)).intValue();
      noSortReducers = job.getInt(SORT_REDUCES, -1);
    } catch (Exception e) {
      System.err.println("Caught: " + e);
      System.exit(-1);
    }
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:22,代碼來源:SortValidator.java

示例2: map

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
/** The waiting function.  The map exits once it gets a signal. Here the 
 * signal is the file existence. 
 */
public void map(WritableComparable key, Writable val, 
                OutputCollector<WritableComparable, Writable> output,
                Reporter reporter)
throws IOException {
  if (shouldWait(id)) {
    if (fs != null) {
      while (!fs.exists(getSignalFile(id))) {
        try {
          reporter.progress();
          synchronized (this) {
            this.wait(1000); // wait for 1 sec
          }
        } catch (InterruptedException ie) {
          System.out.println("Interrupted while the map was waiting for "
                             + " the signal.");
          break;
        }
      }
    } else {
      throw new IOException("Could not get the DFS!!");
    }
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:27,代碼來源:UtilsForTests.java

示例3: reduce

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
/** The waiting function.  The reduce exits once it gets a signal. Here the
 * signal is the file existence. 
 */
public void reduce(WritableComparable key, Iterator<Writable> val, 
                   OutputCollector<WritableComparable, Writable> output,
                   Reporter reporter)
throws IOException {
  if (fs != null) {
    while (!fs.exists(signal)) {
      try {
        reporter.progress();
        synchronized (this) {
          this.wait(1000); // wait for 1 sec
        }
      } catch (InterruptedException ie) {
        System.out.println("Interrupted while the map was waiting for the"
                           + " signal.");
        break;
      }
    }
  } else {
    throw new IOException("Could not get the DFS!!");
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:25,代碼來源:UtilsForTests.java

示例4: reduce

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
public void reduce(WritableComparable key, Iterator values,
                   OutputCollector output, Reporter reporter
                   ) throws IOException {
  if (first) {
    first = false;
    MapOutputFile mapOutputFile = new MROutputFiles();
    mapOutputFile.setConf(conf);
    Path input = mapOutputFile.getInputFile(0);
    FileSystem fs = FileSystem.get(conf);
    assertTrue("reduce input exists " + input, fs.exists(input));
    SequenceFile.Reader rdr = 
      new SequenceFile.Reader(fs, input, conf);
    assertEquals("is reduce input compressed " + input, 
                 compressInput, 
                 rdr.isCompressed());
    rdr.close();          
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:19,代碼來源:TestMapRed.java

示例5: map

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
/**
 * Given an output filename, write a bunch of random records to it.
 */
public void map(WritableComparable key, 
                Writable value,
                Context context) throws IOException,InterruptedException {
  int itemCount = 0;
  while (numBytesToWrite > 0) {
    int keyLength = minKeySize + 
      (keySizeRange != 0 ? random.nextInt(keySizeRange) : 0);
    randomKey.setSize(keyLength);
    randomizeBytes(randomKey.getBytes(), 0, randomKey.getLength());
    int valueLength = minValueSize +
      (valueSizeRange != 0 ? random.nextInt(valueSizeRange) : 0);
    randomValue.setSize(valueLength);
    randomizeBytes(randomValue.getBytes(), 0, randomValue.getLength());
    context.write(randomKey, randomValue);
    numBytesToWrite -= keyLength + valueLength;
    context.getCounter(Counters.BYTES_WRITTEN).increment(keyLength + valueLength);
    context.getCounter(Counters.RECORDS_WRITTEN).increment(1);
    if (++itemCount % 200 == 0) {
      context.setStatus("wrote record " + itemCount + ". " + 
                         numBytesToWrite + " bytes left.");
    }
  }
  context.setStatus("done with " + itemCount + " records.");
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:28,代碼來源:LargeSorter.java

示例6: writePartitionFile

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
private static <T extends WritableComparable<?>> Path writePartitionFile(
    String testname, Configuration conf, T[] splits) throws IOException {
  final FileSystem fs = FileSystem.getLocal(conf);
  final Path testdir = new Path(System.getProperty("test.build.data", "/tmp")
                               ).makeQualified(fs);
  Path p = new Path(testdir, testname + "/_partition.lst");
  TotalOrderPartitioner.setPartitionFile(conf, p);
  conf.setInt(MRJobConfig.NUM_REDUCES, splits.length + 1);
  SequenceFile.Writer w = null;
  try {
    w = SequenceFile.createWriter(fs, conf, p,
        splits[0].getClass(), NullWritable.class,
        SequenceFile.CompressionType.NONE);
    for (int i = 0; i < splits.length; ++i) {
      w.append(splits[i], NullWritable.get());
    }
  } finally {
    if (null != w)
      w.close();
  }
  return p;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:23,代碼來源:TestTotalOrderPartitioner.java

示例7: map

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
/** Run a FileOperation */
public void map(Text key, FileOperation value,
    OutputCollector<WritableComparable<?>, Text> out, Reporter reporter
    ) throws IOException {
  try {
    value.run(jobconf);
    ++succeedcount;
    reporter.incrCounter(Counter.SUCCEED, 1);
  } catch (IOException e) {
    ++failcount;
    reporter.incrCounter(Counter.FAIL, 1);

    String s = "FAIL: " + value + ", " + StringUtils.stringifyException(e);
    out.collect(null, new Text(s));
    LOG.info(s);
  } finally {
    reporter.setStatus(getCountString());
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:20,代碼來源:DistCh.java

示例8: getRecord

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
/**
 * It a single record from the map file for the given index
 *
 * @param index Index, between 0 and numRecords()-1
 * @return Value from the MapFile
 * @throws IOException If an error occurs during reading
 */
public V getRecord(long index) throws IOException {
    //First: determine which reader to read from...
    int readerIdx = -1;
    for (int i = 0; i < recordIndexesEachReader.size(); i++) {
        Pair<Long, Long> p = recordIndexesEachReader.get(i);
        if (index >= p.getFirst() && index <= p.getSecond()) {
            readerIdx = i;
            break;
        }
    }
    if (readerIdx == -1) {
        throw new IllegalStateException("Index not found in any reader: " + index);
    }

    WritableComparable key = indexToKey.getKeyForIndex(index);
    Writable value = ReflectionUtils.newInstance(recordClass, null);

    V v = (V) readers[readerIdx].get(key, value);
    return v;
}
 
開發者ID:deeplearning4j,項目名稱:DataVec,代碼行數:28,代碼來源:MapFileReader.java

示例9: readSortedMap

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
public <K extends WritableComparable<? super K>>
  SortedMapWritable<K> readSortedMap(SortedMapWritable<K> mw)
  throws IOException {
  if (mw == null) {
    mw = new SortedMapWritable<K>();
  }
  int length = in.readMapHeader();
  for (int i = 0; i < length; i++) {
    @SuppressWarnings("unchecked")
    K key = (K) read();
    Writable value = read();
    mw.put(key, value);
  }
  return mw;
}
 
開發者ID:aliyun-beta,項目名稱:aliyun-oss-hadoop-fs,代碼行數:16,代碼來源:TypedBytesWritableInput.java

示例10: getRecordWriter

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
public RecordWriter<WritableComparable<?>, Writable> getRecordWriter(
    final FileSystem fs, JobConf job, String name,
    final Progressable progress) throws IOException {

  final Path segmentDumpFile = new Path(
      FileOutputFormat.getOutputPath(job), name);

  // Get the old copy out of the way
  if (fs.exists(segmentDumpFile))
    fs.delete(segmentDumpFile, true);

  final PrintStream printStream = new PrintStream(
      fs.create(segmentDumpFile));
  return new RecordWriter<WritableComparable<?>, Writable>() {
    public synchronized void write(WritableComparable<?> key, Writable value)
        throws IOException {
      printStream.println(value);
    }

    public synchronized void close(Reporter reporter) throws IOException {
      printStream.close();
    }
  };
}
 
開發者ID:jorcox,項目名稱:GeoCrawler,代碼行數:25,代碼來源:SegmentReader.java

示例11: compare

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
@Override
public int compare(WritableComparable o1, WritableComparable o2) {

	ReadKey rk1 = (ReadKey) o1;
	ReadKey rk2 = (ReadKey) o2;

	if (rk1.sample.equals(rk2.sample)) {

		if (rk1.sequence.equals(rk2.sequence)) {
			return 0;

		} else {
			return rk1.sequence.compareTo(rk2.sequence);
		}
	} else {
		return rk1.sample.compareTo(rk2.sample);

	}

}
 
開發者ID:seppinho,項目名稱:mutation-server,代碼行數:21,代碼來源:ReadKeyGroupingComparator.java

示例12: createRecordReader

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
@Override
public RecordReader<WritableComparable, HCatRecord>
  createRecordReader(InputSplit split,
    TaskAttemptContext taskContext)
    throws IOException, InterruptedException {
  LOG.debug("Creating a SqoopHCatRecordReader");
  return new SqoopHCatRecordReader(split, taskContext, this);
}
 
開發者ID:aliyun,項目名稱:aliyun-maxcompute-data-collectors,代碼行數:9,代碼來源:SqoopHCatExportFormat.java

示例13: createHCatRecordReader

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
public RecordReader<WritableComparable, HCatRecord>
  createHCatRecordReader(InputSplit split,
    TaskAttemptContext taskContext)
    throws IOException, InterruptedException {
  LOG.debug("Creating a base HCatRecordReader");
  return super.createRecordReader(split, taskContext);
}
 
開發者ID:aliyun,項目名稱:aliyun-maxcompute-data-collectors,代碼行數:8,代碼來源:SqoopHCatExportFormat.java

示例14: map

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
@Override
public void map(WritableComparable key, HCatRecord value,
  Context context) throws IOException, InterruptedException {
  try {
    recsRead.add(value);
    readRecordCount++;
  } catch (Exception e) {
    if (LOG.isDebugEnabled()) {
      e.printStackTrace(System.err);
    }
    throw new IOException(e);
  }
}
 
開發者ID:aliyun,項目名稱:aliyun-maxcompute-data-collectors,代碼行數:14,代碼來源:HCatalogTestUtils.java

示例15: getContent

import org.apache.hadoop.io.WritableComparable; //導入依賴的package包/類
private String[] getContent(Configuration conf, Path path) throws Exception {
  ClassLoader prevClassLoader = ClassLoaderStack.addJarFile(
      new Path(new Path(new SqoopOptions().getJarOutputDir()), getTableName() + ".jar").toString(),
      getTableName());

  FileSystem fs = FileSystem.getLocal(conf);
  FileStatus[] stats = fs.listStatus(path);
  Path[] paths = new Path[stats.length];
  for (int i = 0; i < stats.length; i++) {
    paths[i] = stats[i].getPath();
  }

  // Read all the files adding the value lines to the list.
  List<String> strings = new ArrayList<String>();
  for (Path filePath : paths) {
    if (filePath.getName().startsWith("_") || filePath.getName().startsWith(".")) {
      continue;
    }

    // Need to use new configuration object so that it has the proper classloaders.
    SequenceFile.Reader reader = new SequenceFile.Reader(fs, filePath, new Configuration());
    WritableComparable key = (WritableComparable)
        reader.getKeyClass().newInstance();
    Writable value = (Writable) reader.getValueClass().newInstance();
    while (reader.next(key, value)) {
      strings.add(value.toString());
    }
  }

  ClassLoaderStack.setCurrentClassLoader(prevClassLoader);
  return strings.toArray(new String[0]);
}
 
開發者ID:aliyun,項目名稱:aliyun-maxcompute-data-collectors,代碼行數:33,代碼來源:TestImportJob.java


注:本文中的org.apache.hadoop.io.WritableComparable類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。