一:在eclipse创建一个普通的java项目
二:新建一个文件夹,把hbase需要的jar放进去,我这里把hbase/lib/*.jar 下所有的jar都放进去了,最后发现就用到了下面三个jar包
hadoop-common-2.6.4.jar
hbase-common-1.2.4.jar
hbase-client-1.2.4.jar

三:
将你在服务器中配置的hbase-site.xml文件复制到ecplise工程里(在工程的跟目录下新建一个文件夹命名conf,右键conf文件--->build path---->use as source folder)

四:新创建一个测试类,就可以写代码了
package com.zhang.insert;import java.io.IOException;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
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.util.Bytes;
import org.junit.Test;public class HbaseInsert1 {public static Log log=LogFactory.getLog(HbaseInsert1.class);public static String tableName="employees";//表名public static String columnFamily="student_name";//列族public static String rowFamily="h2";//行键static Configuration conf=null;static{Configuration confi=new HBaseConfiguration().create();conf=confi;//指定zookeeperconf.set("hbase.zookeeper.quorum", "node4");System.setProperty("hadoop.home.dir", "E:\\hadoop-2.6.4");//设置hadoop的安装目录,如果在eclipse已经设置过可以不用设置
        }/*** 创建表* HBaseAdmin * HTableDescriptor*/@Testpublic void testCreateTable(){HBaseAdmin admin=null;HTableDescriptor htd=null;try {admin=new HBaseAdmin(conf);//判断要创建的表是否已经存在if(admin.tableExists(al_TableName)){System.out.println(tableName+"表已经存在");return;}else{htd=new HTableDescriptor(al_TableName.getBytes());    //设置列族htd.addFamily(new HColumnDescriptor(columnFamily));admin.createTable(htd);System.out.println(tableName+"表创建成功!!!");}}catch (IOException e) {e.printStackTrace();}}/*** 删除表*/@Testpublic void testDeletTable(){HBaseAdmin admin=null;try {admin=new HBaseAdmin(conf);if(admin.tableExists(tableName)){System.out.println("table is exits");//如果表存在,则注为失效状态admin.disableTable(tableName);//删除表admin.deleteTable(tableName);System.out.println("删除成功");}} catch (IOException e) {e.printStackTrace();}

问题:
1,在创建表的时候抛出异常
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

这个异常是因为你缺少winutils.exe

需要下载这个文件,然后放到你的/hadoop/bin/  即可
2:
2017-01-04 22:20:05,567 INFO [main-SendThread(127.0.0.1:2181)] zookeeper.ClientCnxn (ClientCnxn.java:logStartConnect(975)) - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)

下面异常是因为连接的zk不对,需要指定你的zk

Configuration conf=new HBaseConfiguration().create();
conf.set("hbase.zookeeper.quorum", "node4");//node4 是你的服务器的名称

3:这个异常是我在创建表后,使用'scan'和'put'都会抛出下面错误
ERROR: No server address listed in hbase:meta for region employess_info,,1483706778862.6d09a04dec7bfba654d6b393ba966534. containing row

我使用 scan 'hbase:meta'查询hbase元数据
ROW COLUMN+CELL
hbase:namespace,,1482832588064.6899522395b4ee74 column=info:regioninfo, timestamp=1482832590934, value={ENCODED => 6899522395b4ee74d8a55be4b8f31fb9, NAME => 'hbase:namespace,,1482832588064.6
d8a55be4b8f31fb9. 899522395b4ee74d8a55be4b8f31fb9.', STARTKEY => '', ENDKEY => ''}
hbase:namespace,,1482832588064.6899522395b4ee74 column=info:seqnumDuringOpen, timestamp=1483554191715, value=\x00\x00\x00\x00\x00\x00\x00\x0D
d8a55be4b8f31fb9.
hbase:namespace,,1482832588064.6899522395b4ee74 column=info:server, timestamp=1483554191715, value=hadoop-node4.com:16201
d8a55be4b8f31fb9.
hbase:namespace,,1482832588064.6899522395b4ee74 column=info:serverstartcode, timestamp=1483554191715, value=1483554113504
d8a55be4b8f31fb9.
student,,1482855412525.d49d109d9fe387bdcda9f748 column=info:regioninfo, timestamp=1482855420324, value={ENCODED => d49d109d9fe387bdcda9f748f2d959e3, NAME => 'student,,1482855412525.d49d109d9
f2d959e3. fe387bdcda9f748f2d959e3.', STARTKEY => '', ENDKEY => ''}
student,,1482855412525.d49d109d9fe387bdcda9f748 column=info:seqnumDuringOpen, timestamp=1483554191720, value=\x00\x00\x00\x00\x00\x00\x00\x0D
f2d959e3.
student,,1482855412525.d49d109d9fe387bdcda9f748 column=info:server, timestamp=1483554191720, value=hadoop-node4.com:16201
f2d959e3.
student,,1482855412525.d49d109d9fe387bdcda9f748 column=info:serverstartcode, timestamp=1483554191720, value=1483554113504
f2d959e3.
student_1,,1483556027914.ded9aeece2edc985bf9999 column=info:regioninfo, timestamp=1483556033173, value={ENCODED => ded9aeece2edc985bf9999d0744fad1e, NAME => 'student_1,,1483556027914.ded9aee
d0744fad1e. ce2edc985bf9999d0744fad1e.', STARTKEY => '', ENDKEY => ''}
3 row(s) in 0.4820 seconds

(这个异常是因为我的eclipse工程里没有hbase-site.xml文件,所以操作是habse默认的。因为我在创建表后,对表进行操作虽然报错,但是我重启集群之后,再对表进行操作就没问题了,所以我觉得是ecplise的问题,不是hbase的问题,查看hbase:meta数据也是正常的)

转载于:https://www.cnblogs.com/zhangXingSheng/p/6277257.html

使用eclipse开发hbase程序相关推荐

  1. Eclipse开发Android程序如何在手机上运行

    http://www.cnblogs.com/plwang1990/archive/2011/07/04/2097757.htm android开发不论是在真机上调试还是最终发布到真机上都非常简单,过 ...

  2. windows环境下Eclipse开发MapReduce程序遇到的四个问题及解决办法

    按此文章<Hadoop集群(第7期)_Eclipse开发环境设置>进行MapReduce开发环境搭建的过程中遇到一些问题,饶了一些弯路,解决办法记录在此: 文档目的: 记录windows环 ...

  3. [转载]Eclipse开发J2ME程序之安装配置

    Eclipse开发J2ME程序之安装配置 引言 在上一篇文章中介绍了Eclipse是一款非常出色和著名的开源项目.开放源代码软件是这样一种软件,它们在发布时附带了旨在确保将某些权利授予用户的许可证.当 ...

  4. [转载]Eclipse开发J2ME程序之仿真机发布

    Eclipse开发J2ME程序之仿真机发布 引言 在上一篇文章介绍了HelloWorld程序的开发过程,虽然这是一个经典的程序但并不具备任何实质性的功能而且只是在模拟器中仿真运行.经过这么长时间的学习 ...

  5. Windows下使用Eclipse开发Arduino程序

    Arduino IDE功能简单,对于不熟悉编程环境的用户十分容易上手:但是对于大型的Arduino项目开发,如果再使用自带的IDE就会多少显得不便.之前我曾经使用过Eclipse + CDT + av ...

  6. Eclipse开发J2ME程序之安装配置

    引言 在上一篇文章中介绍了Eclipse是一款非常出色和著名的开源项目.开放源代码软件是这样一种软件,它们在发布时附带了旨在确保将某些权利授予用户的许可证.当然,最明显的权利就是源代码必须可用,以便用 ...

  7. eclipse开发java程序,断点调试

    断点简单的解释就是告诉编译器在执行到该点(该句)的时候,停一下,方便用户看看当前的情况,包括变量等等. Eclipse的设置断点很简单的啊,在java视图下,直接在你要设置断点的那行的最左边,双击即可 ...

  8. 用eclipse开发flex程序--- 配置eclipse(flex builder 3.0)

    下载eclipse的插件包:FB3_WWEJ_Plugin.exe 地址: 点击安装,完成.假设安装目录为:D:\Program Files\Adobe\Flex Builder 3 Plug-in ...

  9. 如何使用eclipse开发单片机程序

    目前的GNU MCU Eclipse可以支持ARM内核和RISC V内核的MCU. 下载gnu mcu eclipse https://gnu-mcu-eclipse.github.io/downlo ...

最新文章

  1. c语言如何初始化随机数种子,关于随机数函数rand和其种子初始化
  2. linux kernel的spin_lock的详细介绍(以arm64为例)
  3. 黑马12期 day73-EasyUI笔记(2017年7月11日16:23:45)
  4. fckeditor异常总结---WARN No appenders could be found for logger的解决方法
  5. JAVA Swing GUI设计 WindowBuilder Pro Container使用大全1——JTabbePane(卡片)使用
  6. 如何在form初始化时自动隐藏FOLDER列
  7. Unity MRTK(一)
  8. 关于在Ubuntu中更新pip时遇到的问题及解决方法
  9. 大疆新品:机甲大师RoboMaster S1介绍(AI 学习小伙伴)
  10. RunningCheese Firefox 71.0 正式版 [1225]
  11. Arduino颜色分类器
  12. ArcGIS模型构建器计算几何的方法
  13. 《光剑文集》春心沁透: 99首
  14. 魔兽世界WOW服务器端的模拟器【2010】
  15. 第26章 SpringMVC中基于注解的Controller(一)
  16. android 短信拦截删除,无需安装任何App!教你一招杜绝垃圾电话短信
  17. 我坚持写公众号的初衷是什么?
  18. CronScheduleBuilder定时任务说明
  19. Centos7 安装VLC播放器
  20. 查互联网ip(公网ip)

热门文章

  1. antd upload手动上传_基于MVVCTP5的文件上传
  2. Java中只存在值传递
  3. 关于VBScript的运行环境
  4. 2022-03-29 软件外包流程
  5. 嘉楠勘智 K210 RISC-V 64位双核处理器开发板(荔枝丹)
  6. JavaWeb——web.xml配置详细解读
  7. C#中的委托和Java中的“委托”(Java8 lambda表达式)
  8. Go发起Http请求及获取相关参数
  9. JavaScript事件触发列表与解说
  10. python中队列的应用用场景_消息队列使用的四种场景介绍