I build it successfully after I replace some dependencies version in pom.xml.
hbase: replace 0.94-adh3u2.2 with 0.94.0 hadoop-core: replace 0.20.2-cdh3u3 with 0.20.2 antlr replace antlr with antlr4 and replace 4.0-complete with 4.0 On Mon, Jan 6, 2014 at 12:24 PM, Ted Yu <[email protected]> wrote: > When compiling, I got: > > [ERROR] Failed to execute goal on project simplehbase: Could not resolve > dependencies for project allen:simplehbase:jar:0.3: The following artifacts > could not be resolved: org.apache.hbase:hbase:jar:0.94-adh3u2.2, > org.apache.hadoop:hadoop-core:jar:0.20.2-cdh3u3, > org.apache.hadoop.thirdparty.guava:guava:jar:r09-jarjar, > org.antlr:antlr:jar:4.0-complete: Could not find artifact > org.apache.hbase:hbase:jar:0.94-adh3u2.2 in central ( > http://repo.maven.apache.org/maven2) -> [Help 1] > > I think you should point to Apache release - if there is no special feature > from adh3u2.2 that your project depends on. > > > On Sun, Jan 5, 2014 at 8:46 AM, zhang_xzhi <[email protected]> wrote: > > > I just read some short introduction of Phoenix these days. > > If I am wrong, pls let me know, thx. > > It seems to me Phoenix will provide a JDBC-driver against hbase. > > But simplehbase will provide some hbase close related features. > > > > xinzhi.zhang > > > > > > > > At 2014-01-06 00:40:47,"Ted Yu-3 [via Apache HBase]" < > > [email protected]> wrote: > > There seems to be some overlap between your project and the following: > > > > HBASE-8089 Add type support > > Phoenix which becomes Apache incubator project > > > > Cheers > > > > > > On Sun, Jan 5, 2014 at 7:58 AM, zhang_xzhi <[hidden email]> wrote: > > > > > > > https://github.com/zhang-xzhi/simplehbase > > > https://github.com/zhang-xzhi/simplehbase/wiki > > > > > > I am writing a light weight hbase ORM now, search for some suggestion. > > > thanks. > > > > > > > > > # 3 mins on simplehbase > > > > > > ## Introduction to simplehbase > > > Simplehbase is a lightweight ORM framework between java app and hbase. > > > The main feature of it are following: > > > * data type mapping: mapping java type to hbase's bytes back and forth. > > > * hbase operation wrapping: warpping hbase's put get scan operation to > > > simple java interface. > > > * hbase query language: using hbase filter, simplehbase can use > sql-like > > > style to operate on hbase. > > > * dynamic query: like myibatis, simplehbase can use xml config file to > > > define dynamic query to operate on hbase. > > > * insert update support: provide insert, update on top of checkAndPut. > > > * multiple version support: provide interface to operation on hbase's > > > multiple version. > > > * hbase native interface support. > > > > > > ## Simplehbase sample > > > > > > ### Init simplehbase > > > private static SimpleHbaseClient getSimpleHbaseClient() { > > > HBaseDataSource hbaseDataSource = new HBaseDataSource(); > > > List<String> hbaseConfigFilePaths = new ArrayList<String>(); > > > //hbase config file. > > > hbaseConfigFilePaths.add("sample\\hbase_site"); > > > //zk config file. > > > hbaseConfigFilePaths.add("sample\\zk_conf"); > > > hbaseDataSource.setHbaseConfigFilePaths(hbaseConfigFilePaths); > > > hbaseDataSource.init(); > > > > > > HBaseTableConfig hbaseTableConfig = new HBaseTableConfig(); > > > //simplehbase config file. > > > hbaseTableConfig.setConfigFilePath("sample\\myRecord.xml"); > > > hbaseTableConfig.init(); > > > > > > SimpleHbaseClient tClient = new SimpleHbaseClientImpl(); > > > tClient.setHBaseDataSource(hbaseDataSource); > > > tClient.setHbaseTableConfig(hbaseTableConfig); > > > > > > return tClient; > > > } > > > ### Simplehbase config xml > > > including htable's config and one dynamic query config. > > > <SimpleHbase> > > > > > > <HBaseTableSchema tableName="MyRecord" > > > defaultFamily="MyRecordFamily"> > > > <HBaseColumnSchema qualifier="id" typeName="int" /> > > > <HBaseColumnSchema qualifier="name" typeName="string" > /> > > > <HBaseColumnSchema qualifier="date" typeName="date" /> > > > <HBaseColumnSchema qualifier="gender" > > > typeName="allen.sample.Gender" /> > > > <HBaseColumnSchema qualifier="age" typeName="int" /> > > > </HBaseTableSchema> > > > > > > <statements> > > > <statement id="queryByNameAndAge"> > > > select where id greater #id# > > > <isPropertyAvailable prepend="and" > > property="name"> > > > name equal #name# > > > </isPropertyAvailable> > > > <isPropertyAvailable prepend="and" > > property="age"> > > > age greater #age# > > > </isPropertyAvailable> > > > </statement> > > > </statements> > > > </SimpleHbase> > > > > > > ### Define Data Object > > > @HBaseTable(defaultFamily = "MyRecordFamily") > > > public class Person { > > > @HBaseColumn(qualifier = "id") > > > private int id; > > > @HBaseColumn(qualifier = "name") > > > private String name; > > > @HBaseColumn(qualifier = "date") > > > private Date date; > > > @HBaseColumn(qualifier = "gender") > > > private Gender gender; > > > @HBaseColumn(qualifier = "age") > > > private int age; > > > } > > > > > > ### Define RowKey of Data Object > > > public class PersonRowKey implements RowKey { > > > > > > private int row; > > > > > > public PersonRowKey(int row) { > > > this.row = row; > > > } > > > > > > @Override > > > public byte[] toBytes() { > > > return Bytes.toBytes(row); > > > } > > > } > > > ### Using SimpleHbaseClient to operate hbase > > > public static void main(String[] args) throws Exception { > > > > > > SimpleHbaseClient simpleHbaseClient = getSimpleHbaseClient(); > > > > > > //insert one record. > > > Person one = new Person(); > > > one.setId(1); > > > one.setName("allen"); > > > one.setAge(30); > > > one.setGender(Gender.MALE); > > > simpleHbaseClient.putObject(new PersonRowKey(1), one); > > > > > > //insert another record. > > > Person two = new Person(); > > > two.setId(2); > > > two.setName("dan"); > > > two.setAge(31); > > > two.setGender(Gender.FEMALE); > > > simpleHbaseClient.putObject(new PersonRowKey(2), two); > > > > > > //search by rowkey. > > > Person result = simpleHbaseClient.findObject(new > PersonRowKey(1), > > > Person.class); > > > log.info(result); > > > > > > //search by range. > > > List<Person> resultList = simpleHbaseClient.findObjectList( > > > new PersonRowKey(1), new PersonRowKey(3), > Person.class); > > > log.info(resultList); > > > > > > //search by dynamic query. > > > Map<String, Object> para = new HashMap<String, Object>(); > > > para.put("id", 0); > > > resultList = simpleHbaseClient.findObjectList(new > > PersonRowKey(1), > > > new PersonRowKey(3), Person.class, "queryByNameAndAge", > > > para); > > > log.info(resultList); > > > > > > //search by dynamic query. > > > para.put("name", "allen"); > > > para.put("age", 0); > > > resultList = simpleHbaseClient.findObjectList(new > > PersonRowKey(1), > > > new PersonRowKey(3), Person.class, "queryByNameAndAge", > > > para); > > > log.info(resultList); > > > > > > //batch delete. > > > simpleHbaseClient.deleteObjectList(new PersonRowKey(0), > > > new PersonRowKey(100)); > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > View this message in context: > > > > > > http://apache-hbase.679495.n3.nabble.com/a-short-introduction-of-simplehbase-hbase-ORM-tp4054488.html > > > Sent from the HBase User mailing list archive at Nabble.com. > > > > > > > > > > > > > If you reply to this email, your message will be added to the discussion > > below: > > > > > http://apache-hbase.679495.n3.nabble.com/a-short-introduction-of-simplehbase-hbase-ORM-tp4054488p4054490.html > > To unsubscribe from a short introduction of simplehbase(hbase ORM), click > > here. > > NAML > > > > > > > > -- > > View this message in context: > > > http://apache-hbase.679495.n3.nabble.com/a-short-introduction-of-simplehbase-hbase-ORM-tp4054488p4054491.html > > Sent from the HBase User mailing list archive at Nabble.com. > > > -- Best Regards, Haosdent Huang
