小编Jag*_*ran的帖子

恢复Hadoop NameNode失败

场景1:

HDFS fsimage和editlog写入多个位置,包括NFS挂载.

A)NameNode守护程序崩溃:解决方案:只需重新启动Namenode进程

B)运行名称节点的主机已关闭.

解:

  1. 在具有空dfs.name.dir的其他主机中启动namenode
  2. 将dfs.name.dir指向我们拥有元数据副本的NFS挂载.要么
  3. 在将fs.checkpoint.dir指向Secondary NameNode的检查点目录后启动namenode时使用--importCheckpoint选项
  4. 将fs.default.name更改为备份主机名URI,并使用从属文件中的所有从属IP重新启动群集.

注意 - 我们可能会错过最后一个检查点之后可能发生的编辑.

场景2:

HDFS fsimage写入单个目录.

A)NameNode守护进程崩溃:解决方案:未知

B)主机已关闭运行名称节点的位置.

解:

  1. 创建一个空白目录,指向dfs.name.dir到(1)中的目录
  2. 将fs.checkpoint.dir指向Secondary NameNode的checkpoint目录后,使用-importCheckpoint启动Namenode
  3. 将fs.default.name更改为备份主机名URI,并使用从属文件中的所有从属IP重新启动群集.

这样我们将再次错过在最后一个检查点之后编辑的文件.

如果我们可以手动恢复群集,请告诉我.

hadoop hdfs cloudera

5
推荐指数
1
解决办法
1万
查看次数

并发修改例外

java.util.ConcurrentModificationException在这个方法上得到以下内容

private AtomicReference<HashMap<String, Logger>> transactionLoggerMap = new AtomicReference<HashMap<String,Logger>>();

public void rolloutFile() {

    // Get all the loggers and fire a temp log line.
    Set<String> transactionLoggerSet = (Set<String>) transactionLoggerMap.get().keySet();
    Iterator<String> transactionLoggerSetIter = transactionLoggerSet.iterator();
    while(transactionLoggerSetIter.hasNext()){
        String key = (String) transactionLoggerSetIter.next();
        Logger txnLogger = transactionLoggerMap.get().get(key);
        localLogger.trace("About to do timer task rollover:");
        txnLogger.info(DataTransformerConstants.IGNORE_MESSAGE);
    }
}
Run Code Online (Sandbox Code Playgroud)

请建议,如果我使用原子参考,我如何获得como?

java concurrency multithreading

2
推荐指数
1
解决办法
453
查看次数

标签 统计

cloudera ×1

concurrency ×1

hadoop ×1

hdfs ×1

java ×1

multithreading ×1