elsif, i'll give your program a go in a day or so and report back.
St.Ack
On Tue, Nov 3, 2009 at 6:47 PM, elsif <[email protected]> wrote:
> I am interested as to what other folks are seeing when running this test
> against their clusters. I think my configuration is sound and the load
> is fairly realistic. Please correct me if I'm missing something here.
>
> Here are my results from running the load test on a more recent
> cluster. This cluster is 13 x 3.0GHz Quad Core Xeon servers with 16GB
> of RAM and two 1.5TB disks. One server is the namenode, one is the
> zookeeper (1 of 5), one is the hbase master, and the other ten are data
> nodes + region servers. Nodes are connected via IP over Infiniband
> (10Gbps).
>
> [- Configuration -]
>
> Hadoop Version: 0.20.1, r810220
> Hadoop Compiled: Tue Sep 1 20:55:56 UTC 2009 by oom
>
> HBase Version 0.20.1, r822817
> HBase Compiled Wed Oct 7 11:55:42 PDT 2009, stack
>
> hadoop-env:
> # The maximum amount of heap to use, in MB. Default is 1000.
> export HADOOP_HEAPSIZE=8000 # namenode
> #export HADOOP_HEAPSIZE=2000 # datanode
>
> # Extra Java runtime options. Empty by default.
> # export HADOOP_OPTS=-server
> export HADOOP_OPTS="$HADOOP_OPTS -XX:+HeapDumpOnOutOfMemoryError
> -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
>
> hbase-env:
> # The maximum amount of heap to use, in MB. Default is 1000.
> export HBASE_HEAPSIZE=6000
>
> export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError
> -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
>
>
> [- Test -]
>
> Test was started with a newly formatted namenode. Average load during
> the test was 2.66. Highest load seen was 12.95 (62.8%wa) with an average
> 50MB/s network utilization and 0k swap in use.
>
> After running 2 instances with 30 threads each for just under two hours
> both instances aborted with "
> org.apache.hadoop.hbase.client.NoServerForRegionException: No server
> address listed in .META. for region" errors. At this point two region
> servers aborted. I can send you the complete set of logs (74M) if you
> are interested.
>
> Error Counts:
>
> 1 x ZooKeeper session expired
> 3 x OutOfMemoryError messages were logged on two different regions
> servers.
> 8 x ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: Failed
> openScanner
> 554 x ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:
> DatanodeRegistration
>
>
> [- Preliminary Status -]
>
> Attribute Name Value Description
> HBase Version 0.20.1, r822817 HBase version and svn revision
> HBase Compiled Wed Oct 7 11:55:42 PDT 2009, stack When HBase
> version was compiled and by whom
> Hadoop Version Unknown, rUnknown Hadoop version and svn revision
> Hadoop Compiled Unknown, Unknown When Hadoop version was compiled
> and by whom
> HBase Root Directory hdfs://hfs-027010:8020/hbase Location of
> HBase home directory
> Load average 14.5 Average number of regions per regionserver.
> Naive computation.
> Regions On FS 163 Number of regions on FileSystem. Rough count.
> Zookeeper Quorum
>
> hfs-027013:2181,hfs-027012:2181,hfs-027011:2181,hfs-027015:2181,hfs-027014:2181
> Addresses of all registered ZK servers. For more, see zk dump.
> Catalog Tables
> Table Description
> -ROOT- The -ROOT- table holds references to all .META. regions.
> .META. The .META. table holds references to all User Table regions
> User Tables
>
> 1 table(s) in set.
> Table Description
> fc_test {NAME => 'fc_test', FAMILIES => [{NAME => 'data', VERSIONS
> => '1', COMPRESSION => 'LZO', TTL => '2147483647', BLOCKSIZE => '65536',
> IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}
> Region Servers
> Address Start Code Load
> hfs-027013:60030 1257291638999 requests=22, regions=15,
> usedHeap=2660, maxHeap=5991
> hfs-027014:60030 1257291639075 requests=25, regions=15,
> usedHeap=2282, maxHeap=5991
> hfs-027015:60030 1257291639015 requests=20, regions=15,
> usedHeap=1552, maxHeap=5991
> hfs-027016:60030 1257291638947 requests=16, regions=16,
> usedHeap=2786, maxHeap=5991
> hfs-027017:60030 1257291639078 requests=14, regions=14,
> usedHeap=2775, maxHeap=5991
> hfs-027018:60030 1257291639284 requests=19, regions=14,
> usedHeap=1070, maxHeap=5991
> hfs-027019:60030 1257291639149 requests=22, regions=13,
> usedHeap=2095, maxHeap=5991
> hfs-027020:60030 1257291639289 requests=37, regions=15,
> usedHeap=2352, maxHeap=5991
> hfs-027021:60030 1257291639067 requests=26, regions=14,
> usedHeap=2087, maxHeap=5991
> hfs-027022:60030 1257291638995 requests=19, regions=14,
> usedHeap=1570, maxHeap=5991
> Total: servers: 10 requests=220, regions=145
>
>
> 1154 files and directories, 4417 blocks = 5571 total. Heap Size is 81.06
> MB / 7.8 GB (1%)
> Configured Capacity : 13.57 TB
> DFS Used : 138.83 GB
> Non DFS Used : 10.39 GB
> DFS Remaining : 13.43 TB
> DFS Used% : 1 %
> DFS Remaining% : 98.93 %
> Live Nodes : 10
> Dead Nodes : 0
>
> [- End Status -]
> Region Servers
> Address Start Code Load
> hfs-027013:60030 1257291638999 requests=0, regions=101,
> usedHeap=5428, maxHeap=5991
> hfs-027014:60030 1257291639075 requests=0, regions=103,
> usedHeap=5373, maxHeap=5991
> hfs-027015:60030 1257291639015 requests=0, regions=104,
> usedHeap=3973, maxHeap=5991
> hfs-027016:60030 1257291638947 requests=0, regions=104,
> usedHeap=5051, maxHeap=5991
> hfs-027017:60030 1257291639078 requests=0, regions=108,
> usedHeap=5829, maxHeap=5991
> hfs-027018:60030 1257291639284 requests=0, regions=102,
> usedHeap=4481, maxHeap=5991
> hfs-027019:60030 1257291639149 requests=0, regions=104,
> usedHeap=4875, maxHeap=5991
> hfs-027020:60030 1257291639289 requests=0, regions=101,
> usedHeap=5625, maxHeap=5991
> Total: servers: 8 requests=0, regions=827
>
>
> [- Test Program -]
>
> package org.apache.hadoop.hbase.util;
>
> import java.io.IOException;
> import java.io.FileInputStream;
> import java.lang.Integer;
>
> import org.apache.hadoop.hbase.HBaseConfiguration;
> import org.apache.hadoop.hbase.KeyValue;
> import org.apache.hadoop.hbase.client.HTable;
> import org.apache.hadoop.hbase.client.Get;
> import org.apache.hadoop.hbase.client.Put;
> import org.apache.hadoop.hbase.client.Result;
> import org.apache.hadoop.hbase.util.Bytes;
>
> /* create 'fc_test', {NAME => 'json', VERSIONS => 1}, {NAME => 'data',
> VERSIONS =>1} */
>
> public class TableTest
> extends Thread
> {
> protected int datasize = 4000000;
>
> public TableTest(int datasize)
> {
> this.datasize = datasize;
> }
>
> public void run()
> {
> try {
> FileInputStream random = new FileInputStream("/dev/urandom");
> byte[] key = new byte[32];
> byte[] data = new byte[datasize];
>
> HBaseConfiguration hbaseConfiguration = new
> HBaseConfiguration();
> HTable table = new HTable(hbaseConfiguration, "fc_test");
> random.read(data, 0, datasize);
>
> while (true)
> {
> random.read(key, 0, 32);
> Put update = new Put(Bytes.toBytes(getHexString(key)));
> update.add(Bytes.toBytes("data"), Bytes.toBytes(""),
> data);
> table.put(update);
> }
> } catch (Exception e) {
> System.out.println(e.toString());
> }
>
> }
>
> public static String getHexString(byte[] b) throws Exception
> {
> String result = "";
> for (int i=0; i < b.length; i++)
> {
> result +=
> Integer.toString( ( b[i] & 0xff ) + 0x100,
> 16).substring( 1 );
> }
> return result;
> }
>
> public static void main(String args[]) throws IOException
> {
> Thread t = null;
> int i;
>
> int threads = 30;
> int datasize = 400000;
>
> try {
> threads = Integer.getInteger(args[0]).intValue();
> datasize = Integer.getInteger(args[1]).intValue();
> } catch (Exception e) {
> }
>
> System.out.println("Starting " + threads + " threads");
>
> for (i = 0; i< threads; i++)
> {
> t = new TableTest(datasize);
> t.start();
> }
> // wait for last thread
> try {
> t.join();
> } catch (InterruptedException e) {
> }
> }
> }
>
>