HBASE-1876 DroppedSnapshotException when flushing memstore after a datanode dies
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@822064 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3b8bed11a6
commit
f370d0ba41
|
@ -1019,7 +1019,6 @@ public class KeyValue implements Writable, HeapSize {
|
|||
/**
|
||||
* @param column Column minus its delimiter
|
||||
* @return True if column matches.
|
||||
* @see #matchingColumn(byte[])
|
||||
*/
|
||||
public boolean matchingColumnNoDelimiter(final byte [] column) {
|
||||
int rl = getRowLength();
|
||||
|
@ -1517,7 +1516,7 @@ public class KeyValue implements Writable, HeapSize {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param b
|
||||
* @param bb
|
||||
* @return A KeyValue made of a byte buffer that holds the key-only part.
|
||||
* Needed to convert hfile index members to KeyValues.
|
||||
*/
|
||||
|
|
|
@ -32,7 +32,7 @@ import org.apache.hadoop.hbase.util.Bytes;
|
|||
*
|
||||
* Each HTablePool acts as a pool for all tables. To use, instantiate an
|
||||
* HTablePool and use {@link #getTable(String)} to get an HTable from the pool.
|
||||
* Once you are done with it, return it to the pool with {@link #putTable(HTable)}.<p>
|
||||
* Once you are done with it, return it to the pool with {@link #putTable(HTableInterface)}.<p>
|
||||
*
|
||||
* A pool can be created with a <i>maxSize</i> which defines the most HTable
|
||||
* references that will ever be retained for each table. Otherwise the default
|
||||
|
|
|
@ -97,7 +97,6 @@ public class Result implements Writable {
|
|||
/**
|
||||
* Instantiate a Result from the specified raw binary format.
|
||||
* @param bytes raw binary format of Result
|
||||
* @param numKeys number of KeyValues in Result
|
||||
*/
|
||||
public Result(ImmutableBytesWritable bytes) {
|
||||
this.bytes = bytes;
|
||||
|
|
|
@ -74,8 +74,8 @@ public abstract class CompareFilter implements Filter {
|
|||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param rowCompareOp the compare op for row matching
|
||||
* @param rowComparator the comparator for row matching
|
||||
* @param compareOp the compare op for row matching
|
||||
* @param comparator the comparator for row matching
|
||||
*/
|
||||
public CompareFilter(final CompareOp compareOp,
|
||||
final WritableByteArrayComparable comparator) {
|
||||
|
|
|
@ -32,8 +32,7 @@ import org.apache.hadoop.hbase.util.Bytes;
|
|||
* filtering based on the value of a given column. Use it to test if a given
|
||||
* regular expression matches a cell value in the column.
|
||||
* <p>
|
||||
* Only EQUAL or NOT_EQUAL {@link CompareOp} comparisons are valid with this
|
||||
* comparator.
|
||||
* Only EQUAL or NOT_EQUAL comparisons are valid with this comparator.
|
||||
* <p>
|
||||
* For example:
|
||||
* <p>
|
||||
|
|
|
@ -33,9 +33,9 @@ import org.apache.hadoop.hbase.io.HbaseObjectWritable;
|
|||
import org.apache.hadoop.hbase.util.Bytes;
|
||||
|
||||
/**
|
||||
* This filter is used to filter cells based on value. It takes a {@link #Filter.CompareOp}
|
||||
* This filter is used to filter cells based on value. It takes a {@link CompareFilter.CompareOp}
|
||||
* operator (equal, greater, not equal, etc), and either a byte [] value or
|
||||
* a {@link #WritableByteArrayComparable}.
|
||||
* a WritableByteArrayComparable.
|
||||
* <p>
|
||||
* If we have a byte [] value then we just do a lexicographic compare. For
|
||||
* example, if passed value is 'b' and cell has 'a' and the compare operator
|
||||
|
@ -218,4 +218,4 @@ public class SingleColumnValueFilter implements Filter {
|
|||
out.writeBoolean(matchedColumn);
|
||||
out.writeBoolean(filterIfMissing);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,9 +20,7 @@
|
|||
/**Provides row-level filters applied to HRegion scan results during calls to
|
||||
* {@link org.apache.hadoop.hbase.client.ResultScanner#next()}.
|
||||
|
||||
<p>Since HBase 0.20.0, {@link org.apache.hadoop.hbase.filter.Filter} is the new
|
||||
Interface used filtering. It replaces the deprecated
|
||||
{@link org.apache.hadoop.hbase.filter.RowFilterInterface}.
|
||||
<p>
|
||||
Filters run the extent of a table unless you wrap your filter in a
|
||||
{@link org.apache.hadoop.hbase.filter.WhileMatchFilter}.
|
||||
The latter returns as soon as the filter stops matching.
|
||||
|
|
|
@ -69,12 +69,18 @@
|
|||
in your hbase-site.xml.</li>
|
||||
<li>This is a list of patches we recommend you apply to your running Hadoop cluster:
|
||||
<ul>
|
||||
<li><a hef="https://issues.apache.org/jira/browse/HADOOP-4681">HADOOP-4681 <i>"DFSClient block read failures cause open DFSInputStream to become unusable"</i></a>. This patch will help with the ever-popular, "No live nodes contain current block".
|
||||
<li><a hef="https://issues.apache.org/jira/browse/HADOOP-4681">HADOOP-4681/HDFS-127 <i>"DFSClient block read failures cause open DFSInputStream to become unusable"</i></a>. This patch will help with the ever-popular, "No live nodes contain current block".
|
||||
The hadoop version bundled with hbase has this patch applied. Its an HDFS client
|
||||
fix so this should do for usual usage but if your cluster is missing the patch,
|
||||
and in particular if calling hbase from a mapreduce job, you may run into this
|
||||
issue.
|
||||
</li>
|
||||
<li><a hef="https://issues.apache.org/jira/browse/HDFS-630">HDFS-630 <i> "In DFSOutputStream.nextBlockOutputStream(), the client can exclude specific datanodes when locating the next block"</i></a>. Dead datanodes take ten minutes to timeout at namenode.
|
||||
Meantime the namenode can still send DFSClients to the dead datanode as host for
|
||||
a replicated block. DFSClient can get stuck on trying to get block from a
|
||||
dead node. This patch allows DFSClients pass namenode lists of known
|
||||
dead datanodes.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
Loading…
Reference in New Issue