hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tost <nca...@gmail.com>
Subject Simple Hbase jdo module for newbie
Date Fri, 21 Jan 2011 08:09:29 GMT
>
> 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);
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message