本文整理汇总了Java中org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation类的典型用法代码示例。如果您正苦于以下问题:Java EditLogValidation类的具体用法?Java EditLogValidation怎么用?Java EditLogValidation使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EditLogValidation类属于org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader包,在下文中一共展示了EditLogValidation类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: validateEditLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
static FSEditLogLoader.EditLogValidation validateEditLog(File file)
throws IOException {
EditLogFileInputStream in;
try {
in = new EditLogFileInputStream(file);
in.getVersion(true); // causes us to read the header
} catch (LogHeaderCorruptException e) {
// If the header is malformed or the wrong value, this indicates a corruption
LOG.warn("Log file " + file + " has no valid header", e);
return new FSEditLogLoader.EditLogValidation(0,
HdfsConstants.INVALID_TXID, true);
}
try {
return FSEditLogLoader.validateEditLog(in);
} finally {
IOUtils.closeStream(in);
}
}
开发者ID:naver,项目名称:hadoop,代码行数:20,代码来源:EditLogFileInputStream.java
示例2: scanEditLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
/**
* @param file File being scanned and validated.
* @param maxTxIdToScan Maximum Tx ID to try to scan.
* The scan returns after reading this or a higher
* ID. The file portion beyond this ID is
* potentially being updated.
* @return Result of the validation
* @throws IOException
*/
static FSEditLogLoader.EditLogValidation scanEditLog(File file,
long maxTxIdToScan, boolean verifyVersion)
throws IOException {
EditLogFileInputStream in;
try {
in = new EditLogFileInputStream(file);
// read the header, initialize the inputstream, but do not check the
// layoutversion
in.getVersion(verifyVersion);
} catch (LogHeaderCorruptException e) {
LOG.warn("Log file " + file + " has no valid header", e);
return new FSEditLogLoader.EditLogValidation(0,
HdfsServerConstants.INVALID_TXID, true);
}
try {
return FSEditLogLoader.scanEditLog(in, maxTxIdToScan);
} finally {
IOUtils.closeStream(in);
}
}
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:31,代码来源:EditLogFileInputStream.java
示例3: testValidateEditLogWithCorruptHeader
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
@Test
public void testValidateEditLogWithCorruptHeader() throws IOException {
File testDir = new File(TEST_DIR, "testValidateEditLogWithCorruptHeader");
SortedMap<Long, Long> offsetToTxId = Maps.newTreeMap();
File logFile = prepareUnfinalizedTestEditLog(testDir, 2, offsetToTxId);
RandomAccessFile rwf = new RandomAccessFile(logFile, "rw");
try {
rwf.seek(0);
rwf.writeLong(42); // corrupt header
} finally {
rwf.close();
}
EditLogValidation validation =
EditLogFileInputStream.scanEditLog(logFile, Long.MAX_VALUE, true);
assertTrue(validation.hasCorruptHeader());
}
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:17,代码来源:TestFSEditLogLoader.java
示例4: testValidateEditLogWithCorruptHeader
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
@Test
public void testValidateEditLogWithCorruptHeader() throws IOException {
File testDir = new File(TEST_DIR, "testValidateEditLogWithCorruptHeader");
SortedMap<Long, Long> offsetToTxId = Maps.newTreeMap();
File logFile = prepareUnfinalizedTestEditLog(testDir, 2, offsetToTxId);
RandomAccessFile rwf = new RandomAccessFile(logFile, "rw");
try {
rwf.seek(0);
rwf.writeLong(42); // corrupt header
} finally {
rwf.close();
}
EditLogValidation validation = EditLogFileInputStream.validateEditLog(logFile);
assertTrue(validation.hasCorruptHeader());
}
开发者ID:naver,项目名称:hadoop,代码行数:16,代码来源:TestFSEditLogLoader.java
示例5: testValidateEmptyEditLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
@Test
public void testValidateEmptyEditLog() throws IOException {
File testDir = new File(TEST_DIR, "testValidateEmptyEditLog");
SortedMap<Long, Long> offsetToTxId = Maps.newTreeMap();
File logFile = prepareUnfinalizedTestEditLog(testDir, 0, offsetToTxId);
// Truncate the file so that there is nothing except the header and
// layout flags section.
truncateFile(logFile, 8);
EditLogValidation validation =
EditLogFileInputStream.validateEditLog(logFile);
assertTrue(!validation.hasCorruptHeader());
assertEquals(HdfsConstants.INVALID_TXID, validation.getEndTxId());
}
开发者ID:naver,项目名称:hadoop,代码行数:14,代码来源:TestFSEditLogLoader.java
示例6: testValidateEmptyEditLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
@Test
public void testValidateEmptyEditLog() throws IOException {
File testDir = new File(TEST_DIR, "testValidateEmptyEditLog");
SortedMap<Long, Long> offsetToTxId = Maps.newTreeMap();
File logFile = prepareUnfinalizedTestEditLog(testDir, 0, offsetToTxId);
// Truncate the file so that there is nothing except the header and
// layout flags section.
truncateFile(logFile, 8);
EditLogValidation validation =
EditLogFileInputStream.scanEditLog(logFile, Long.MAX_VALUE, true);
assertTrue(!validation.hasCorruptHeader());
assertEquals(HdfsServerConstants.INVALID_TXID, validation.getEndTxId());
}
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:14,代码来源:TestFSEditLogLoader.java
示例7: testPreallocation
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
@Test
public void testPreallocation() throws IOException {
Configuration conf = new Configuration();
MiniDFSCluster cluster = new MiniDFSCluster(conf, 0, true, null);
StorageDirectory sd = cluster.getNameNode().getFSImage()
.storage.getStorageDir(0);
File editLog = NNStorage.getInProgressEditsFile(sd, 0);
EditLogValidation validation = EditLogFileInputStream.validateEditLog(editLog);
assertEquals("Edit log should contain a header as valid length",
HEADER_LEN, validation.getValidLength());
assertEquals(1, validation.getNumTransactions());
assertEquals("Edit log should have 1MB pre-allocated",
PREALLOCATION_LENGTH, editLog.length());
cluster.getFileSystem().mkdirs(new Path("/tmp"),
new FsPermission((short)777));
long oldLength = validation.getValidLength();
validation = EditLogFileInputStream.validateEditLog(editLog);
assertTrue("Edit log should have more valid data after writing a txn " +
"(was: " + oldLength + " now: " + validation.getValidLength() + ")",
validation.getValidLength() > oldLength);
assertEquals(2, validation.getNumTransactions());
assertEquals("Edit log should be 1MB long, plus 4 bytes for the version number",
PREALLOCATION_LENGTH, editLog.length());
}
开发者ID:rhli,项目名称:hadoop-EAR,代码行数:31,代码来源:TestEditLogFileOutputStream.java
示例8: testValidateEmptyEditLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
@Test
public void testValidateEmptyEditLog() throws IOException {
File testDir = new File(TEST_DIR, "testValidateEmptyEditLog");
SortedMap<Long, Long> offsetToTxId = Maps.newTreeMap();
File logFile = prepareUnfinalizedTestEditLog(testDir, 0, offsetToTxId);
// Truncate the file so that there is nothing except the header
truncateFile(logFile, 4);
EditLogValidation validation =
EditLogFileInputStream.validateEditLog(logFile);
assertTrue(!validation.hasCorruptHeader());
assertEquals(HdfsConstants.INVALID_TXID, validation.getEndTxId());
}
开发者ID:rhli,项目名称:hadoop-EAR,代码行数:13,代码来源:TestFSEditLogLoader.java
示例9: validateLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
/**
* Count the number of valid transactions in a log.
* This will update the lastTxId of the EditLogFile or
* mark it as corrupt if it is.
*/
public void validateLog() throws IOException {
EditLogValidation val = EditLogFileInputStream.validateEditLog(file);
if (val.getNumTransactions() == 0) {
markCorrupt();
} else {
this.lastTxId = val.getEndTxId();
}
}
开发者ID:rhli,项目名称:hadoop-EAR,代码行数:14,代码来源:FileJournalManager.java
示例10: scanEditLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
static FSEditLogLoader.EditLogValidation scanEditLog(File file)
throws IOException {
EditLogFileInputStream in;
try {
in = new EditLogFileInputStream(file);
// read the header, initialize the inputstream, but do not check the
// layoutversion
in.getVersion(false);
} catch (LogHeaderCorruptException e) {
LOG.warn("Log file " + file + " has no valid header", e);
return new FSEditLogLoader.EditLogValidation(0,
HdfsConstants.INVALID_TXID, true);
}
long lastPos = 0;
long lastTxId = HdfsConstants.INVALID_TXID;
long numValid = 0;
try {
while (true) {
long txid = HdfsConstants.INVALID_TXID;
lastPos = in.getPosition();
try {
if ((txid = in.scanNextOp()) == HdfsConstants.INVALID_TXID) {
break;
}
} catch (Throwable t) {
FSImage.LOG.warn("Caught exception after scanning through "
+ numValid + " ops from " + in
+ " while determining its valid length. Position was "
+ lastPos, t);
in.resync();
FSImage.LOG.warn("After resync, position is " + in.getPosition());
continue;
}
if (lastTxId == HdfsConstants.INVALID_TXID || txid > lastTxId) {
lastTxId = txid;
}
numValid++;
}
return new EditLogValidation(lastPos, lastTxId, false);
} finally {
IOUtils.closeStream(in);
}
}
开发者ID:naver,项目名称:hadoop,代码行数:45,代码来源:EditLogFileInputStream.java
示例11: validateLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
/**
* Find out where the edit log ends.
* This will update the lastTxId of the EditLogFile or
* mark it as corrupt if it is.
*/
public void validateLog() throws IOException {
EditLogValidation val = EditLogFileInputStream.validateEditLog(file);
this.lastTxId = val.getEndTxId();
this.hasCorruptHeader = val.hasCorruptHeader();
}
开发者ID:naver,项目名称:hadoop,代码行数:11,代码来源:FileJournalManager.java
示例12: scanLog
import org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation; //导入依赖的package包/类
public void scanLog() throws IOException {
EditLogValidation val = EditLogFileInputStream.scanEditLog(file);
this.lastTxId = val.getEndTxId();
this.hasCorruptHeader = val.hasCorruptHeader();
}
开发者ID:naver,项目名称:hadoop,代码行数:6,代码来源:FileJournalManager.java
注:本文中的org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.EditLogValidation类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论