From b1c1873abebbdd4059ed715721f44d6a0b419f85 Mon Sep 17 00:00:00 2001 From: Jean-Daniel Cryans Date: Mon, 5 Apr 2010 20:04:36 +0000 Subject: [PATCH] HBASE-2252 Mapping a very big table kills region servers git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@930945 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 1 + .../apache/hadoop/hbase/mapred/TableRecordReaderImpl.java | 1 + .../apache/hadoop/hbase/mapreduce/TableInputFormat.java | 7 +++---- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 3c0a3fa71d1..0d41fe7ccfe 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -482,6 +482,7 @@ Release 0.21.0 - Unreleased HBASE-2402 [stargate] set maxVersions on gets HBASE-2087 The wait on compaction because "Too many store files" holds up all flushing + HBASE-2252 Mapping a very big table kills region servers NEW FEATURES HBASE-1961 HBase EC2 scripts diff --git a/core/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java b/core/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java index 34da93707a7..f6f99e2965f 100644 --- a/core/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java +++ b/core/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java @@ -62,6 +62,7 @@ public class TableRecordReaderImpl { Scan scan = new Scan(firstRow, endRow); scan.addColumns(trrInputColumns); scan.setFilter(trrRowFilter); + scan.setCacheBlocks(false); this.scanner = this.htable.getScanner(scan); } else { LOG.debug("TIFB.restart, firstRow: " + diff --git a/core/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java b/core/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java index 5d26324c1a5..96ac3eb7f0b 100644 --- a/core/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java +++ b/core/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java @@ -127,14 +127,13 @@ implements Configurable { if (conf.get(SCAN_MAXVERSIONS) != null) { scan.setMaxVersions(Integer.parseInt(conf.get(SCAN_MAXVERSIONS))); } - - if (conf.get(SCAN_CACHEBLOCKS) != null) { - scan.setCacheBlocks(Boolean.parseBoolean(conf.get(SCAN_CACHEBLOCKS))); - } if (conf.get(SCAN_CACHEDROWS) != null) { scan.setCaching(Integer.parseInt(conf.get(SCAN_CACHEDROWS))); } + + // false by default, full table scans generate too much BC churn + scan.setCacheBlocks((conf.getBoolean(SCAN_CACHEBLOCKS, false))); } catch (Exception e) { LOG.error(StringUtils.stringifyException(e)); }