[原创]HBase客户端开发举例(第一部…

 1. 软件需求

   假设需要通过JMX协议持续不断地监控Web服务器的Java虚拟机(JVM)的内存、CPU等使用情况,并将观测结果存入数据库。由于观测记录的数据量相当大,而且观测记录写入数据库后一般只进行读操作,不进行修改和删除操作,所以NoSql数据库比关系型数据更适合存储数据。

   在此项目中开发两个客户端MonitorClient和QueryDataClient,MonitorClient用于从Web服务器中获得JVM数据并保存在HBase之中,QueryDataClient用于从HBase中查询数据。

    Hbase数据库中的表名为jvmMonitor,含有三个列族"target", "memory", "os"。

       为方便查询,行健用Web服务器IP和数据采集的时间来表示,共24位,前12位是IP,后12位是时间,不够的在前面用0填充。 例如:IP为 10.1.2.122,时间为2012-11-25 23:01:08,则行健为01000100212220121125230108。  这样便可通过IP、时间范围上下限构建行健来检索结果。

2. 构建项目

  在IDE中创建一个MVN项目Example,并将Hadoop,HBase的核心Jar包加入pom.xml 文件中:

 

         <dependency>

            <groupId>org.apache.hadoop</groupId>

            <artifactId>hadoop-core</artifactId>

            <version>0.20.2</version>

        </dependency>

        <dependency>

            <groupId>org.apache.hbase</groupId>

            <artifactId>hbase</artifactId>

            <version>0.90.5</version>

        </dependency>

        

  在目录 src/main/resource 下加入文件 hbase-site.xml , 用于指定所连接的HBase集群的位置,其内容如下所示:

   <configuration>

    <property>

        <name>hbase.zookeeper.quorum</name>

          <value>192.168.1.201</value> 

    </property>

    <property>

        <name>hbase.zookeeper.property.clientPort</name>

        <value>2181</value>

    </property>

    <property skipInDoc="true">

        <name>hbase.defaults.for.version</name>

        <value>0.90.5</value>

    </property>

</configuration>

posted @ 2014-05-28 08:44  lihui1625  阅读(95)  评论(0编辑  收藏  举报