`
m635674608
  • 浏览: 5043415 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Windows7+Eclipse环境下Hbase Java客户端的开发

 
阅读更多
  1. 构建Hbase集群,请参考: Centos 下Hbase0.98.10-hadoop2 集群的配置
  2. 在Eclipse中创建Maven的工程
  3. 将集群的hbase-site.xml文件放到工程的classes目录下

  4. 配置操作系统的

    C:\windows\system32\drivers\etc文件,将Hbase集群的IP以及域名配置到该文件中

    192.168.40.108   hadoop108
    192.168.40.148   hadoop148 
    192.168.40.104   hadoop104 
    192.168.40.107   hadoop107 
    192.168.40.105   hadoop105
  5. 编写Maven的pom.xml文件,依赖内容如下

    <dependencies>
    
    <dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro</artifactId>
    <version>1.7.7</version>
    </dependency>
    
    <dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro-tools</artifactId>
    <version>1.7.7</version>
    </dependency>
    
    <dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro-maven-plugin</artifactId>
    <version>1.7.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro-compiler</artifactId>
    <version>1.7.7</version>
    </dependency>
    
    <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client</artifactId>
    <version>0.98.8-hadoop1</version>
    </dependency>
    
    <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase</artifactId>
    <version>0.90.2</version>
    </dependency>
    <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>
    <version>1.2.1</version>
    </dependency>
    
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>
    </dependencies>
  6. 编辑Java源码

    package com.eric.hbase;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.KeyValue;
    import org.apache.hadoop.hbase.MasterNotRunningException;
    import org.apache.hadoop.hbase.ZooKeeperConnectionException;
    import org.apache.hadoop.hbase.client.Delete;
    import org.apache.hadoop.hbase.client.Get;
    import org.apache.hadoop.hbase.client.HBaseAdmin;
    import org.apache.hadoop.hbase.client.HTable;
    import org.apache.hadoop.hbase.client.Put;
    import org.apache.hadoop.hbase.client.Result;
    import org.apache.hadoop.hbase.client.ResultScanner;
    import org.apache.hadoop.hbase.client.Scan;
    import org.apache.hadoop.hbase.util.Bytes;
    
    public class BaseOperation {
    
    private static final String TABLE_NAME = "demo_table";
    
    public static Configuration conf = null;
    public HTable table = null;
    public HBaseAdmin admin = null;
    
    static {
    conf = HBaseConfiguration.create();
    System.out.println(conf.get("hbase.zookeeper.quorum"));
    }
    
    /**
     * 创建一张表
     */
    public static void creatTable(String tableName, String[] familys)
    throws Exception {
    HBaseAdmin admin = new HBaseAdmin(conf);
    if (admin.tableExists(tableName)) {
    System.out.println("table already exists!");
    } else {
    HTableDescriptor tableDesc = new HTableDescriptor(tableName);
    for (int i = 0; i < familys.length; i++) {
    tableDesc.addFamily(new HColumnDescriptor(familys[i]));
    }
    admin.createTable(tableDesc);
    System.out.println("create table " + tableName + " ok.");
    }
    }
    
    /**
     * 删除表
     */
    public static void deleteTable(String tableName) throws Exception {
    try {
    HBaseAdmin admin = new HBaseAdmin(conf);
    admin.disableTable(tableName);
    admin.deleteTable(tableName);
    System.out.println("delete table " + tableName + " ok.");
    } catch (MasterNotRunningException e) {
    e.printStackTrace();
    } catch (ZooKeeperConnectionException e) {
    e.printStackTrace();
    }
    }
    
    /**
     * 插入一行记录
     */
    public static void addRecord(String tableName, String rowKey,
    String family, String qualifier, String value) throws Exception {
    try {
    HTable table = new HTable(conf, tableName);
    Put put = new Put(Bytes.toBytes(rowKey));
    put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier),
    Bytes.toBytes(value));
    table.put(put);
    System.out.println("insert recored " + rowKey + " to table "
    + tableName + " ok.");
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    
    /**
     * 删除一行记录
     */
    public static void delRecord(String tableName, String rowKey)
    throws IOException {
    HTable table = new HTable(conf, tableName);
    List list = new ArrayList();
    Delete del = new Delete(rowKey.getBytes());
    list.add(del);
    table.delete(list);
    System.out.println("del recored " + rowKey + " ok.");
    }
    
    /**
     * 查找一行记录
     */
    public static void getOneRecord(String tableName, String rowKey)
    throws IOException {
    HTable table = new HTable(conf, tableName);
    Get get = new Get(rowKey.getBytes());
    Result rs = table.get(get);
    for (KeyValue kv : rs.raw()) {
    System.out.print(new String(kv.getRow()) + " ");
    System.out.print(new String(kv.getFamily()) + ":");
    System.out.print(new String(kv.getQualifier()) + " ");
    System.out.print(kv.getTimestamp() + " ");
    System.out.println(new String(kv.getValue()));
    }
    }
    
    /**
     * 显示所有数据
     */
    public static void getAllRecord(String tableName) {
    try {
    HTable table = new HTable(conf, tableName);
    Scan s = new Scan();
    ResultScanner ss = table.getScanner(s);
    for (Result r : ss) {
    for (KeyValue kv : r.raw()) {
    System.out.print(new String(kv.getRow()) + " ");
    System.out.print(new String(kv.getFamily()) + ":");
    System.out.print(new String(kv.getQualifier()) + " ");
    System.out.print(kv.getTimestamp() + " ");
    System.out.println(new String(kv.getValue()));
    }
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    
    public static void main(String[] agrs) {
    try {
    String tablename = "scores";
    String[] familys = { "grade", "course" };
    BaseOperation.creatTable(tablename, familys);
    
    // add record zkb
    BaseOperation.addRecord(tablename, "zkb", "grade", "", "5");
    BaseOperation.addRecord(tablename, "zkb", "course", "", "90");
    BaseOperation.addRecord(tablename, "zkb", "course", "math", "97");
    BaseOperation.addRecord(tablename, "zkb", "course", "art", "87");
    // add record baoniu
    BaseOperation.addRecord(tablename, "baoniu", "grade", "", "4");
    BaseOperation
    .addRecord(tablename, "baoniu", "course", "math", "89");
    
    System.out.println("===========get one record========");
    BaseOperation.getOneRecord(tablename, "zkb");
    
    System.out.println("===========show all record========");
    BaseOperation.getAllRecord(tablename);
    
    System.out.println("===========del one record========");
    BaseOperation.delRecord(tablename, "baoniu");
    BaseOperation.getAllRecord(tablename);
    
    System.out.println("===========show all record========");
    BaseOperation.getAllRecord(tablename);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    
    }
  7. 运行程序,输出如下:

    hadoop107,hadoop108,hadoop104
    log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    table already exists!
    insert recored zkb to table scores ok.
    insert recored zkb to table scores ok.
    insert recored zkb to table scores ok.
    insert recored zkb to table scores ok.
    insert recored baoniu to table scores ok.
    insert recored baoniu to table scores ok.
    ===========get one record========
    zkb course: 1425258910718 90
    zkb course:art 1425258910727 87
    zkb course:math 1425258910722 97
    zkb grade: 1425258910705 5
    ===========show all record========
    baoniu course:math 1425258910734 89
    baoniu grade: 1425258910730 4
    zkb course: 1425258910718 90
    zkb course:art 1425258910727 87
    zkb course:math 1425258910722 97
    zkb grade: 1425258910705 5
    ===========del one record========
    del recored baoniu ok.
    zkb course: 1425258910718 90
    zkb course:art 1425258910727 87
    zkb course:math 1425258910722 97
    zkb grade: 1425258910705 5
    ===========show all record========
    zkb course: 1425258910718 90
    zkb course:art 1425258910727 87
    zkb course:math 1425258910722 97
    zkb grade: 1425258910705 5

 

http://www.tuicool.com/articles/r6ZZBjU

http://xpenxpen.iteye.com/blog/2158922

http://www.cnblogs.com/ggjucheng/p/3381328.html

分享到:
评论

相关推荐

    在eclipse中开发HBase程序的方法

    ### 在Eclipse中设置HBase开发环境 #### 导入必要的JAR包 首先,为了在Eclipse中创建和运行HBase应用程序,你需要确保项目中有所有必需的HBase库。这通常涉及到将HBase安装目录下的`lib`文件夹中的所有`.jar`文件...

    hadoop2.73-eclipse开发hbase所需要的所有jar包

    在Java开发环境中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hadoop和HBase是大数据处理领域的重要组件。Hadoop是一个开源的分布式计算框架,主要用于处理和存储大规模数据;HBase则是建立在Hadoop之上的...

    eclipse链接hbase所需jar包,hbase版本1.2.6,Hadoop版本2.7.1

    在开发HBase应用程序时,Eclipse作为Java IDE是常见的选择,因为它提供了强大的代码编辑、调试和项目管理功能。为了在Eclipse中成功连接并操作HBase数据库,你需要正确的依赖库,也就是jar包。HBase 1.2.6版本与...

    在Windows连接HBase实用工具

    在Windows环境下连接到HBase是一项常见任务,尤其对于那些在Windows操作系统上进行大数据处理和分析的用户来说。HBase是一个分布式的、面向列的开源数据库,它是Apache Hadoop生态系统的一部分,设计用来处理大规模...

    hadoop和hbase分布式配置及整合eclipse开发.pdf

    整合Eclipse开发环境是为了方便编写和调试Hadoop或HBase的应用程序。这通常涉及到以下步骤: 1. **安装Eclipse**: 确保已安装适合Java开发的Eclipse版本。 2. **安装插件**: 安装必要的插件,如Hadoop插件或HBase...

    毕业设计-基于java+HBase实现的手机数据备份系统(短信、联系人、重要文件).zip

    毕业设计-基于java+HBase实现的手机数据备份系统(短信、联系人、重要文件).zip 基于HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人等。 包括服务器端(Server)和客户端(Client) Server...

    大数据实验Hbase安装部署和使用javaapi调用.pdf

    对于编程实现,可以通过Java API来执行相同的操作,这要求对HBase的Java客户端库有深入了解,包括连接HBase集群、创建表、写入和读取数据等方法。 对于实验要求,除了列出所有表的信息,还需要实现其他功能,如创建...

    基于Java+HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人、重要文件等

    【作品名称】:基于Java+HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人、重要文件等 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、...

    Hbase的安装过程及基本操作

    在本文中,我们将详细讲解Hbase的安装过程以及基本操作,特别针对在Linux环境下使用清华大学镜像进行下载的情况。Hbase是一个分布式的、面向列的数据库,常用于大数据存储,是Apache Hadoop生态系统的一部分。以下是...

    毕业设计-基于HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人、重要文件等 .zip

    包括服务器端(Server)和客户端(Client)Server运行环境Hadoop+HBase+TomcatClient运行环境: Eclipse+AndroidServer端介绍接收客户端请求的Action添加短信Action-----------&gt;AddInfoAction.java获取短信Action--------...

    java链接并对hbase进行增删改查操作的实例代码(含批量插入,范围查询等,并包含所需jar包)

    这个实例代码将帮助开发者理解和实现如何在Java环境中与HBase交互。 首先,要进行HBase操作,你需要在项目中添加相应的依赖。在`.classpath`和`.project`文件中,可能包含了项目的构建和依赖信息,比如Maven或...

    基于HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人等(毕业设计)

    Client运行环境: Eclipse+Android Server端介绍: 接收客户端请求的Action: 添加短信Action-----------&gt;AddInfoAction.java 获取短信Action-----------&gt;GetInfoAction.java 同步联系人Action---------&gt;...

    Hadoop_2.X,eclipse开发插件

    Eclipse开发插件则是为了方便开发者在Eclipse集成开发环境中进行Hadoop应用的编写、调试和管理而设计的工具。在Windows 7操作系统上,使用Eclipse开发Hadoop应用时,需要特定的插件来实现与远程Hadoop集群的连接。 ...

    eclipe 连接hbase

    在IT行业中,Eclipse是一款广泛使用的Java集成开发环境(IDE),而HBase是一个基于Google Bigtable设计的开源分布式数据库,属于NoSQL类型的列存储系统。本文将深入探讨如何使用Eclipse连接到HBase,实现HBase的基本...

    HBase中文API

    - **IDEs**:推荐的开发环境,如IntelliJ IDEA或Eclipse。 - **创建HBase**:了解如何从头开始创建新的HBase项目。 以上只是HBase中文API的基础知识,深入学习还需要结合实际操作和不断实践。

    eclipse安装ZooKeeper插件

    在IT行业中,Eclipse是一款广泛使用的Java开发集成环境,而ZooKeeper则是一个分布式协调服务,常用于管理大型分布式系统中的配置信息、命名服务、分布式同步等任务。本篇文章将详细讲解如何在Eclipse中安装ZooKeeper...

    hbase从入门到编程 - 文档.pdf

    - **Eclipse集成**: 开发者可以通过Eclipse集成环境进行HBase应用程序的开发和调试。 - **常用工具**: 如HBase Shell、HBase REST Gateway等,简化HBase的操作过程。 ### 结语 通过上述介绍,我们可以看到HBase...

    大数据平台及编程实践--HBase

    1. 安装和配置HBase:掌握在Window10环境下,如何在Hadoop虚拟机上搭建HBase的伪分布式集群。 2. 使用HBase Shell:熟悉并熟练运用HBase提供的Shell命令,如创建表、添加数据、查询等。 3. 学习HBase概念:理解HBase...

    Java简历模板,经典,有参考价值.docx

    * 大润发网上商城(飞牛网):开发环境为 Windows+Eclipse+Mysql+JDK1.7+Tomcat+ftp,软件架构为 SpringMVC+Spring+Mybatis+dubbo+zookeeper+Solr+Maven+Git+Nginx+Tomcat7.0+Mysql+Mongodb+shiro。 * 银豆网贷系统...

Global site tag (gtag.js) - Google Analytics