Home Forums HBase Hbase Read/Write Optimalization

This topic contains 0 replies, has 1 voice, and was last updated by  Kacper Olszewski 2 months, 2 weeks ago.

  • Creator
    Topic
  • #58594

    Kacper Olszewski
    Participant

    Hello there, I’m running a read/write benchmark on a huge data.
    The problem im dealing with is that the tests are going extreamly slow.
    I dont know how to optimize the process. Hbase is using only about 10% of RAM memory, and 40% of CPU.
    I’ve been experimenting with properties of hbase-site.xml file but I can’t see any results.
    I think there is something I need to put in the client’s code.

    It’s a single node local operation. Virtual machine has 8GB RAM. Any help will be appreciated.

    The code for my client:

    public class HBaseClinet implements IDbClient {
    private HTable table = null;
    private Get get;
    private Configuration conf;

    public void connect(String node) {

    conf = HBaseConfiguration.create();
    HBaseAdmin admin=null;
    try {
    admin = new HBaseAdmin(conf);
    } catch (MasterNotRunningException e) {
    e.printStackTrace();
    } catch (ZooKeeperConnectionException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    try {
    admin.disableTable(“Test”); //DISABLE
    } catch (IOException e) {
    e.printStackTrace();
    }
    try {
    admin.deleteTable(“Test”); //DROP
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    public void Initialize() {

    conf = HBaseConfiguration.create();

    HBaseAdmin hbase=null;
    try {
    hbase = new HBaseAdmin(conf);
    } catch (MasterNotRunningException e) {
    e.printStackTrace();
    } catch (ZooKeeperConnectionException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    HTableDescriptor desc = new HTableDescriptor(“Test”); //Nie wiem czemu skreślone
    HColumnDescriptor meta = new HColumnDescriptor(“Family”.getBytes());
    HColumnDescriptor prefix = new HColumnDescriptor(“Prefix”.getBytes());
    desc.addFamily(meta);
    // desc.addFamily(prefix);
    try {
    hbase.createTable(desc);
    } catch (IOException e) {
    e.printStackTrace();
    }

    try {
    table = new HTable(conf, “Test”);
    } catch (IOException e) {
    e.printStackTrace();
    }

    }

    public void saveTweet(String json, long counter) {

    Put p = new Put(Bytes.toBytes(“Row” + counter));

    p.add(Bytes.toBytes(“Family”), Bytes.toBytes(“Q” + counter),
    Bytes.toBytes(json));

    try {
    table.put(p); // tutaj ta zmienna była potrzebna, zadeklarowana
    // nazewnątrz
    } catch (IOException e) {
    e.printStackTrace();
    }

    }

    public String getTweet(long counter) {
    // Teraz zaczynam pobierać
    Get g = new Get(Bytes.toBytes(“Row” + counter));
    Result r = null; // zmienna musi być initialized = nadać jej wartość

    try {
    r = table.get(g);
    } catch (IOException e) {

    e.printStackTrace();
    }
    byte[] value = r.getValue(Bytes.toBytes(“Family”),
    Bytes.toBytes(“Q” + counter));

    String valueStr = Bytes.toString(value);
    // System.out.println(“GET: ” + valueStr);

    return valueStr;
    }
    }

    Best Regards – Kacper, student

You must be logged in to reply to this topic.