Errata

HBase: The Definitive Guide

Errata for HBase: The Definitive Guide

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
PDF
Page xxiii
Preface

'ch04' in this section should be fixed to 'ch03'.
---
/tmp/hbase-book$ cd ch04/
/tmp/hbase-book/ch04$ bin/run.sh client.PutExample
/tmp/hbase-book/ch04$ bin/run.sh client.GetExample
---
PutExample and GetExample exists under ch03 directory, not ch04.

Note from the Author or Editor:
You are right, the code has been moved at some stage and this reference was missed.

Sho Shimauchi  Jan 16, 2012 
Printed
Page xvi
Foreword

In the 3rd paragraph, one can read "... fielding millions of of hits a second on their analytics clusters...", notice the repetition "of of".

Anonymous  Apr 19, 2012 
PDF
Page 53
Figure 2-1

In Figure 2-1, beside the arrow between "HDFS" and "DataNode", it says "xceiver", but I think it should be the previously noted misspelling "xciever" (in the "Datanode Handlers" section on page 51 of the PDF). I don't know enough about the details to know if the variation in spelling is intentional or not.

Note from the Author or Editor:
I agree, either "xciever (sic), or fully named "Data Transceiver" or similar.

Mark Reid  Sep 20, 2011 
Printed, PDF
Page 81
Chapter 3 / CRUD Operations / Put Operations / Single Puts

In the the result of
scan 'testtable'
after Example 3-2 it seems that
row1 column=colfam1:qual2, timestamp=xyz, value= val2
is missing.

Note from the Author or Editor:
Correct, already fixed for 2nd ed. Thanks!

Anonymous  Jun 08, 2013 
Printed
Page 82
6th paragraph

HBase now only keeps one version of values by default. To recreate the example, the table creation command must specify the VERSIONS attribute:

create 'test', {NAME => 'cf1', VERSIONS => 3}

Note from the Author or Editor:
This is fixed in code and book for the 2nd edition (which covers the new setting).

johntodd  Jan 29, 2016 
PDF
Page 84
1st paragraph

The "parameter" is misspelled as "paremeter" in below mentioned line.
"This is also the reason that there is an offset and
length parameter for each byte array paremeter."

Note from the Author or Editor:
Correct, this is a typo. Thanks!

Anonymous  Jul 02, 2014 
PDF
Page 225
1/3 way down page

Grammatical mistake, double negative:

"... to reflect that no region of this table is not deployed to any servers."

should just be

"... to reflect that no region of this table is deployed to any servers."

Note from the Author or Editor:
Correct, this is a typo. Thanks.

Hari Sekhon  Feb 03, 2013 
PDF
Page 233
United Kingdom

"int getRequestsCount() The current number of requests across all regions? servers in the cluster."

I think this should instead be

"int getRequestsCount() The current number of requests across all region servers in the cluster."

Note from the Author or Editor:
Indeed, that is a typo. Thanks.

Hari Sekhon  Feb 03, 2013 
PDF
Page 305
tip

In " This is also the reason why the output key format of the job is set to Writable, instead of the explicit Put class.", "key" should be "value".

Jingguo Yao  Sep 26, 2012 
Printed
Page 333
2nd paragraph

The first sentence of the 2nd paragraph:
"The structure starts with two fixed-length numbers indicating the size and value of the key. "
Should be:
"The structure starts with two fixed-length numbers indicating the size of the key and the size of the value "

Note from the Author or Editor:
Confirmed, that sentence is wrong and needs correcting as suggested.

Jerry He  Apr 21, 2013 
Printed, PDF,
Page 344
Figure 8-10

Figure 8-10 has a few minor flaws:

1) The title in right gray box should be "Store: ColFam2" (and not "Store: ColFam1"). Each gray box is a representation on a separate column family.

2) The table on the right should have all "cf2" prefixes, not the "cf1" that is listed. This is because it is a zoomed-in version of the entries in column family 2.

3) The first timestamp in the table on the right is wrong. It should be "ts2"

4) In continuation to 3), for the sake of clarity, it might be better to rename "v1" in that same row to "v2", assuming the user stored a new value in the column.

5) And finally, it might be better to name all values with the same number as the timestamp.

Lars George
Lars George
 
May 02, 2012 
Printed
Page 358
Figure 9-1

In Figure 9-1, in Storefile "cf2/1234", the third row should be r3:cf2:c1:t1:<value>

Note from the Author or Editor:
Yes, that is a typo in the artwork. Needs to be fixed in the next edition.

Stan Manoski  Nov 16, 2011 
Printed, PDF,
Page 358
Figure 9-1

The table on the bottom right should have the third row saying "r3:cf2:c1:t1:<value>". The mistake in the figure is that the row falsely states "c2" for the column qualifier, as opposed to the correct "c1".

Lars George
Lars George
 
May 02, 2012 
Printed, PDF,
Page 358
Figure 9-1

The figure 9-1 on the lower left hand side, second light orange box is missing a dash. It should be reading "r1:cf1:c1-<value>:t1:\x00". The dash is an example for a divider between the key and the "shifted" value. Here is forms a compound key between the column qualifier and the value.

Lars George
Lars George
 
May 02, 2012 
361
3rd paragraph

Chapter 09 : Partial Key Scan

It mentions

. For the preceding inbox example, the start key could be 12345, and the stop key 123456.

Actually the stop key is 12346 ( no 5 )

Note from the Author or Editor:
Correct, will fix. Thanks!

Anonymous  Oct 01, 2013 
PDF
Page 364
3rd paragraph

"byte[] rowkey = Bytes.add(Bytes.toBytes(prefix), Bytes.toBytes(timestamp);" should be "byte[] rowkey = Bytes.add(Bytes.toBytes(prefix), Bytes.toBytes(timestamp));". In other words, a ")" is missing.

Note from the Author or Editor:
Correct, there is a closing bracket missing.

Jingguo Yao  Oct 07, 2012 
PDF
Page 408
last paragraph

at second line from bottom.
$HABASE_HOME -> $HBASE_HOME

Note from the Author or Editor:
Typo indeed. Should be the expected $HBASE_HOME.

Takefumi Ohide  Oct 04, 2011 
Printed
Page 435
Subsection "Close ResultScanners"

One can read "HTable,getScanner()" instead of "HTable.getScanner()". There should be a period instead of a comma between "HTable" and "getScanner".

Andre Medeiros  Apr 23, 2012 
PDF
Page 435
2nd line of "Turn off WAL on Puts"

writeToWAL() should be setWriteToWAL().

There is no method named writeToWAL() in Put class.
Put class has writeToWAL field and setWriteToWAL() as its setter.

Sho Shimauchi  Jul 29, 2012