Archive for the ‘Java’ Tag

HBase Major Compaction

This is in continuation to my last two posts:

Each HBase Table has

  • 1 or More Column-families – that group columns and specify the physical layout of data storage
  • 1 or More Regions – that are akin to Shards (in the RDBMS world) i.e. A set of rows belonging to a table specified by its StartKey and EndKey

For every Column-family of a table in a region we have a Store which has

  • 1 MemStore – a buffer that holds in-memory modifications (till it is flushed to store files)
  • 0 or More Store files (HFiles) – that get created when MemStore fills up.

These store files are immutable and HBase creates a new file on every MemStore flush i.e. it does not write to an existing HFile.

Compaction combines all these Store files for a Region into fewer Store files to optimize performance. There are two types of compaction.

  • Minor Compaction – combines several Store files into fewer Store files
  • Major Compaction – reads all the Store files for a Region and writes to a single Store file.

Let us see how Major Compaction impacts HBase storage.

Create a table and insert data.


hbase(main):021:0> create 'users','info'
0 row(s) in 1.0540 seconds

hbase(main):022:0> list
TABLE
tbl1
users
2 row(s) in 0.0160 seconds

hbase(main):023:0> put 'users','abhi','info:name','abhishek'
0 row(s) in 0.0730 seconds

hbase(main):024:0> put 'users','abhi','info:age','30'
0 row(s) in 0.0120 seconds

Let us browse the HBase Root Directory and see how the data gets persisted physically on the filesystem.


abhi@hbase2:~$ ls -ltha /opt/hbase/data/
total 48K
drwxrwxr-x 4 hbase hbase 4.0K Nov  3 14:50 users
drwxr-xr-x 8 hbase users 4.0K Nov  3 14:50 .
drwxrwxr-x 4 hbase hbase 4.0K Nov  3 07:43 tbl1
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 05:35 .oldlogs
drwxrwxr-x 3 hbase hbase 4.0K Nov  3 05:34 .logs
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 12:00 -ROOT-
drwxrwxr-x 3 hbase hbase 4.0K Oct 30 12:00 .META.
-rwxr-xr-x 1 hbase hbase   38 Oct 30 12:00 hbase.id
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 .hbase.id.crc
-rwxr-xr-x 1 hbase hbase    3 Oct 30 12:00 hbase.version
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 .hbase.version.crc
drwxr-xr-x 3 abhi  users 4.0K Oct 11 08:10 ..
abhi@hbase2:~$
abhi@hbase2:~$ ls -ltha /opt/hbase/data/users/
total 24K
drwxrwxr-x 4 hbase hbase 4.0K Nov  3 14:50 6dda0024cbf8619a9c823e6ebbf78888
drwxrwxr-x 4 hbase hbase 4.0K Nov  3 14:50 .
-rwxr-xr-x 1 hbase hbase  515 Nov  3 14:50 .tableinfo.0000000001
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:50 ..tableinfo.0000000001.crc
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:50 .tmp
drwxr-xr-x 8 hbase users 4.0K Nov  3 14:50 ..
abhi@hbase2:~$ ls -ltha /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/
total 24K
drwxrwxr-x 4 hbase hbase 4.0K Nov  3 14:50 .
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:50 .oldlogs
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:50 info
-rwxr-xr-x 1 hbase hbase  222 Nov  3 14:50 .regioninfo
-rw-rw-r-- 1 hbase hbase   12 Nov  3 14:50 ..regioninfo.crc
drwxrwxr-x 4 hbase hbase 4.0K Nov  3 14:50 ..
abhi@hbase2:~$ ls -ltha /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/
total 8.0K
drwxrwxr-x 4 hbase hbase 4.0K Nov  3 14:50 ..
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:50 .

As you can see above, HBase created

  • a directory ‘users’ for the table and under it
  • a sub-directory ‘6dda0024cbf8619a9c823e6ebbf78888’ for the Region and under it
  • a sub-directory ‘info’ for the Column-family

All modifications to table/region columns that belong to the ‘info’ column-family get stored as store files under ‘/opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/’

Although we entered data in the table but we don’t see any store files as all the data is currently in MemStore and has not been flushed yet. So let us flush the memstore and view the contents of the ‘info’ directory.


hbase(main):025:0> flush 'users'
0 row(s) in 0.0390 seconds

abhi@hbase2:~$ ls -ltha /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/
total 16K
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:52 .
drwxrwxr-x 5 hbase hbase 4.0K Nov  3 14:52 ..
-rwxrwxrwx 1 hbase hbase  660 Nov  3 14:52 32f19d12583a46b98211ee77311f48eb
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:52 .32f19d12583a46b98211ee77311f48eb.crc

Notice how the store file /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/32f19d12583a46b98211ee77311f48eb got created. Let us add few more data to our table and view the filesystem.


hbase(main):026:0> put 'users','avi','info:name','avinash'
0 row(s) in 0.0050 seconds

hbase(main):027:0> flush 'users'
0 row(s) in 0.0490 seconds
abhi@hbase2:~$ ls -ltha /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/
total 24K
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:52 .
-rwxrwxrwx 1 hbase hbase  623 Nov  3 14:52 ecc5f02da6234ac397d25bee6df0d019
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:52 .ecc5f02da6234ac397d25bee6df0d019.crc
drwxrwxr-x 5 hbase hbase 4.0K Nov  3 14:52 ..
-rwxrwxrwx 1 hbase hbase  660 Nov  3 14:52 32f19d12583a46b98211ee77311f48eb
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:52 .32f19d12583a46b98211ee77311f48eb.crc

Let us add some more data..

hbase(main):028:0> put 'users','avi','info:age','20'
0 row(s) in 0.0040 seconds

hbase(main):029:0> flush 'users'
0 row(s) in 0.1040 seconds
abhi@hbase2:~$ ls -ltha /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/
total 32K
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:53 .
-rwxrwxrwx 1 hbase hbase  615 Nov  3 14:53 ebda0cc0af9a4d9e803a10cce27c52b6
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:53 .ebda0cc0af9a4d9e803a10cce27c52b6.crc
-rwxrwxrwx 1 hbase hbase  623 Nov  3 14:52 ecc5f02da6234ac397d25bee6df0d019
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:52 .ecc5f02da6234ac397d25bee6df0d019.crc
drwxrwxr-x 5 hbase hbase 4.0K Nov  3 14:52 ..
-rwxrwxrwx 1 hbase hbase  660 Nov  3 14:52 32f19d12583a46b98211ee77311f48eb
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:52 .32f19d12583a46b98211ee77311f48eb.crc
abhi@hbase2:~$

Notice how for each flush, a new store file gets created. Let us view the contents of these store files.

abhi@hbase2:~$ hbase org.apache.hadoop.hbase.io.hfile.HFile -f /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/ebda0cc0af9a4d9e803a10cce27c52b6 -p
12/11/03 14:55:59 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
12/11/03 14:55:59 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
12/11/03 14:56:00 INFO hfile.CacheConfig: Allocating LruBlockCache with maximum size 247.9m
K: avi/info:age/1351979593884/Put/vlen=2 V: 20
Scanned kv count -> 1
abhi@hbase2:~$ hbase org.apache.hadoop.hbase.io.hfile.HFile -f /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/ecc5f02da6234ac397d25bee6df0d019 -p
12/11/03 14:56:19 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
12/11/03 14:56:19 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
12/11/03 14:56:20 INFO hfile.CacheConfig: Allocating LruBlockCache with maximum size 247.9m
K: avi/info:name/1351979559394/Put/vlen=7 V: avinash
Scanned kv count -> 1
abhi@hbase2:~$ hbase org.apache.hadoop.hbase.io.hfile.HFile -f /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/32f19d12583a46b98211ee77311f48eb -p
12/11/03 14:56:31 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
12/11/03 14:56:31 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
12/11/03 14:56:31 INFO hfile.CacheConfig: Allocating LruBlockCache with maximum size 247.9m
K: abhi/info:age/1351979477099/Put/vlen=2 V: 30
K: abhi/info:name/1351979467158/Put/vlen=8 V: abhishek
Scanned kv count -> 2
abhi@hbase2:~$

An alternate method to view the store file contents..

abhi@hbase2:~$ hbase org.apache.hadoop.hbase.io.hfile.HFile --printkv --file /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/ebda0cc0af9a4d9e803a10cce27c52b6
12/11/03 14:56:57 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
12/11/03 14:56:57 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
12/11/03 14:56:58 INFO hfile.CacheConfig: Allocating LruBlockCache with maximum size 247.9m
K: avi/info:age/1351979593884/Put/vlen=2 V: 20
Scanned kv count -> 1
abhi@hbase2:~$

Let us invoke Major Compaction to combine these files into a single new file.

hbase(main):030:0> major_compact 'users'
0 row(s) in 0.1000 seconds

hbase(main):031:0>
abhi@hbase2:~$
abhi@hbase2:~$ ls -ltha /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/
total 16K
drwxrwxr-x 2 hbase hbase 4.0K Nov  3 14:57 .
-rwxrwxrwx 1 hbase hbase  731 Nov  3 14:57 6a65463fa2814751b255fdcf1542cd0d
-rw-rw-r-- 1 hbase hbase   16 Nov  3 14:57 .6a65463fa2814751b255fdcf1542cd0d.crc
drwxrwxr-x 5 hbase hbase 4.0K Nov  3 14:52 ..
abhi@hbase2:~$

Let us view the contents of the new file that got created as a result of major compaction.

abhi@hbase2:~$
abhi@hbase2:~$ hbase org.apache.hadoop.hbase.io.hfile.HFile -f /opt/hbase/data/users/6dda0024cbf8619a9c823e6ebbf78888/info/6a65463fa2814751b255fdcf1542cd0d -p          12/11/03 14:58:23 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
12/11/03 14:58:23 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
12/11/03 14:58:23 INFO hfile.CacheConfig: Allocating LruBlockCache with maximum size 247.9m
K: abhi/info:age/1351979477099/Put/vlen=2 V: 30
K: abhi/info:name/1351979467158/Put/vlen=8 V: abhishek
K: avi/info:age/1351979593884/Put/vlen=2 V: 20
K: avi/info:name/1351979559394/Put/vlen=7 V: avinash
Scanned kv count -> 4
abhi@hbase2:~$
abhi@hbase2:~$

Advertisements

Understanding HBase files and directories

This is in continuation to my last post – Getting started with HBase.

HBase physically stores data in the specified Root Directory on the filesystem. The filesystem is typically HDFS but since I have installed HBase in the stand-alone mode, I am using the local filesystem.

Now lets examine the contents of our HBase Root Directory.

Note: Always do a flush on your tables so that the data gets written as files in your filesystem.


abhi@hbase2:~$ ls -ltha /opt/hbase/data/
total 48K
drwxrwxr-x 2 hbase hbase 4.0K Oct 31 14:32 .oldlogs
drwxrwxr-x 3 hbase hbase 4.0K Oct 31 14:31 .logs
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 17:10 table1
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 .
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 15:36 users
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 12:00 -ROOT-
drwxrwxr-x 3 hbase hbase 4.0K Oct 30 12:00 .META.
-rwxr-xr-x 1 hbase hbase   38 Oct 30 12:00 hbase.id
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 .hbase.id.crc
-rwxr-xr-x 1 hbase hbase    3 Oct 30 12:00 hbase.version
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 .hbase.version.crc
drwxr-xr-x 3 abhi  users 4.0K Oct 11 08:10 ..
abhi@hbase2:~$
abhi@hbase2:~$
abhi@hbase2:~$ ls -lthaR /opt/hbase/data/
/opt/hbase/data/:
total 48K
drwxrwxr-x 2 hbase hbase 4.0K Oct 31 14:32 .oldlogs
drwxrwxr-x 3 hbase hbase 4.0K Oct 31 14:31 .logs
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 17:10 table1
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 .
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 15:36 users
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 12:00 -ROOT-
drwxrwxr-x 3 hbase hbase 4.0K Oct 30 12:00 .META.
-rwxr-xr-x 1 hbase hbase   38 Oct 30 12:00 hbase.id
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 .hbase.id.crc
-rwxr-xr-x 1 hbase hbase    3 Oct 30 12:00 hbase.version
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 .hbase.version.crc
drwxr-xr-x 3 abhi  users 4.0K Oct 11 08:10 ..

/opt/hbase/data/.oldlogs:
total 8.0K
drwxrwxr-x 2 hbase hbase 4.0K Oct 31 14:32 .
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 ..

/opt/hbase/data/.logs:
total 12K
drwxrwxr-x 2 hbase hbase 4.0K Oct 31 14:31 hbase2,54165,1351719115872
drwxrwxr-x 3 hbase hbase 4.0K Oct 31 14:31 .
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 ..

/opt/hbase/data/.logs/hbase2,54165,1351719115872:
total 8.0K
drwxrwxr-x 2 hbase hbase 4.0K Oct 31 14:31 .
-rwxr-xr-x 1 hbase hbase    0 Oct 31 14:31 .hbase2%2C54165%2C1351719115872.1351719119755.crc
-rwxr-xr-x 1 hbase hbase    0 Oct 31 14:31 hbase2%2C54165%2C1351719115872.1351719119755
drwxrwxr-x 3 hbase hbase 4.0K Oct 31 14:31 ..

/opt/hbase/data/table1:
total 24K
drwxrwxr-x 5 hbase hbase 4.0K Oct 31 14:32 9a35a1636b9d0639e2838c5a8ff180cf
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 17:10 .
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 ..
-rwxr-xr-x 1 hbase hbase  935 Oct 30 17:10 .tableinfo.0000000001
-rw-rw-r-- 1 hbase hbase   16 Oct 30 17:10 ..tableinfo.0000000001.crc
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:10 .tmp

/opt/hbase/data/table1/9a35a1636b9d0639e2838c5a8ff180cf:
total 28K
drwxrwxr-x 5 hbase hbase 4.0K Oct 31 14:32 .
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 cf2
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 cf1
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:10 .oldlogs
-rwxr-xr-x 1 hbase hbase  225 Oct 30 17:10 .regioninfo
-rw-rw-r-- 1 hbase hbase   12 Oct 30 17:10 ..regioninfo.crc
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 17:10 ..

/opt/hbase/data/table1/9a35a1636b9d0639e2838c5a8ff180cf/cf2:
total 16K
drwxrwxr-x 5 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 .
-rwxrwxrwx 1 hbase hbase  790 Oct 30 17:35 cbca7d4b4619453e95e313e54fd12649
-rw-rw-r-- 1 hbase hbase   16 Oct 30 17:35 .cbca7d4b4619453e95e313e54fd12649.crc

/opt/hbase/data/table1/9a35a1636b9d0639e2838c5a8ff180cf/cf1:
total 16K
drwxrwxr-x 5 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 .
-rwxrwxrwx 1 hbase hbase  848 Oct 30 17:35 c11f3c3fe30e437c907e7b4656bbb6a8
-rw-rw-r-- 1 hbase hbase   16 Oct 30 17:35 .c11f3c3fe30e437c907e7b4656bbb6a8.crc

/opt/hbase/data/table1/9a35a1636b9d0639e2838c5a8ff180cf/.oldlogs:
total 16K
drwxrwxr-x 5 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:10 .
-rwxr-xr-x 1 hbase hbase  124 Oct 30 17:10 hlog.1351642227144
-rwxr-xr-x 1 hbase hbase   12 Oct 30 17:10 .hlog.1351642227144.crc

/opt/hbase/data/table1/.tmp:
total 8.0K
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 17:10 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:10 .

/opt/hbase/data/users:
total 24K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 ecff3a77396cba69adea1b1f789ca5a2
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 ..
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 15:36 .
-rwxr-xr-x 1 hbase hbase  515 Oct 30 15:36 .tableinfo.0000000001
-rw-rw-r-- 1 hbase hbase   16 Oct 30 15:36 ..tableinfo.0000000001.crc
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 15:36 .tmp

/opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2:
total 24K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 .
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 info
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 15:36 .oldlogs
-rwxr-xr-x 1 hbase hbase  222 Oct 30 15:36 .regioninfo
-rw-rw-r-- 1 hbase hbase   12 Oct 30 15:36 ..regioninfo.crc
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 15:36 ..

/opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2/info:
total 16K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 .
-rwxrwxrwx 1 hbase hbase 1.3K Oct 30 17:35 4080f890ac4449a2a151d5c4d79f8579
-rw-rw-r-- 1 hbase hbase   20 Oct 30 17:35 .4080f890ac4449a2a151d5c4d79f8579.crc

/opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2/.oldlogs:
total 16K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 15:36 .
-rwxr-xr-x 1 hbase hbase  124 Oct 30 15:36 hlog.1351636576499
-rwxr-xr-x 1 hbase hbase   12 Oct 30 15:36 .hlog.1351636576499.crc

/opt/hbase/data/users/.tmp:
total 8.0K
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 15:36 .
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 15:36 ..

/opt/hbase/data/-ROOT-:
total 24K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 70236052
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 ..
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 12:00 .
-rwxr-xr-x 1 hbase hbase  551 Oct 30 12:00 .tableinfo.0000000001
-rw-rw-r-- 1 hbase hbase   16 Oct 30 12:00 ..tableinfo.0000000001.crc
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 12:00 .tmp

/opt/hbase/data/-ROOT-/70236052:
total 24K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 .
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 info
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 12:00 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 12:00 .oldlogs
-rwxr-xr-x 1 hbase hbase  109 Oct 30 12:00 .regioninfo
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 ..regioninfo.crc

/opt/hbase/data/-ROOT-/70236052/info:
total 32K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 .
-rwxrwxrwx 1 hbase hbase  718 Oct 30 17:35 fb48fa0302be4d37a5b70ffbf039fe9a
-rw-rw-r-- 1 hbase hbase   16 Oct 30 17:35 .fb48fa0302be4d37a5b70ffbf039fe9a.crc
-rwxrwxrwx 1 hbase hbase  718 Oct 30 12:11 a913edee0ac34de490c46ee12175dc02
-rw-rw-r-- 1 hbase hbase   16 Oct 30 12:11 .a913edee0ac34de490c46ee12175dc02.crc
-rwxrwxrwx 1 hbase hbase  714 Oct 30 12:00 c6f09dc3ee6a4150b8e787a747a81707
-rw-rw-r-- 1 hbase hbase   16 Oct 30 12:00 .c6f09dc3ee6a4150b8e787a747a81707.crc

/opt/hbase/data/-ROOT-/70236052/.oldlogs:
total 16K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 12:00 .
-rwxr-xr-x 1 hbase hbase  411 Oct 30 12:00 hlog.1351623609149
-rwxr-xr-x 1 hbase hbase   12 Oct 30 12:00 .hlog.1351623609149.crc

/opt/hbase/data/-ROOT-/.tmp:
total 8.0K
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 12:00 .
drwxrwxr-x 4 hbase hbase 4.0K Oct 30 12:00 ..

/opt/hbase/data/.META.:
total 12K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 1028785192
drwxr-xr-x 8 hbase users 4.0K Oct 30 17:10 ..
drwxrwxr-x 3 hbase hbase 4.0K Oct 30 12:00 .

/opt/hbase/data/.META./1028785192:
total 24K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 .
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 info
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 12:00 .oldlogs
-rwxr-xr-x 1 hbase hbase  111 Oct 30 12:00 .regioninfo
-rw-rw-r-- 1 hbase hbase   12 Oct 30 12:00 ..regioninfo.crc
drwxrwxr-x 3 hbase hbase 4.0K Oct 30 12:00 ..

/opt/hbase/data/.META./1028785192/info:
total 16K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 17:35 .
-rwxrwxrwx 1 hbase hbase 2.8K Oct 30 17:35 de44bdf76ce6477ba3a7da1df0b159df
-rw-rw-r-- 1 hbase hbase   32 Oct 30 17:35 .de44bdf76ce6477ba3a7da1df0b159df.crc

/opt/hbase/data/.META./1028785192/.oldlogs:
total 16K
drwxrwxr-x 4 hbase hbase 4.0K Oct 31 14:32 ..
drwxrwxr-x 2 hbase hbase 4.0K Oct 30 12:00 .
-rwxr-xr-x 1 hbase hbase  124 Oct 30 12:00 hlog.1351623609390
-rwxr-xr-x 1 hbase hbase   12 Oct 30 12:00 .hlog.1351623609390.crc
abhi@hbase2:~$

In the above:
.logs and .oldlogs – contain the Write-Ahead Log (WAL) files that are shared by all regions from that region server

  • The .logs directory has a subdirectory for each RegionServer e.g. /opt/hbase/data/.logs/hbase2,54165,1351719115872.
    RegionServer subdirectory name is of the format [RegionServer Host], [Port], [Server Start Code]

    In each RegionServer subdirectory, there are the HLog files. You can view the contents of a HLog file using the org.apache.hadoop.hbase.regionserver.wal.HLog tool.

    abhi@hbase2:~$ hbase org.apache.hadoop.hbase.regionserver.wal.HLog --dump /opt/hbase/data/.logs/hbase2,54165,1351719115872/hbase2%2C54165%2C1351719115872.1351719119755
    12/11/05 13:45:37 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
    12/11/05 13:45:37 INFO wal.SequenceFileLogReader: Input stream class: org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker, not adjusting length
    Sequence 618 from region 70236052 in table -ROOT-
      Action:
        row: .META.,,1
        column: info:server
        at time: Mon Nov 05 02:01:20 PST 2012
      Action:
        row: .META.,,1
        column: info:serverstartcode
        at time: Mon Nov 05 02:01:20 PST 2012
    Sequence 619 from region 1028785192 in table .META.
      Action:
        row: tbl1,,1351953259243.5ab545fc59596f7784eb179df4654930.
        column: info:server
        at time: Mon Nov 05 02:01:21 PST 2012
      Action:
        row: tbl1,,1351953259243.5ab545fc59596f7784eb179df4654930.
        column: info:serverstartcode
        at time: Mon Nov 05 02:01:21 PST 2012
    
    ... ... ... ... ...
    
    Sequence 637 from region 5ab545fc59596f7784eb179df4654930 in table tbl1
      Action:
        row: row3
        column: cf2:col2
        at time: Mon Nov 05 03:00:53 PST 2012
    Sequence 638 from region 5ab545fc59596f7784eb179df4654930 in table tbl1
      Action:
        row: row3
        column: cf3:col1
        at time: Mon Nov 05 03:00:54 PST 2012
    abhi@hbase2:~$
    
    
  • The .oldlogs directory contains all the old logfiles i.e. the ones that are already stored in the store files

-ROOT- and .META. – contain the files related to the catalog tables
hbase.id and hbase.version – hold the unique ID of the cluster, and the file format respectively

users and table1 – hold the store files for the user-defined tables. Each table has its own directory which has the following contents:

  • .tableinfo file that contains the table and column family schemas
    /opt/hbase/data/users/.tableinfo.0000000001
    You can view the contents of the file as follows:

    abhi@hbase2:~$ cat /opt/hbase/data/users/.tableinfo.0000000001
    MIN_VERSIONS0TTL
    2147483647      BLOCKSIZE65536  IN_MEMORYfalse
    BLOCKCACHEtrue
    
    {NAME => 'users', FAMILIES => [{NAME => 'info', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}
    abhi@hbase2:~$
    
  • Region directories – a directory for each region of a table. The directory name is MD5 hash of the region name
    /opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2

      A Region directory contains

    • .regioninfo – file that contains serialized information of a Region
      /opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2
    • Column-Family directories – a directory for each Column-Family that holds the actual storage file of a table
      /opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2/info

      The store files are in HFile format.
      /opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2/info/4080f890ac4449a2a151d5c4d79f8579

      The figure below describes the path to the actual storage file.

      Path to the Actual Storage File

      NOTE: If you have inserted data in your table and yet you don’t see any storage files under the column-family directory, do a flush on your table i.e. flush 'users'

      We can view the contents of a store file using the org.apache.hadoop.hbase.io.hfile.HFile tool.

      abhi@hbase2:~$ hbase org.apache.hadoop.hbase.io.hfile.HFile -f /opt/hbase/data/users/ecff3a77396cba69adea1b1f789ca5a2/info/4080f890ac4449a2a151d5c4d79f8579 -p
      12/10/31 17:02:04 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
      12/10/31 17:02:04 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
      12/10/31 17:02:04 INFO hfile.CacheConfig: Allocating LruBlockCache with maximum size 247.9m
      K: abhi/info:age/1351726630581/Put/vlen=2 V: 30
      K: abhi/info:name/1351726623818/Put/vlen=8 V: abhishek
      Scanned kv count -> 2
      abhi@hbase2:~$
      

Getting started with HBase

There are quite a few HBase tutorials out there, but the reason I wanted to add another one was for two specific reasons:
1. To document the installation steps (HBase stand-alone mode) for my ready reference in future
2. To highlight the installation issues I faced and how I got around them so that anyone else facing the same can benefit.

Installation Steps

Download and install the latest version of Ubuntu from http://www.ubuntu.com/download

In my case I downloaded and installed Ubuntu 12.04.1 64-bit i.e. ubuntu-12.04.1-desktop-amd64.iso

Download and install Java SDK from http://www.oracle.com/technetwork/java/javase/downloads/index.html

Since Cloudera recommends JDK version 1.6.0_31 (https://ccp.cloudera.com/display/CDH4DOC/Java+Development+Kit+Installation)
I downloaded the same and installed it as follows:

root@ubuntu:~# mkdir /opt/java
root@ubuntu:~# cd /opt/java/
root@ubuntu:/opt/java# chmod +x jdk-6u31-linux-x64.bin 
root@ubuntu:/opt/java# ./jdk-6u31-linux-x64.bin 
... ... ... ...
... ... ... ...
root@ubuntu:/opt/java#
root@ubuntu:/opt/java# ls -lth jdk1.6.0_31/
total 19M
-r--r--r--  1 root root 4.7K Oct  6 14:32 register_zh_CN.html
-r--r--r--  1 root root 5.1K Oct  6 14:32 register.html
-r--r--r--  1 root root 6.5K Oct  6 14:32 register_ja.html
drwxr-xr-x  7 root root 4.0K Oct  6 14:32 jre
drwxr-xr-x  3 root root 4.0K Oct  6 14:32 lib
drwxr-xr-x  7 root root 4.0K Jan 20  2012 db
drwxr-xr-x  3 root root 4.0K Jan 20  2012 include
drwxr-xr-x  9 root root 4.0K Jan 20  2012 sample
drwxr-xr-x 10 root root 4.0K Jan 20  2012 demo
drwxr-xr-x  4 root root 4.0K Jan 20  2012 man
drwxr-xr-x  2 root root 4.0K Jan 20  2012 bin
-r--r--r--  1 root root 3.3K Jan 20  2012 COPYRIGHT
-r--r--r--  1 root root   40 Jan 20  2012 LICENSE
-r--r--r--  1 root root  115 Jan 20  2012 README.html
-r--r--r--  1 root root 165K Jan 20  2012 THIRDPARTYLICENSEREADME.txt
-rw-r--r--  1 root root  19M Jan 20  2012 src.zip
root@ubuntu:/opt/java# 

Set the JAVA_HOME environment variable

root@ubuntu:~# echo $JAVA_HOME
root@ubuntu:~#
root@ubuntu:~# vi .bashrc 

Add the following lines, save and exit:

export JAVA_HOME=/opt/java/jdk1.6.0_31
export PATH=$JAVA_HOME/bin:$PATH

Check

root@ubuntu:~# source .bashrc 
root@ubuntu:~# echo $JAVA_HOME
/opt/java/jdk1.6.0_31

root@ubuntu:~#
root@ubuntu:~# java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
root@ubuntu:~# 

Configure the CDH repositories

root@ubuntu:~# mkdir /opt/hbase
root@ubuntu:~# cd /opt/hbase/

Download http://archive.cloudera.com/cdh4/one-clickinstall/precise/amd64/cdh4-repository_1.0_all.deb into /opt/hbase

root@ubuntu:/opt/hbase# ls -lth
total 4.0K
-rw-r--r-- 1 root root 3.3K Oct  6 14:38 cdh4-repository_1.0_all.deb
root@ubuntu:/opt/hbase# 
root@ubuntu:/opt/hbase# sudo dpkg -i cdh4-repository_1.0_all.deb 
Selecting previously unselected package cdh4-repository.
(Reading database ... 140999 files and directories currently installed.)
Unpacking cdh4-repository (from cdh4-repository_1.0_all.deb) ...
Setting up cdh4-repository (1.0) ...
gpg: keyring `/etc/apt/secring.gpg' created
gpg: keyring `/etc/apt/trusted.gpg.d/cloudera-cdh4.gpg' created
gpg: key 02A818DD: public key "Cloudera Apt Repository" imported
gpg: Total number processed: 1
gpg:               imported: 1
root@ubuntu:/opt/hbase# 

Install HBase

root@ubuntu:/opt/hbase# sudo apt-get update
Ign http://archive.cloudera.com precise-cdh4 InRelease                                                          
Ign http://security.ubuntu.com precise-security InRelease                                                       
Ign http://extras.ubuntu.com precise InRelease                                                                  
Get:1 http://archive.cloudera.com precise-cdh4 Release.gpg [198 B]                                  
Ign http://us.archive.ubuntu.com precise InRelease                                               
Ign http://us.archive.ubuntu.com precise-updates InRelease           
Ign http://us.archive.ubuntu.com precise-backports InRelease         
Hit http://extras.ubuntu.com precise Release.gpg                     
Hit http://security.ubuntu.com precise-security Release.gpg          
Get:2 http://archive.cloudera.com precise-cdh4 Release [1,682 B]     
Hit http://us.archive.ubuntu.com precise Release.gpg                                                   
Hit http://extras.ubuntu.com precise Release                                                
Hit http://security.ubuntu.com precise-security Release                                      
Get:3 http://archive.cloudera.com precise-cdh4/contrib Sources [6,382 B]                     
Hit http://us.archive.ubuntu.com precise-updates Release.gpg                                          
Hit http://us.archive.ubuntu.com precise-backports Release.gpg                              
Hit http://extras.ubuntu.com precise/main Sources                                           
Get:4 http://archive.cloudera.com precise-cdh4/contrib amd64 Packages [16.8 kB]             
Hit http://security.ubuntu.com precise-security/main Sources                                          
Hit http://us.archive.ubuntu.com precise Release                                                      
Ign http://archive.cloudera.com precise-cdh4/contrib TranslationIndex                                           
Hit http://extras.ubuntu.com precise/main amd64 Packages                                    
Hit http://extras.ubuntu.com precise/main i386 Packages                                     
Hit http://us.archive.ubuntu.com precise-updates Release                                                        
Ign http://extras.ubuntu.com precise/main TranslationIndex                                                      
Hit http://us.archive.ubuntu.com precise-backports Release                                                      
Ign http://archive.cloudera.com precise-cdh4/contrib Translation-en_US                                          
Ign http://archive.cloudera.com precise-cdh4/contrib Translation-en                         
Ign http://extras.ubuntu.com precise/main Translation-en_US                                                     
Ign http://extras.ubuntu.com precise/main Translation-en                                                        
Hit http://us.archive.ubuntu.com precise/main Sources                                                           
Hit http://us.archive.ubuntu.com precise/restricted Sources                                                     
Hit http://us.archive.ubuntu.com precise/universe Sources                                                       
Hit http://us.archive.ubuntu.com precise/multiverse Sources                                                     
Hit http://us.archive.ubuntu.com precise/main amd64 Packages                                                    
Hit http://security.ubuntu.com precise-security/restricted Sources                                              
Hit http://security.ubuntu.com precise-security/universe Sources                                                
Hit http://us.archive.ubuntu.com precise/restricted amd64 Packages                                              
Hit http://security.ubuntu.com precise-security/multiverse Sources                                              
Hit http://security.ubuntu.com precise-security/main amd64 Packages                                             
Hit http://security.ubuntu.com precise-security/restricted amd64 Packages                                       
Hit http://security.ubuntu.com precise-security/universe amd64 Packages                                         
Hit http://us.archive.ubuntu.com precise/universe amd64 Packages                                                
Hit http://security.ubuntu.com precise-security/multiverse amd64 Packages                                       
Hit http://security.ubuntu.com precise-security/main i386 Packages                                              
Hit http://security.ubuntu.com precise-security/restricted i386 Packages                                        
Hit http://us.archive.ubuntu.com precise/multiverse amd64 Packages                                              
Hit http://security.ubuntu.com precise-security/universe i386 Packages                                          
Hit http://security.ubuntu.com precise-security/multiverse i386 Packages                                        
Hit http://security.ubuntu.com precise-security/main TranslationIndex                                           
Hit http://security.ubuntu.com precise-security/multiverse TranslationIndex                                     
Hit http://security.ubuntu.com precise-security/restricted TranslationIndex                                     
Hit http://security.ubuntu.com precise-security/universe TranslationIndex                                       
Hit http://us.archive.ubuntu.com precise/main i386 Packages                                                     
Hit http://security.ubuntu.com precise-security/main Translation-en                                             
Hit http://security.ubuntu.com precise-security/multiverse Translation-en                                       
Hit http://security.ubuntu.com precise-security/restricted Translation-en                                       
Hit http://us.archive.ubuntu.com precise/restricted i386 Packages                                               
Hit http://security.ubuntu.com precise-security/universe Translation-en                                         
Hit http://us.archive.ubuntu.com precise/universe i386 Packages                                                 
Hit http://us.archive.ubuntu.com precise/multiverse i386 Packages
Hit http://us.archive.ubuntu.com precise/main TranslationIndex
Hit http://us.archive.ubuntu.com precise/multiverse TranslationIndex
Hit http://us.archive.ubuntu.com precise/restricted TranslationIndex
Hit http://us.archive.ubuntu.com precise/universe TranslationIndex
Hit http://us.archive.ubuntu.com precise-updates/main Sources
Hit http://us.archive.ubuntu.com precise-updates/restricted Sources
Hit http://us.archive.ubuntu.com precise-updates/universe Sources
Hit http://us.archive.ubuntu.com precise-updates/multiverse Sources
Hit http://us.archive.ubuntu.com precise-updates/main amd64 Packages
Hit http://us.archive.ubuntu.com precise-updates/restricted amd64 Packages
Hit http://us.archive.ubuntu.com precise-updates/universe amd64 Packages
Hit http://us.archive.ubuntu.com precise-updates/multiverse amd64 Packages
Hit http://us.archive.ubuntu.com precise-updates/main i386 Packages
Hit http://us.archive.ubuntu.com precise-updates/restricted i386 Packages
Hit http://us.archive.ubuntu.com precise-updates/universe i386 Packages
Hit http://us.archive.ubuntu.com precise-updates/multiverse i386 Packages
Hit http://us.archive.ubuntu.com precise-updates/main TranslationIndex
Hit http://us.archive.ubuntu.com precise-updates/multiverse TranslationIndex
Hit http://us.archive.ubuntu.com precise-updates/restricted TranslationIndex
Hit http://us.archive.ubuntu.com precise-updates/universe TranslationIndex
Hit http://us.archive.ubuntu.com precise-backports/main Sources
Hit http://us.archive.ubuntu.com precise-backports/restricted Sources
Hit http://us.archive.ubuntu.com precise-backports/universe Sources
Hit http://us.archive.ubuntu.com precise-backports/multiverse Sources
Hit http://us.archive.ubuntu.com precise-backports/main amd64 Packages
Hit http://us.archive.ubuntu.com precise-backports/restricted amd64 Packages
Hit http://us.archive.ubuntu.com precise-backports/universe amd64 Packages
Hit http://us.archive.ubuntu.com precise-backports/multiverse amd64 Packages
Hit http://us.archive.ubuntu.com precise-backports/main i386 Packages
Hit http://us.archive.ubuntu.com precise-backports/restricted i386 Packages
Hit http://us.archive.ubuntu.com precise-backports/universe i386 Packages
Hit http://us.archive.ubuntu.com precise-backports/multiverse i386 Packages
Hit http://us.archive.ubuntu.com precise-backports/main TranslationIndex
Hit http://us.archive.ubuntu.com precise-backports/multiverse TranslationIndex
Hit http://us.archive.ubuntu.com precise-backports/restricted TranslationIndex
Hit http://us.archive.ubuntu.com precise-backports/universe TranslationIndex
Hit http://us.archive.ubuntu.com precise/main Translation-en
Hit http://us.archive.ubuntu.com precise/multiverse Translation-en
Hit http://us.archive.ubuntu.com precise/restricted Translation-en
Hit http://us.archive.ubuntu.com precise/universe Translation-en
Hit http://us.archive.ubuntu.com precise-updates/main Translation-en
Hit http://us.archive.ubuntu.com precise-updates/multiverse Translation-en
Hit http://us.archive.ubuntu.com precise-updates/restricted Translation-en
Hit http://us.archive.ubuntu.com precise-updates/universe Translation-en
Hit http://us.archive.ubuntu.com precise-backports/main Translation-en
Hit http://us.archive.ubuntu.com precise-backports/multiverse Translation-en
Hit http://us.archive.ubuntu.com precise-backports/restricted Translation-en
Hit http://us.archive.ubuntu.com precise-backports/universe Translation-en
Fetched 25.1 kB in 30s (827 B/s)
Reading package lists... Done
root@ubuntu:/opt/hbase# 
root@ubuntu:/opt/hbase# sudo apt-get install hbase hbase-master
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  bigtop-jsvc bigtop-utils hadoop hadoop-hdfs libopts25 ntp zookeeper
Suggested packages:
  ntp-doc
The following NEW packages will be installed:
  bigtop-jsvc bigtop-utils hadoop hadoop-hdfs hbase hbase-master libopts25 ntp zookeeper
0 upgraded, 9 newly installed, 0 to remove and 119 not upgraded.
Need to get 70.1 MB of archives.
After this operation, 82.3 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libopts25 amd64 1:5.12-0.1ubuntu1 [59.9 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main ntp amd64 1:4.2.6.p3+dfsg-1ubuntu3.1 [612 kB]
Get:3 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/ precise-cdh4/contrib bigtop-jsvc amd64 0.4+352-1.cdh4.1.0.p0.29~precise-cdh4.1.0 [53.2 kB]
Get:4 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/ precise-cdh4/contrib bigtop-utils all 0.4+352-1.cdh4.1.0.p0.28~precise-cdh4.1.0 [2,004 B]
Get:5 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/ precise-cdh4/contrib zookeeper all 3.4.3+25-1.cdh4.1.0.p0.28~precise-cdh4.1.0 [4,087 kB]
Get:6 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/ precise-cdh4/contrib hadoop all 2.0.0+541-1.cdh4.1.0.p0.27~precise-cdh4.1.0 [16.6 MB]
Get:7 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/ precise-cdh4/contrib hadoop-hdfs all 2.0.0+541-1.cdh4.1.0.p0.27~precise-cdh4.1.0 [12.7 MB]
Get:8 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/ precise-cdh4/contrib hbase all 0.92.1+154-1.cdh4.1.0.p0.23~precise-cdh4.1.0 [35.9 MB]
Get:9 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/ precise-cdh4/contrib hbase-master all 0.92.1+154-1.cdh4.1.0.p0.23~precise-cdh4.1.0 [19.2 kB]
Fetched 70.1 MB in 8min 41s (134 kB/s)                                                                          
Selecting previously unselected package libopts25.
(Reading database ... 141003 files and directories currently installed.)
Unpacking libopts25 (from .../libopts25_1%3a5.12-0.1ubuntu1_amd64.deb) ...
Selecting previously unselected package ntp.
Unpacking ntp (from .../ntp_1%3a4.2.6.p3+dfsg-1ubuntu3.1_amd64.deb) ...
Selecting previously unselected package bigtop-jsvc.
Unpacking bigtop-jsvc (from .../bigtop-jsvc_0.4+352-1.cdh4.1.0.p0.29~precise-cdh4.1.0_amd64.deb) ...
Selecting previously unselected package bigtop-utils.
Unpacking bigtop-utils (from .../bigtop-utils_0.4+352-1.cdh4.1.0.p0.28~precise-cdh4.1.0_all.deb) ...
Selecting previously unselected package zookeeper.
Unpacking zookeeper (from .../zookeeper_3.4.3+25-1.cdh4.1.0.p0.28~precise-cdh4.1.0_all.deb) ...
Selecting previously unselected package hadoop.
Unpacking hadoop (from .../hadoop_2.0.0+541-1.cdh4.1.0.p0.27~precise-cdh4.1.0_all.deb) ...
Selecting previously unselected package hadoop-hdfs.
Unpacking hadoop-hdfs (from .../hadoop-hdfs_2.0.0+541-1.cdh4.1.0.p0.27~precise-cdh4.1.0_all.deb) ...
Selecting previously unselected package hbase.
Unpacking hbase (from .../hbase_0.92.1+154-1.cdh4.1.0.p0.23~precise-cdh4.1.0_all.deb) ...
Selecting previously unselected package hbase-master.
Unpacking hbase-master (from .../hbase-master_0.92.1+154-1.cdh4.1.0.p0.23~precise-cdh4.1.0_all.deb) ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up libopts25 (1:5.12-0.1ubuntu1) ...
Setting up ntp (1:4.2.6.p3+dfsg-1ubuntu3.1) ...
 * Starting NTP server ntpd                                                                               [ OK ] 
Setting up bigtop-jsvc (0.4+352-1.cdh4.1.0.p0.29~precise-cdh4.1.0) ...
Setting up bigtop-utils (0.4+352-1.cdh4.1.0.p0.28~precise-cdh4.1.0) ...
Setting up zookeeper (3.4.3+25-1.cdh4.1.0.p0.28~precise-cdh4.1.0) ...
update-alternatives: using /etc/zookeeper/conf.dist to provide /etc/zookeeper/conf (zookeeper-conf) in auto mode.
Setting up hadoop (2.0.0+541-1.cdh4.1.0.p0.27~precise-cdh4.1.0) ...
update-alternatives: using /etc/hadoop/conf.empty to provide /etc/hadoop/conf (hadoop-conf) in auto mode.
Setting up hadoop-hdfs (2.0.0+541-1.cdh4.1.0.p0.27~precise-cdh4.1.0) ...
Setting up hbase (0.92.1+154-1.cdh4.1.0.p0.23~precise-cdh4.1.0) ...
update-alternatives: using /etc/hbase/conf.dist to provide /etc/hbase/conf (hbase-conf) in auto mode.
Setting up hbase-master (0.92.1+154-1.cdh4.1.0.p0.23~precise-cdh4.1.0) ...
Starting Hadoop HBase master daemon: +======================================================================+
|      Error: JAVA_HOME is not set and Java could not be found         |
+----------------------------------------------------------------------+
| Please download the latest Sun JDK from the Sun Java web site        |
|       > http://java.sun.com/javase/downloads/ <                      |
|                                                                      |
| HBase requires Java 1.6 or later.                                    |
| NOTE: This script will find Sun Java whether you install using the   |
|       binary or the RPM based installer.                             |
+======================================================================+
invoke-rc.d: initscript hbase-master, action &quot;start&quot; failed.
dpkg: error processing hbase-master (--configure):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
 hbase-master
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@ubuntu:/opt/hbase# 

I got the above error the first time so I checked if JAVA_HOME is set properly.

root@ubuntu:/opt/hbase# echo $JAVA_HOME
/opt/java/jdk1.6.0_31

Since it seems ok, I decided to directly set JAVA_HOME in the hbase-master script

root@ubuntu:/opt/hbase# vi /etc/init.d/hbase-master

# Add this
export JAVA_HOME=/opt/java/jdk1.6.0_31

Lets try installing again

root@ubuntu:/opt/hbase# sudo apt-get install hbase hbase-master
Reading package lists... Done
Building dependency tree       
Reading state information... Done
hbase is already the newest version.
hbase-master is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 119 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? Y
Setting up hbase-master (0.92.1+154-1.cdh4.1.0.p0.23~precise-cdh4.1.0) ...
Starting Hadoop HBase master daemon: starting master, logging to /var/log/hbase/hbase-hbase-master-ubuntu.out
hbase-master.
root@ubuntu:/opt/hbase# 

This time everything went well.
View the list of HBase configuration files.

root@ubuntu:/opt/hbase# ls -lth /etc/hbase/conf/
total 28K
-rw-r--r-- 1 root root 1.1K Oct 30 12:06 hbase-site.xml
-rw-r--r-- 1 root root 2.3K Sep 29 11:54 hadoop-metrics.properties
-rw-r--r-- 1 root root 4.2K Sep 29 11:54 hbase-env.sh
-rw-r--r-- 1 root root 2.2K Sep 29 11:54 hbase-policy.xml
-rw-r--r-- 1 root root 2.5K Sep 29 11:54 log4j.properties
-rw-r--r-- 1 root root   10 Sep 29 11:54 regionservers
root@ubuntu:/opt/hbase# cat /etc/hbase/conf/regionservers
localhost
root@ubuntu:/opt/hbase#

Lets invoke the HBase shell and test.

root@ubuntu:/opt/hbase# hbase shell
12/10/06 15:07:20 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 0.92.1-cdh4.1.0, rUnknown, Sat Sep 29 11:55:59 PDT 2012

hbase(main):001:0> status
1 servers, 0 dead, 3.0000 average load

hbase(main):001:0> list
TABLE                                                                                                            
0 row(s) in 0.6370 seconds

hbase(main):002:0> 

hbase(main):002:0> create 'table1','cf1'


^Croot@ubuntu:/opt/hbase# 
root@ubuntu:/opt/hbase# 

Here I encountered the second issue. For some reason the HBase shell would hang.
After googling around for quite some time I found a fix.

Update the /etc/hosts file and ensure that there is no 127.0.1.1 that points to localhost and ubuntu
and comment out the ipv6 lines

root@ubuntu:/opt/hbase# vi /etc/hosts

192.168.38.137  hbase2

127.0.0.1       localhost ubuntu

# The following lines are desirable for IPv6 capable hosts
#::1     ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

Also disable ipv6 as follows:

root@ubuntu:~# vi /etc/sysctl.conf 

and add the following lines to the end of it:

# Abhi: Disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Now restart the system

root@ubuntu:/opt/hbase# /etc/init.d/hbase-master restart
Restarting Hadoop HBase master daemon: stopping master...
Starting Hadoop HBase master daemon: starting master, logging to /var/log/hbase/hbase-hbase-master-ubuntu.out
hbase-master.
root@ubuntu:/opt/hbase# 

Check if its running

root@ubuntu:/opt/hbase# jps
16353 Jps
15654 HMaster

Open the Hbase shell and lets play around with few commands

root@ubuntu:/opt/hbase# 
root@ubuntu:/opt/hbase# hbase shell
12/10/06 15:35:18 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 0.92.1-cdh4.1.0, rUnknown, Sat Sep 29 11:55:59 PDT 2012

hbase(main):007:0* list
TABLE                                                                                                            
0 row(s) in 0.0040 seconds

hbase(main):008:0> create 'table1','cf1'
0 row(s) in 1.0880 seconds

hbase(main):009:0> list
TABLE                                                                                                            
table1                                                                                                           
1 row(s) in 0.0160 seconds

hbase(main):010:0> scan 'table1'
ROW                           COLUMN+CELL                                                                        
0 row(s) in 0.0200 seconds

hbase(main):012:0> put 'table1','row1','cf1:greeting','Hello'
0 row(s) in 0.0590 seconds

hbase(main):013:0> put 'table1','row1','cf1:name','World'
0 row(s) in 0.0110 seconds

hbase(main):014:0> scan 'table1'
ROW                           COLUMN+CELL                                                                        
 row1                         column=cf1:greeting, timestamp=1349563833359, value=Hello                          
 row1                         column=cf1:name, timestamp=1349563858582, value=World                              
1 row(s) in 0.0350 seconds

hbase(main):016:0> get 'table1','row1'
COLUMN                        CELL                                                                               
 cf1:greeting                 timestamp=1349563833359, value=Hello                                               
 cf1:name                     timestamp=1349563858582, value=World                                               
2 row(s) in 0.0300 seconds

hbase(main):017:0> put 'table1','row2','cf1:greeting','Hi'
0 row(s) in 0.0140 seconds

hbase(main):018:0> put 'table1','row2','cf1:name','Abhi'
0 row(s) in 0.0080 seconds

hbase(main):019:0> scan 'table1'
ROW                           COLUMN+CELL                                                                        
 row1                         column=cf1:greeting, timestamp=1349563833359, value=Hello                          
 row1                         column=cf1:name, timestamp=1349563858582, value=World                              
 row2                         column=cf1:greeting, timestamp=1349563961204, value=Hi                             
 row2                         column=cf1:name, timestamp=1349563973437, value=Abhi                               
2 row(s) in 0.0730 seconds

hbase(main):020:0> get 'table1','row2'
COLUMN                        CELL                                                                               
 cf1:greeting                 timestamp=1349563961204, value=Hi                                                  
 cf1:name                     timestamp=1349563973437, value=Abhi                                                
2 row(s) in 0.0080 seconds

hbase(main):021:0> 

You can open a browser and go to http://localhost:60010/ to access the HBase monitoring WebUI

HBase WebUI

Updated on October 31, 2012
Note: I have changed the hostname of my system from ‘ubuntu’ to ‘hbase2’

Set the HBase Root Directory

Although we are able to play around with HBase – create tables, put and get data etc. the data will get deleted once we restart the system as it is transient. In the stand-alone mode everything is executed within a single Java process and the data/files get stored under /tmp by default. Most OS clear /tmp on reboot thereby removing all the data. To make the data persistent we need to edit the hbase-site.xml file and set the root directory.

abhi@hbase2:~$ sudo mkdir /opt/hbase/data/
abhi@hbase2:~$ sudo chown -cRvf hbase:users /opt/hbase/data/
abhi@hbase2:~$ ls -lth /opt/hbase/
total 8.0K
drwxr-xr-x 7 hbase users 4.0K Oct 30 12:47 data
abhi@hbase2:~$
abhi@hbase2:~$ sudo vi /etc/hbase/conf/hbase-site.xml

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///opt/hbase/data</value>
    </property>
</configuration>

Restart hbase-master.

abhi@hbase2:~$ sudo /etc/init.d/hbase-master restart

Now when you create tables and enter data, the data will persist even after system restart.
Lets create a table and enter data.

hbase(main):005:0> create 'users','info'
0 row(s) in 1.1180 seconds

hbase(main):006:0> list
TABLE
users
1 row(s) in 0.0090 seconds

hbase(main):007:0> put 'users','abhi','info:name','abhishek'
0 row(s) in 0.0660 seconds

hbase(main):008:0> put 'users','abhi','info:age','30'
0 row(s) in 0.0110 seconds

hbase(main):009:0> scan 'users'
ROW                                         COLUMN+CELL
 abhi                                       column=info:age, timestamp=1351626512340, value=30
 abhi                                       column=info:name, timestamp=1351626501011, value=abhishek
1 row(s) in 0.0350 seconds

hbase(main):010:0> flush 'users'
0 row(s) in 0.0750 seconds

hbase(main):011:0>

Note: Always do a flush on your tables so that the data gets written as files in your filesystem.

In my next post we’ll see how HBase persists the data physically on the filesystem as files and directories.

Java Plugin for Firefox on Linux

I hit a page that had a Java applet and got the following “Missing Plugin” message.

Basically, my browser – firefox was unable to locate a Java Plugin needed to execute the applet on the page.
It also gave me an option to “install the missing plugin” which essentially involved downloading a complete JRE which would take time.
However, since I already had the latest JRE installed on my system, this is how I went about configuring firefox to use the same.

1. View the contents of the firefox plugins folder to look for existing/older Java plugins (if any)

abhi@abhiltlnx(~)$ type firefox
firefox is /usr/bin/firefox
abhi@abhiltlnx(~)$ ls -ll /usr/bin/firefox
lrwxrwxrwx 1 root root 25 2008-02-08 03:05 /usr/bin/firefox -&gt; ../lib/firefox/firefox.sh
abhi@abhiltlnx(~)$ ls -lth /usr/lib/firefox/
total 12M
drwxr-xr-x 2 root root 4.0K 2008-02-08 03:05 icons
drwxr-xr-x 2 root root 4.0K 2008-02-08 03:05 plugins
drwxr-xr-x 6 root root 4.0K 2008-02-08 03:05 res
drwxr-xr-x 2 root root 4.0K 2008-02-08 03:05 searchplugins
drwxr-xr-x 2 root root 4.0K 2008-02-08 03:05 greprefs
drwxr-xr-x 3 root root 4.0K 2008-02-08 03:05 chrome
drwxr-xr-x 2 root root 4.0K 2008-02-08 03:05 components
drwxr-xr-x 5 root root 4.0K 2008-02-08 03:05 defaults
drwxr-xr-x 2 root root 4.0K 2008-02-08 03:05 dictionaries
drwxr-xr-x 5 root root 4.0K 2008-02-08 03:05 extensions
-rwxr-xr-x 1 root root 9.4M 2007-09-25 00:22 firefox-bin
-rwxr-xr-x 1 root root  14K 2007-09-25 00:22 mozilla-xremote-client
-rwxr-xr-x 1 root root 107K 2007-09-25 00:22 libxpcom_compat.so
-rwxr-xr-x 1 root root 798K 2007-09-25 00:22 libxpcom_core.so
-rwxr-xr-x 1 root root 9.6K 2007-09-25 00:22 libxpcom.so
-rwxr-xr-x 1 root root  14K 2007-09-25 00:22 libxpistub.so
-rwxr-xr-x 1 root root  62K 2007-09-25 00:22 updater
-rwxr-xr-x 1 root root 621K 2007-09-25 00:22 libmozjs.so
-rwxr-xr-x 1 root root  22K 2007-09-25 00:22 xpicleanup
-rw-r--r-- 1 root root  158 2007-09-25 00:22 browserconfig.properties
-rwxr-xr-x 1 root root 6.1K 2007-09-25 00:22 firefox.sh
-rw-r--r-- 1 root root  177 2007-09-25 00:19 readme.txt
-rwxr-xr-x 1 root root  11K 2007-09-25 00:19 run-mozilla.sh
-rw-r--r-- 1 root root  145 2007-09-25 00:19 updater.ini
abhi@abhiltlnx(~)$ ls -lth /usr/lib/firefox/plugins/
total 24K
-rwxr-xr-x 1 root root 22K 2007-09-25 00:22 libnullplugin.so

 

2. Locate the Java plugin library file in the installed JDK/JRE

The java plugin file will be – $JRE_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so

abhi@abhiltlnx(~)$ type java
java is hashed (/usr/bin/java)
abhi@abhiltlnx(~)$ ls -ll /usr/bin/java
lrwxrwxrwx 1 root root 30 2008-02-17 06:22 /usr/bin/java -&gt; /opt/java/jdk1.6.0_04/bin/java
abhi@abhiltlnx(~)$ cd /opt/java/jdk1.6.0_04/
abhi@abhiltlnx(/opt/java/jdk1.6.0_04)$ ls -lth jre/plugin/i386/ns7/
total 140K
-rwxr-xr-x 1 root root 134K 2007-12-14 15:04 libjavaplugin_oji.so
abhi@abhiltlnx(/opt/java/jdk1.6.0_04)$

 

3. Create a soft/symbolic link to the java plugin file in the firefox plugins folder.

Note: root access needed… use sudo.

abhi@abhiltlnx(/opt/java/jdk1.6.0_04)$ sudo ln -s jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/plugins/
root's password:
abhi@abhiltlnx(/opt/java/jdk1.6.0_04)$ ls -lth /usr/lib/firefox/plugins/
total 28K
lrwxrwxrwx 1 root root  62 2008-02-26 00:54 libjavaplugin_oji.so -&gt; /opt/java/jdk1.6.0_04/jre/plugin/i386/ns7/libjavaplugin_oji.so
-rwxr-xr-x 1 root root 22K 2007-09-25 00:22 libnullplugin.so
abhi@abhiltlnx(/opt/java/jdk1.6.0_04)$

Exit and restart firefox. You should be able to view the applet on the page.

If you have any issues, make sure that Java has been enabled in the content tab of the firefox preferences dialog (Edit -> Preferences -> Content)

4. View Java Console

In order to view any System.out or System.err messages from the applet, configure the Java Control Panel

abhi@abhiltlnx(/opt/java/jdk1.6.0_04/bin)$ javaws -viewer &amp;
[1] 14233
abhi@abhiltlnx(/opt/java/jdk1.6.0_04/bin)$

Restart firefox and now when an applet gets executed, you’ll view the Java Console with all the messages.

Resources:

To learn more:

HotSpot JVM Options

There are a number of parameters/options you can provide while creating a Java HotSpot VM.
The options fall under the following 3 categories:

  • Standard – To list out the standard options do: java -help

    abhi@abhiltlnx(~)# java -help
    Usage: java [-options] class [args...]
    (to execute a class)
    or  java [-options] -jar jarfile [args...]
    (to execute a jar file)
    where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
    The default VM is client.
    -cp 
    -classpath 
    A : separated list of directories, JAR archives,
    and ZIP archives to search for class files.
    -D=
    set a system property
    -verbose[:class|gc|jni]
    enable verbose output
    -version      print product version and exit
    -version:
    require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
    include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:...|:]
    -enableassertions[:...|:]
    enable assertions
    -da[:...|:]
    -disableassertions[:...|:]
    disable assertions
    -esa | -enablesystemassertions
    enable system assertions
    -dsa | -disablesystemassertions
    disable system assertions
    -agentlib:[=]
    load native agent library , e.g. -agentlib:hprof
    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:[=]
    load native agent library by full pathname
    -javaagent:[=]
    load Java programming language agent, see java.lang.instrument
    -splash:
    show splash screen with specified image
    
  • Non-Standard – To list them out do: java -X

    abhi@abhiltlnx(~)# java -X
    -Xmixed           mixed mode execution (default)
    -Xint             interpreted mode execution only
    -Xbootclasspath:
    set search path for bootstrap classes and resources
    -Xbootclasspath/a:
    append to end of bootstrap class path
    -Xbootclasspath/p:
    prepend in front of bootstrap class path
    -Xnoclassgc       disable class garbage collection
    -Xincgc           enable incremental garbage collection
    -Xloggc:    log GC status to a file with time stamps
    -Xbatch           disable background compilation
    -Xms        set initial Java heap size
    -Xmx        set maximum Java heap size
    -Xss        set java thread stack size
    -Xprof            output cpu profiling data
    -Xfuture          enable strictest checks, anticipating future default
    -Xrs              reduce use of OS signals by Java/VM (see documentation)
    -Xcheck:jni       perform additional checks for JNI functions
    -Xshare:off       do not attempt to use shared class data
    -Xshare:auto      use shared class data if possible (default)
    -Xshare:on        require using shared class data, otherwise fail.
    The -X options are non-standard and subject to change without notice.
    
  • Hidden – Well as the name suggests, they are hidden. These options typically have a -XX prefix

To learn more about the HotSpot JVM options – http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

I found a great resource that lists various JVM versions and the corresponding options.
http://blogs.sun.com/watt/resource/jvm-options-list.html

NetBeans 6 and Java 6 on openSUSE 10.3

I’ve been struggling to install NetBeans 6 on my openSUSE 10.3.
The installer would startup alright but would crash soon after displaying the bug-buddy dialog.
After few attempts, I ran the installer using Java 5. This time the installer gave the following error:

java: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c-&gt;xlib.lock' failed.

After googling the above I found the following bug – http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373.
I also found the workaround on the same page i.e. set the following environment variable:

export LIBXCB_ALLOW_SLOPPY_LOCK=1

After implementing the workaround, I was able to install NetBeans and run it.
However, once I upgraded my JDK to Java 6 update 4, and executed NetBeans, the splash screen would appear for a brief moment and then it would crash displaying the bug-buddy dialog.

abhi@abhiltlnx(~)# /opt/netbeans/netbeans-6.0/bin/netbeans --jdkhome /opt/java/jdk1.6.0_04
/usr/share/themes/Chlorophyll/gtk-2.0/gtkrc:47: Clearlooks configuration option "menuitemstyle" is not supported and will be ignored.
/usr/share/themes/Chlorophyll/gtk-2.0/gtkrc:48: Clearlooks configuration option "listviewitemstyle" is not supported and will be ignored.
/usr/share/themes/Chlorophyll/gtk-2.0/gtkrc:49: Clearlooks configuration option "progressbarstyle" is not supported and will be ignored.
/usr/share/themes/Chlorophyll/gtk-2.0/gtkrc:47: Clearlooks configuration option "menuitemstyle" is not supported and will be ignored.
/usr/share/themes/Chlorophyll/gtk-2.0/gtkrc:48: Clearlooks configuration option "listviewitemstyle" is not supported and will be ignored.
/usr/share/themes/Chlorophyll/gtk-2.0/gtkrc:49: Clearlooks configuration option "progressbarstyle" is not supported and will be ignored.
/usr/lib/: No such file or directory.

Following is the bug report that got generated.

System: Linux 2.6.22.5-31-default #1 SMP 2007/09/21 22:29:00 UTC i686
X Vendor: The X.Org Foundation
X Vendor Release: 70000001
Selinux: No
Accessibility: Disabled
GTK+ Theme: Chlorophyll
Icon Theme: Industrial
Memory status: size: 1003343872 vsize: 1003343872 resident: 48775168 share: 25587712 rss: 74362880 rss_rlim: 900776960
CPU usage: start_time: 1203194106 rtime: 812 utime: 647 stime: 165 cutime:0 cstime: 2 timeout: 0 it_real_value: 0 frequency: 100
Backtrace was generated from '/usr/lib/'
[?1034h(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb7de36c0 (LWP 2395)]
[New Thread 0xb1b0fb90 (LWP 2510)]
[New Thread 0xb2ba9b90 (LWP 2499)]
[New Thread 0xb3656b90 (LWP 2479)]
[New Thread 0xb3857b90 (LWP 2478)]
[New Thread 0xb3a58b90 (LWP 2477)]
[New Thread 0xb3d04b90 (LWP 2476)]
[New Thread 0xb41fbb90 (LWP 2475)]
[New Thread 0xb43fcb90 (LWP 2474)]
[New Thread 0xb45fdb90 (LWP 2473)]
[New Thread 0xb47feb90 (LWP 2472)]
[New Thread 0xb49ffb90 (LWP 2405)]
[New Thread 0xb4e2ab90 (LWP 2404)]
[New Thread 0xb502bb90 (LWP 2403)]
[New Thread 0xb50acb90 (LWP 2402)]
[New Thread 0xb52adb90 (LWP 2401)]
[New Thread 0xb54f4b90 (LWP 2400)]
[New Thread 0xb56f5b90 (LWP 2399)]
[New Thread 0xb5776b90 (LWP 2398)]
[New Thread 0xb7dbdb90 (LWP 2397)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0xffffe410 in __kernel_vsyscall ()
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7f2b575 in pthread_join () from /lib/libpthread.so.0
#2  0x0804dce8 in ContinueInNewThread ()
#3  0x080497f6 in main ()
Thread 20 (Thread 0xb7dbdb90 (LWP 2397)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0x080588f4 in ?? ()
No symbol table info available.
#9  0xb7dbcabc in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 19 (Thread 0xb5776b90 (LWP 2398)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7e8ef3c in sched_yield () from /lib/libc.so.6
No symbol table info available.
#2  0x063432c5 in SafepointSynchronize::begin ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#3  0x063caeb3 in VMThread::loop ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x063caa9f in VMThread::run ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x06311029 in java_start ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0xb7f2a192 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0xb7ea802e in clone () from /lib/libc.so.6
No symbol table info available.
Thread 18 (Thread 0xb56f5b90 (LWP 2399)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0x080808f4 in ?? ()
No symbol table info available.
#9  0xb56f4f40 in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 17 (Thread 0xb54f4b90 (LWP 2400)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x062ff1de in Monitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x063cb525 in VMThread::execute ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x060dd073 in BiasedLocking::revoke_and_rebias ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0636dda5 in ObjectSynchronizer::fast_enter ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0x0620eaee in InterpreterRuntime::monitorenter ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#8  0xb5b2558a in ?? ()
No symbol table info available.
#9  0x08081800 in ?? ()
No symbol table info available.
#10 0xb54f3bf4 in ?? ()
No symbol table info available.
#11 0xb5b2555f in ?? ()
No symbol table info available.
#12 0xb4a3348d in ?? ()
No symbol table info available.
#13 0x6197c398 in ?? ()
No symbol table info available.
#14 0xb54f3bf4 in ?? ()
No symbol table info available.
#15 0x9430eac4 in ?? ()
No symbol table info available.
#16 0xb54f3c24 in ?? ()
No symbol table info available.
#17 0x94c3b4f0 in ?? ()
No symbol table info available.
#18 0x00000000 in ?? ()
No symbol table info available.
Thread 16 (Thread 0xb52adb90 (LWP 2401)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f3049e in sem_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#2  0x06311374 in check_pending_signals ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#3  0x0630e65d in os::signal_wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x0630b6b8 in signal_thread_entry ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x06391bbd in JavaThread::run ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x06311029 in java_start ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb7f2a192 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8  0xb7ea802e in clone () from /lib/libc.so.6
No symbol table info available.
Thread 15 (Thread 0xb50acb90 (LWP 2402)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x062ff1de in Monitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x0619d0df in CompileQueue::get ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0619e844 in CompileBroker::compiler_thread_loop ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x06391bbd in JavaThread::run ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0x06311029 in java_start ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#8  0xb7f2a192 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0xb7ea802e in clone () from /lib/libc.so.6
No symbol table info available.
Thread 14 (Thread 0xb502bb90 (LWP 2403)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x062ff059 in Monitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x062e39c5 in LowMemoryDetector::low_memory_detector_thread_entry ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x06391bbd in JavaThread::run ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x06311029 in java_start ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb7f2a192 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8  0xb7ea802e in clone () from /lib/libc.so.6
No symbol table info available.
Thread 13 (Thread 0xb4e2ab90 (LWP 2404)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e7ec in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec8f in pthread_cond_timedwait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x0630f161 in os::sleep ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06390f0a in WatcherThread::run ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x06311029 in java_start ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0xb7f2a192 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0xb7ea802e in clone () from /lib/libc.so.6
No symbol table info available.
Thread 12 (Thread 0xb49ffb90 (LWP 2405)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0xb4a110f4 in ?? ()
No symbol table info available.
#9  0xb49fedf8 in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 11 (Thread 0xb47feb90 (LWP 2472)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f31248 in accept () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb4b70357 in NET_Accept ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/libnet.so
No symbol table info available.
#3  0xb4b6ba59 in Java_java_net_PlainSocketImpl_socketAccept ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/libnet.so
No symbol table info available.
#4  0xb5b25e9d in ?? ()
No symbol table info available.
#5  0xb4a2ecf4 in ?? ()
No symbol table info available.
#6  0xb47fde50 in ?? ()
No symbol table info available.
#7  0xb47fde4c in ?? ()
No symbol table info available.
#8  0xb5b1e508 in ?? ()
No symbol table info available.
#9  0xb4a2ec00 in ?? ()
No symbol table info available.
#10 0x615daf98 in ?? ()
No symbol table info available.
#11 0x00000001 in ?? ()
No symbol table info available.
#12 0xb47fde1c in ?? ()
No symbol table info available.
#13 0x942d787c in ?? ()
No symbol table info available.
#14 0xb47fde50 in ?? ()
No symbol table info available.
#15 0x94bed608 in ?? ()
No symbol table info available.
#16 0x00000000 in ?? ()
No symbol table info available.
Thread 10 (Thread 0xb45fdb90 (LWP 2473)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f30c1e in __lll_mutex_lock_wait () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ca58 in _L_mutex_lock_86 () from /lib/libpthread.so.0
No symbol table info available.
#3  0xb7f2c47d in pthread_mutex_lock () from /lib/libpthread.so.0
No symbol table info available.
#4  0x062fd844 in Mutex::lock_without_safepoint_check ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x06343727 in SafepointSynchronize::block ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x063707d9 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#8  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#9  0xb5b25e9d in ?? ()
No symbol table info available.
#10 0xb4a2fcf4 in ?? ()
No symbol table info available.
#11 0xb45fcf0c in ?? ()
No symbol table info available.
#12 0x000007d0 in ?? ()
No symbol table info available.
#13 0x00000000 in ?? ()
No symbol table info available.
Thread 9 (Thread 0xb43fcb90 (LWP 2474)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f3205b in waitpid () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb2494d07 in g_spawn_sync () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#3  0xb249503c in g_spawn_command_line_sync () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#4  0xb299d700 in ?? () from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#5  0xb299dbf2 in ?? () from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#6  0xb299de43 in google_breakpad::ExceptionHandler::InternalWriteMinidump ()
from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#7  0xb299e42e in google_breakpad::ExceptionHandler::HandleException ()
from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#8  
No symbol table info available.
#9  0xb5bf2bba in ?? ()
No symbol table info available.
#10 0xb5bbc528 in ?? ()
No symbol table info available.
#11 0x64631518 in ?? ()
No symbol table info available.
#12 0x63cb91d8 in ?? ()
No symbol table info available.
#13 0x00000022 in ?? ()
No symbol table info available.
#14 0xb5c14b04 in ?? ()
No symbol table info available.
#15 0xb43faaa0 in ?? ()
No symbol table info available.
#16 0x949e7240 in ?? ()
No symbol table info available.
#17 0xb43faac8 in ?? ()
No symbol table info available.
#18 0xb5c14fa2 in ?? ()
No symbol table info available.
#19 0x64629210 in ?? ()
No symbol table info available.
#20 0xb43faaa4 in ?? ()
No symbol table info available.
#21 0x614cc5a8 in ?? ()
No symbol table info available.
#22 0x64631518 in ?? ()
No symbol table info available.
#23 0x614cc500 in ?? ()
No symbol table info available.
#24 0x00354ea2 in ?? ()
No symbol table info available.
#25 0x00000022 in ?? ()
No symbol table info available.
#26 0x00000000 in ?? ()
No symbol table info available.
Thread 8 (Thread 0xb41fbb90 (LWP 2475)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0xb4a334f4 in ?? ()
No symbol table info available.
#9  0xb41fa520 in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 7 (Thread 0xb3d04b90 (LWP 2476)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0x082a68f4 in ?? ()
No symbol table info available.
#9  0xb3d03c5c in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 6 (Thread 0xb3a58b90 (LWP 2477)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f30c1e in __lll_mutex_lock_wait () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ca58 in _L_mutex_lock_86 () from /lib/libpthread.so.0
No symbol table info available.
#3  0xb7f2c47d in pthread_mutex_lock () from /lib/libpthread.so.0
No symbol table info available.
#4  0x062fd844 in Mutex::lock_without_safepoint_check ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x06343727 in SafepointSynchronize::block ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x06393434 in JavaThread::check_safepoint_and_suspend_for_native_trans ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0x06237041 in jni_CallStaticVoidMethod ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#8  0xb3eec652 in performPoll ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/xawt/libmawt.so
No symbol table info available.
#9  0xb3eec433 in waitForEvents ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/xawt/libmawt.so
No symbol table info available.
#10 0xb5b25e9d in ?? ()
No symbol table info available.
#11 0x0833acf4 in ?? ()
No symbol table info available.
#12 0xffffffff in ?? ()
No symbol table info available.
#13 0xffffffff in ?? ()
No symbol table info available.
#14 0xffffffff in ?? ()
No symbol table info available.
#15 0x00000000 in ?? ()
No symbol table info available.
Thread 5 (Thread 0xb3857b90 (LWP 2478)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0x0833bcf4 in ?? ()
No symbol table info available.
#9  0xb3856d8c in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 4 (Thread 0xb3656b90 (LWP 2479)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0x0833ccf4 in ?? ()
No symbol table info available.
#9  0xb3655cfc in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 3 (Thread 0xb2ba9b90 (LWP 2499)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e7ec in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec8f in pthread_cond_timedwait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310d1e in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x063704ff in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0x085188f4 in ?? ()
No symbol table info available.
#9  0xb2ba8ee0 in ?? ()
No symbol table info available.
#10 0x0000ea60 in ?? ()
No symbol table info available.
#11 0x00000000 in ?? ()
No symbol table info available.
Thread 2 (Thread 0xb1b0fb90 (LWP 2510)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2e566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb7f2ec18 in pthread_cond_wait@GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3  0x06310be9 in os::PlatformEvent::park ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#4  0x06370831 in ObjectMonitor::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#5  0x0636e162 in ObjectSynchronizer::wait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#6  0x0626e6c7 in JVM_MonitorWait ()
from /opt/java/jdk1.6.0_04/jre/lib/i386/client/libjvm.so
No symbol table info available.
#7  0xb5b25e9d in ?? ()
No symbol table info available.
#8  0x08121cf4 in ?? ()
No symbol table info available.
#9  0xb1b0ecbc in ?? ()
No symbol table info available.
#10 0x00000000 in ?? ()
No symbol table info available.
Thread 1 (Thread 0xb7de36c0 (LWP 2395)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7f2b575 in pthread_join () from /lib/libpthread.so.0
No symbol table info available.
#2  0x0804dce8 in ContinueInNewThread ()
No symbol table info available.
#3  0x080497f6 in main ()
No symbol table info available.
#0  0xffffe410 in __kernel_vsyscall ()
The program is running.  Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal]
----------- .xsession-errors (9766 sec old) ---------------------
** (gnome-cups-icon:3907): WARNING **: IPP request failed with status 1030
** (gnome-cups-icon:3907): WARNING **: IPP request failed with status 1030
** (gnome-cups-icon:3907): WARNING **: IPP request failed with status 1030
** (gnome-cups-icon:3907): WARNING **: IPP request failed with status 1030
** (gnome-cups-icon:3907): WARNING **: IPP request failed with status 1030
** (gnome-cups-icon:3907): WARNING **: IPP request failed with status 1030
** (gnome-cups-icon:3907): WARNING **: IPP request failed with status 1030
...Too much output, ignoring rest...
--------------------------------------------------

I tried uninstalling/installing Jdk6u4 a number of times – manually, RPMs, YaST etc. to no avail.
Since I was unable to understand the bug report, I decided to uninstall bug-buddy in the hope of getting more meaningful information on the terminal.
The moment I unistalled bug-buddy, I was able to run NetBeans using Java 6.

root@abhiltlnx(~)#  zypper rm bug-buddy
* Reading repository 'Main Repository (OSS)' cache
* Reading repository 'Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading installed packages [100%]
The following package is going to be REMOVED:
bug-buddy
After the operation, 2.0 M will be freed.
Continue? [yes/no]: yes
* Removing bug-buddy-2.20.0-5 [100%]
root@abhiltlnx(~)#

As it turned out bug-buddy wasn’t much of a buddy in this case.

Sun Technology Summit 2007 @ Bangalore

I was in Bangalore last friday for Sun Technology Summit that was attended by 800+ developers.
The main attraction of the event was definitely Scott McNealy – Sun Co-Founder & Chairman.
The event started at the scheduled time with Scott’s keynote session.
He touched upon a lot of things viz. Software, Hardware, Services, Open Source, Education etc.
The audience really enjoyed his session and later mobbed him for autograph :).

His keynote was followed by my session on Java SE: Today and Tomorrow where I took the attendees through the Java timeline and the future roadmap.
Some of the things I covered are:

  • Java – Overview, Timeline
  • New Language Features of Java SE 5, 6 and 7.
  • Demos – Java Desktop Integration, Java SE Web Services, Scripting in Java and JConsole.

There were quite a few questions from the audience regarding the new features and they seem to have enjoyed the demos.
I had interactions with lot of people throughout the day – Students, Architects, Academia etc.

Swing problem on Xgl and openSUSE/Linux

I installed NetBeans 5.5 on openSUSE 10.2 and found out that Swing applications are not rendered properly. The installer dialog itself appeared like an icon and I had to resize it. The IDE itself was either appearing as an icon or it would scale past the screen size. The “New Project” dialog (or any window/dialog for that matter) also displayed the same behaviour and were not appearing in the centre of the IDE. I created a simple swing GUI application and realized that the JOptionPane message dialog was also not appearing in the center. I checked if I was using a very old JDK and found that my default JDK was – Java 6 build 105.


Many hours later (sigh) I found out that Swing applications have rendering issues with Xgl.

Bug ID – 6429775: Xgl/Compiz/Java 1.5/Swing problem
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6429775

Everything worked fine once I disabled XGL. But having got used to the cool way of working using Xgl I just couldn’t keep it disabled for long.
Fortunately, this bug seems to have been fixed in Java 6 update 1. So I downloaded it and everything worked like a charm.


Sun @ NIT Durgapur TechFest

Sun was invited to participate in NIT Durgapur’s techfest – Mukti.
It’s primarily driven by the university’s Linux User Group – an active bunch of students that I later got to meet and interact with.

I and Moinak had a session each on Java and Solaris respectively. More than the sessions, I think we enjoyed the interaction with the students.
We met some really bright students – technically brilliant and very creative. Unfortunately, most of them don’t want a career in the technology
industry and are already preparing for getting into Business schools – a common situation at Technical institutes in India these days.

I don’t know how good they’ll be in the business world but they could really carve a niche for themselves in the engineering world.

Tech Seminar @ IIT Roorkee

Yesterday, we had a seminar on Sun Technologies at IIT Roorkee. I spoke along the lines of my session at IIT Bombay last week. I was accompanied by Aakash who spoke on Solaris and its features.

We had a nice audience, mostly CS students who had postponed their lectures for the seminar. It was heartening to see the Head of the CS Department sitting in the front row – Thank you Sir!

The seminar was very well received by the audience and we got a lot of Qs – about Java, Solaris, Internship programs at Sun etc.

After the seminar we met few senior faculty members and distributed OpenSolaris and NetBeans CD/DvDs.