• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java DFSInotifyEventInputStream类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.hadoop.hdfs.DFSInotifyEventInputStream的典型用法代码示例。如果您正苦于以下问题:Java DFSInotifyEventInputStream类的具体用法?Java DFSInotifyEventInputStream怎么用?Java DFSInotifyEventInputStream使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DFSInotifyEventInputStream类属于org.apache.hadoop.hdfs包,在下文中一共展示了DFSInotifyEventInputStream类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: testReadActivelyUpdatedLog

import org.apache.hadoop.hdfs.DFSInotifyEventInputStream; //导入依赖的package包/类
/**
 *
 * @throws Exception
 */
@Test
public void testReadActivelyUpdatedLog() throws Exception {
  final TestAppender appender = new TestAppender();
  LogManager.getRootLogger().addAppender(appender);
  Configuration conf = new HdfsConfiguration();
  conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ACLS_ENABLED_KEY, true);
  // Set single handler thread, so all transactions hit same thread-local ops.
  conf.setInt(DFSConfigKeys.DFS_NAMENODE_HANDLER_COUNT_KEY, 1);
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
    cluster.waitActive();
    FSImage fsimage = cluster.getNamesystem().getFSImage();
    StorageDirectory sd = fsimage.getStorage().getStorageDir(0);

    final DistributedFileSystem fileSys = cluster.getFileSystem();
    DFSInotifyEventInputStream events = fileSys.getInotifyEventStream();
    fileSys.mkdirs(new Path("/test"));
    fileSys.mkdirs(new Path("/test/dir1"));
    fileSys.delete(new Path("/test/dir1"), true);
    fsimage.getEditLog().logSync();
    fileSys.mkdirs(new Path("/test/dir2"));


    final File inProgressEdit = NNStorage.getInProgressEditsFile(sd, 1);
    assertTrue(inProgressEdit.exists());
    EditLogFileInputStream elis = new EditLogFileInputStream(inProgressEdit);
    FSEditLogOp op;
    long pos = 0;

    while (true) {
      op = elis.readOp();
      if (op != null && op.opCode != FSEditLogOpCodes.OP_INVALID) {
        pos = elis.getPosition();
      } else {
        break;
      }
    }
    elis.close();
    assertTrue(pos > 0);

    RandomAccessFile rwf = new RandomAccessFile(inProgressEdit, "rw");
    rwf.seek(pos);
    assertEquals(rwf.readByte(), (byte) -1);

    rwf.seek(pos + 1);
    rwf.writeByte(2);

    rwf.close();

    events.poll();
    String pattern = "Caught exception after reading (.*) ops";
    Pattern r = Pattern.compile(pattern);
    final List<LoggingEvent> log = appender.getLog();
    for (LoggingEvent event : log) {
      Matcher m = r.matcher(event.getRenderedMessage());
      if (m.find()) {
        fail("Should not try to read past latest syned edit log op");
      }
    }

  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
    LogManager.getRootLogger().removeAppender(appender);
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:73,代码来源:TestEditLog.java


示例2: getInotifyEventStream

import org.apache.hadoop.hdfs.DFSInotifyEventInputStream; //导入依赖的package包/类
/**
 * Exposes a stream of namesystem events. Only events occurring after the
 * stream is created are available.
 * See {@link org.apache.hadoop.hdfs.DFSInotifyEventInputStream}
 * for information on stream usage.
 * See {@link org.apache.hadoop.hdfs.inotify.Event}
 * for information on the available events.
 * <p/>
 * Inotify users may want to tune the following HDFS parameters to
 * ensure that enough extra HDFS edits are saved to support inotify clients
 * that fall behind the current state of the namespace while reading events.
 * The default parameter values should generally be reasonable. If edits are
 * deleted before their corresponding events can be read, clients will see a
 * {@link org.apache.hadoop.hdfs.inotify.MissingEventsException} on
 * {@link org.apache.hadoop.hdfs.DFSInotifyEventInputStream} method calls.
 *
 * It should generally be sufficient to tune these parameters:
 * dfs.namenode.num.extra.edits.retained
 * dfs.namenode.max.extra.edits.segments.retained
 *
 * Parameters that affect the number of created segments and the number of
 * edits that are considered necessary, i.e. do not count towards the
 * dfs.namenode.num.extra.edits.retained quota):
 * dfs.namenode.checkpoint.period
 * dfs.namenode.checkpoint.txns
 * dfs.namenode.num.checkpoints.retained
 * dfs.ha.log-roll.period
 * <p/>
 * It is recommended that local journaling be configured
 * (dfs.namenode.edits.dir) for inotify (in addition to a shared journal)
 * so that edit transfers from the shared journal can be avoided.
 *
 * @throws IOException If there was an error obtaining the stream.
 */
public DFSInotifyEventInputStream getInotifyEventStream() throws IOException {
  return dfs.getInotifyEventStream();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:38,代码来源:HdfsAdmin.java



注:本文中的org.apache.hadoop.hdfs.DFSInotifyEventInputStream类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java TestDataPublisher类代码示例发布时间:2022-05-23
下一篇:
Java Group类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap