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


Java DataInputBuffer.getPosition方法代碼示例

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


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

示例1: append

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
public void append(DataInputBuffer key, DataInputBuffer value)
throws IOException {
  int keyLength = key.getLength() - key.getPosition();
  if (keyLength < 0) {
    throw new IOException("Negative key-length not allowed: " + keyLength + 
                          " for " + key);
  }
  
  int valueLength = value.getLength() - value.getPosition();
  if (valueLength < 0) {
    throw new IOException("Negative value-length not allowed: " + 
                          valueLength + " for " + value);
  }

  WritableUtils.writeVInt(out, keyLength);
  WritableUtils.writeVInt(out, valueLength);
  out.write(key.getData(), key.getPosition(), keyLength); 
  out.write(value.getData(), value.getPosition(), valueLength); 

  // Update bytes written
  decompressedBytesWritten += keyLength + valueLength + 
                  WritableUtils.getVIntSize(keyLength) + 
                  WritableUtils.getVIntSize(valueLength);
  ++numRecordsWritten;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:26,代碼來源:IFile.java

示例2: append

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
public void append(DataInputBuffer key, DataInputBuffer value)
throws IOException {
  int keyLength = key.getLength() - key.getPosition();
  if (keyLength < 0) {
    throw new IOException("Negative key-length not allowed: " + keyLength + 
                          " for " + key);
  }
  
  int valueLength = value.getLength() - value.getPosition();
  if (valueLength < 0) {
    throw new IOException("Negative value-length not allowed: " + 
                          valueLength + " for " + value);
  }

  WritableUtils.writeVInt(out, keyLength);
  WritableUtils.writeVInt(out, valueLength);
  out.write(key.getData(), key.getPosition(), keyLength); 
  out.write(value.getData(), value.getPosition(), valueLength); 
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:20,代碼來源:InMemoryWriter.java

示例3: lessThan

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
@SuppressWarnings("unchecked")
protected boolean lessThan(Object a, Object b) {
  DataInputBuffer key1 = ((Segment<K, V>)a).getKey();
  DataInputBuffer key2 = ((Segment<K, V>)b).getKey();
  int s1 = key1.getPosition();
  int l1 = key1.getLength() - s1;
  int s2 = key2.getPosition();
  int l2 = key2.getLength() - s2;

  return comparator.compare(key1.getData(), s1, l1, key2.getData(), s2, l2) < 0;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:12,代碼來源:Merger.java

示例4: reserveSpace

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
boolean reserveSpace(DataInputBuffer key, DataInputBuffer value)
throws IOException {
  int keyLength = key.getLength() - key.getPosition();
  int valueLength = value.getLength() - value.getPosition();

  int requestedSize = keyLength + valueLength + 
    WritableUtils.getVIntSize(keyLength) +
    WritableUtils.getVIntSize(valueLength);
  return reserveSpace(requestedSize);
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:11,代碼來源:BackupStore.java

示例5: write

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
/**
 * Write the key and value to the cache in the IFile format
 * @param key
 * @param value
 * @throws IOException
 */
public void write(DataInputBuffer key, DataInputBuffer value)
throws IOException {
  int keyLength = key.getLength() - key.getPosition();
  int valueLength = value.getLength() - value.getPosition();
  WritableUtils.writeVInt(dataOut, keyLength);
  WritableUtils.writeVInt(dataOut, valueLength);
  dataOut.write(key.getData(), key.getPosition(), keyLength);
  dataOut.write(value.getData(), value.getPosition(), valueLength);
  usedSize += keyLength + valueLength + 
    WritableUtils.getVIntSize(keyLength) +
    WritableUtils.getVIntSize(valueLength);
  LOG.debug("ID: " + segmentList.size() + " WRITE TO MEM");
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:20,代碼來源:BackupStore.java

示例6: nextRawKey

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
public boolean nextRawKey(DataInputBuffer key) throws IOException {
  if (kvIter.next()) {
    final DataInputBuffer kb = kvIter.getKey();
    final int kp = kb.getPosition();
    final int klen = kb.getLength() - kp;
    key.reset(kb.getData(), kp, klen);
    bytesRead += klen;
    return true;
  }
  return false;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:12,代碼來源:MergeManagerImpl.java

示例7: nextRawValue

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
public void nextRawValue(DataInputBuffer value) throws IOException {
  final DataInputBuffer vb = kvIter.getValue();
  final int vp = vb.getPosition();
  final int vlen = vb.getLength() - vp;
  value.reset(vb.getData(), vp, vlen);
  bytesRead += vlen;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:8,代碼來源:MergeManagerImpl.java

示例8: nextKeyValue

import org.apache.hadoop.io.DataInputBuffer; //導入方法依賴的package包/類
/**
 * Advance to the next key/value pair.
 */
@Override
public boolean nextKeyValue() throws IOException, InterruptedException {
  if (!hasMore) {
    key = null;
    value = null;
    return false;
  }
  firstValue = !nextKeyIsSame;
  DataInputBuffer nextKey = input.getKey();
  currentRawKey.set(nextKey.getData(), nextKey.getPosition(), 
                    nextKey.getLength() - nextKey.getPosition());
  buffer.reset(currentRawKey.getBytes(), 0, currentRawKey.getLength());
  key = keyDeserializer.deserialize(key);
  DataInputBuffer nextVal = input.getValue();
  buffer.reset(nextVal.getData(), nextVal.getPosition(), nextVal.getLength()
      - nextVal.getPosition());
  value = valueDeserializer.deserialize(value);

  currentKeyLength = nextKey.getLength() - nextKey.getPosition();
  currentValueLength = nextVal.getLength() - nextVal.getPosition();

  if (isMarked) {
    backupStore.write(nextKey, nextVal);
  }

  hasMore = input.next();
  if (hasMore) {
    nextKey = input.getKey();
    nextKeyIsSame = comparator.compare(currentRawKey.getBytes(), 0, 
                                   currentRawKey.getLength(),
                                   nextKey.getData(),
                                   nextKey.getPosition(),
                                   nextKey.getLength() - nextKey.getPosition()
                                       ) == 0;
  } else {
    nextKeyIsSame = false;
  }
  inputValueCounter.increment(1);
  return true;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:44,代碼來源:ReduceContextImpl.java


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