You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Tost <nc...@gmail.com> on 2011/01/21 09:09:29 UTC

Simple Hbase jdo module for newbie

>
> Hello.
> first of all, thanks to hbase members so much ,
> you helped me a lot.
>
> I wrote simple jdo module for hbase newbie. I wish this module can help
> them.
>
> Some features
>
>    - simple jdo(used reflection)
>    - HTable pool ( I already know HTablePool in habse )
>    - simple query classes ( insert,delete,update,select)
>    - some convinent mehtods.
>    - table sequence generator
>
> I want to contribute this module to hbase
> absolutely, I'll do upgrade that more than more.
>
> again, thanks for help.
>
> http://code.google.com/p/hbase-jdo/  (you can download sources here)
> ---------------------------------------------
>
> AbstractHBaseDBO dbo = new HBaseDBOImpl();
> 		
> 		//drop if table is already exist.		if(dbo.isTableExist("user")){
> 			dbo.deleteTable("user");
> 		}
> 		
> 		//create table		dbo.createTableIfNotExist("user",HBaseOrder.DESC,"account");
> 		//dbo.createTableIfNotExist("user",HBaseOrder.ASC,"account");		
> 		//create index.		String[] cols={"id","name"};
> 		dbo.addIndexExistingTable("user","account",cols);
> 		
> 		//insert		InsertQuery insert = dbo.createInsertQuery("user");
> 		UserBean bean = new UserBean();
> 		bean.setFamily("account");
> 		bean.setAge(20);
> 		bean.setEmail("ncanis@gmail.com");
> 		bean.setId("ncanis");
> 		bean.setName("ncanis");
> 		bean.setPassword("1111");
> 		insert.insert(bean);
> 		
> 		//select 1 row		SelectQuery select = dbo.createSelectQuery("user");
> 		UserBean resultBean = (UserBean)select.select(bean.getRow(),UserBean.class);
> 		
> 		// select column value.		String value = (String)select.selectColumn(bean.getRow(),"account","id",String.class);
> 		
> 		// search with option (QSearch has EQUAL, NOT_EQUAL, LIKE)		// select id,password,name,email from account where id='ncanis' limit startRow,20		HBaseParam param = new HBaseParam();
> 		param.setPage(bean.getRow(),20);
> 		param.addColumn("id","password","name","email");
> 		param.addSearchOption("id","ncanis",QSearch.EQUAL);
> 		select.search("account", param, UserBean.class);
> 		
> 		// search column value is existing.		boolean isExist = select.existColumnValue("account","id","ncanis".getBytes());
> 		
> 		// update password.		UpdateQuery update = dbo.createUpdateQuery("user");
> 		Hashtable<String, byte[]> colsTable = new Hashtable<String, byte[]>();
> 		colsTable.put("password","2222".getBytes());
> 		update.update(bean.getRow(),"account",colsTable);
> 		
> 		//delete		DeleteQuery delete = dbo.createDeleteQuery("user");
> 		delete.deleteRow(resultBean.getRow());
> 	
> 		////////////////////////////////////		// etc		
> 		// HTable pool with apache commons pool		// borrow and release. HBasePoolManager(maxActive, minIdle etc..)		IndexedTable table = dbo.getPool().borrow("user");
> 		dbo.getPool().release(table);
> 		
> 		// upload bigFile by hadoop directly.		HBaseBigFile bigFile = new HBaseBigFile();
> 		File file = new File("doc/movie.avi");
> 		FileInputStream fis = new FileInputStream(file);
> 		Path rootPath = new Path("/files/");
> 		String filename = "movie.avi";
> 		bigFile.uploadFile(rootPath,filename,fis,true);
> 		
> 		// receive file stream from hadoop.		Path p = new Path(rootPath,filename);
> 		InputStream is = bigFile.path2Stream(p,4096);
>
>
>

Re: Simple Hbase jdo module for newbie

Posted by Stack <st...@duboce.net>.
Thank you.
St.Ack

On Sun, Jan 23, 2011 at 4:37 PM, Tost <nc...@gmail.com> wrote:
> Thanks stack.
> I edited http://wiki.apache.org/hadoop/Hbase after wrote hbase-jdo document.
>
> 2011/1/22 Stack <st...@duboce.net>
>
>> Thank you for the sweet addition.
>>
>> On Fri, Jan 21, 2011 at 12:09 AM, Tost <nc...@gmail.com> wrote:
>> >> I want to contribute this module to hbase
>> >> absolutely, I'll do upgrade that more than more.
>> >>
>> >> again, thanks for help.
>> >>
>> >> http://code.google.com/p/hbase-jdo/  (you can download sources here)
>>
>> You should add your project to the 'SupportingProjects' page up on the
>> hbase wiki.  You'll need to make yourself an account so you can make
>> the edits.
>>
>> Thanks,
>> St.Ack
>>
>

Re: Simple Hbase jdo module for newbie

Posted by Tost <nc...@gmail.com>.
Thanks stack.
I edited http://wiki.apache.org/hadoop/Hbase after wrote hbase-jdo document.

2011/1/22 Stack <st...@duboce.net>

> Thank you for the sweet addition.
>
> On Fri, Jan 21, 2011 at 12:09 AM, Tost <nc...@gmail.com> wrote:
> >> I want to contribute this module to hbase
> >> absolutely, I'll do upgrade that more than more.
> >>
> >> again, thanks for help.
> >>
> >> http://code.google.com/p/hbase-jdo/  (you can download sources here)
>
> You should add your project to the 'SupportingProjects' page up on the
> hbase wiki.  You'll need to make yourself an account so you can make
> the edits.
>
> Thanks,
> St.Ack
>

Re: Simple Hbase jdo module for newbie

Posted by Stack <st...@duboce.net>.
Thank you for the sweet addition.

On Fri, Jan 21, 2011 at 12:09 AM, Tost <nc...@gmail.com> wrote:
>> I want to contribute this module to hbase
>> absolutely, I'll do upgrade that more than more.
>>
>> again, thanks for help.
>>
>> http://code.google.com/p/hbase-jdo/  (you can download sources here)

You should add your project to the 'SupportingProjects' page up on the
hbase wiki.  You'll need to make yourself an account so you can make
the edits.

Thanks,
St.Ack

Re: Simple Hbase jdo module for newbie

Posted by Stack <st...@duboce.net>.
Thank you for the sweet addition.

On Fri, Jan 21, 2011 at 12:09 AM, Tost <nc...@gmail.com> wrote:
>> I want to contribute this module to hbase
>> absolutely, I'll do upgrade that more than more.
>>
>> again, thanks for help.
>>
>> http://code.google.com/p/hbase-jdo/  (you can download sources here)

You should add your project to the 'SupportingProjects' page up on the
hbase wiki.  You'll need to make yourself an account so you can make
the edits.

Thanks,
St.Ack