- 构建Hbase集群,请参考: Centos 下Hbase0.98.10-hadoop2 集群的配置
- 在Eclipse中创建Maven的工程
-
将集群的hbase-site.xml文件放到工程的classes目录下
-
配置操作系统的
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
-
编写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>
-
编辑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(); } } }
-
运行程序,输出如下:
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开发环境 #### 导入必要的JAR包 首先,为了在Eclipse中创建和运行HBase应用程序,你需要确保项目中有所有必需的HBase库。这通常涉及到将HBase安装目录下的`lib`文件夹中的所有`.jar`文件...
在Java开发环境中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hadoop和HBase是大数据处理领域的重要组件。Hadoop是一个开源的分布式计算框架,主要用于处理和存储大规模数据;HBase则是建立在Hadoop之上的...
在开发HBase应用程序时,Eclipse作为Java IDE是常见的选择,因为它提供了强大的代码编辑、调试和项目管理功能。为了在Eclipse中成功连接并操作HBase数据库,你需要正确的依赖库,也就是jar包。HBase 1.2.6版本与...
在Windows环境下连接到HBase是一项常见任务,尤其对于那些在Windows操作系统上进行大数据处理和分析的用户来说。HBase是一个分布式的、面向列的开源数据库,它是Apache Hadoop生态系统的一部分,设计用来处理大规模...
整合Eclipse开发环境是为了方便编写和调试Hadoop或HBase的应用程序。这通常涉及到以下步骤: 1. **安装Eclipse**: 确保已安装适合Java开发的Eclipse版本。 2. **安装插件**: 安装必要的插件,如Hadoop插件或HBase...
毕业设计-基于java+HBase实现的手机数据备份系统(短信、联系人、重要文件).zip 基于HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人等。 包括服务器端(Server)和客户端(Client) Server...
对于编程实现,可以通过Java API来执行相同的操作,这要求对HBase的Java客户端库有深入了解,包括连接HBase集群、创建表、写入和读取数据等方法。 对于实验要求,除了列出所有表的信息,还需要实现其他功能,如创建...
【作品名称】:基于Java+HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人、重要文件等 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、...
在本文中,我们将详细讲解Hbase的安装过程以及基本操作,特别针对在Linux环境下使用清华大学镜像进行下载的情况。Hbase是一个分布式的、面向列的数据库,常用于大数据存储,是Apache Hadoop生态系统的一部分。以下是...
包括服务器端(Server)和客户端(Client)Server运行环境Hadoop+HBase+TomcatClient运行环境: Eclipse+AndroidServer端介绍接收客户端请求的Action添加短信Action----------->AddInfoAction.java获取短信Action--------...
这个实例代码将帮助开发者理解和实现如何在Java环境中与HBase交互。 首先,要进行HBase操作,你需要在项目中添加相应的依赖。在`.classpath`和`.project`文件中,可能包含了项目的构建和依赖信息,比如Maven或...
Client运行环境: Eclipse+Android Server端介绍: 接收客户端请求的Action: 添加短信Action----------->AddInfoAction.java 获取短信Action----------->GetInfoAction.java 同步联系人Action--------->...
Eclipse开发插件则是为了方便开发者在Eclipse集成开发环境中进行Hadoop应用的编写、调试和管理而设计的工具。在Windows 7操作系统上,使用Eclipse开发Hadoop应用时,需要特定的插件来实现与远程Hadoop集群的连接。 ...
在IT行业中,Eclipse是一款广泛使用的Java集成开发环境(IDE),而HBase是一个基于Google Bigtable设计的开源分布式数据库,属于NoSQL类型的列存储系统。本文将深入探讨如何使用Eclipse连接到HBase,实现HBase的基本...
- **IDEs**:推荐的开发环境,如IntelliJ IDEA或Eclipse。 - **创建HBase**:了解如何从头开始创建新的HBase项目。 以上只是HBase中文API的基础知识,深入学习还需要结合实际操作和不断实践。
在IT行业中,Eclipse是一款广泛使用的Java开发集成环境,而ZooKeeper则是一个分布式协调服务,常用于管理大型分布式系统中的配置信息、命名服务、分布式同步等任务。本篇文章将详细讲解如何在Eclipse中安装ZooKeeper...
- **Eclipse集成**: 开发者可以通过Eclipse集成环境进行HBase应用程序的开发和调试。 - **常用工具**: 如HBase Shell、HBase REST Gateway等,简化HBase的操作过程。 ### 结语 通过上述介绍,我们可以看到HBase...
1. 安装和配置HBase:掌握在Window10环境下,如何在Hadoop虚拟机上搭建HBase的伪分布式集群。 2. 使用HBase Shell:熟悉并熟练运用HBase提供的Shell命令,如创建表、添加数据、查询等。 3. 学习HBase概念:理解HBase...
* 大润发网上商城(飞牛网):开发环境为 Windows+Eclipse+Mysql+JDK1.7+Tomcat+ftp,软件架构为 SpringMVC+Spring+Mybatis+dubbo+zookeeper+Solr+Maven+Git+Nginx+Tomcat7.0+Mysql+Mongodb+shiro。 * 银豆网贷系统...