上节课我们一起简单学习了HBase的一些理论,这节课我们一起学习用java调HBase的接口来操作HBase。

我们首先建一个工程,这里我们还用原始的新建一个lib包。然后我们把下载的hbase-0.96.2-hadoop2-bin.tar.gz包解压,解压后有个lib包,我们把lib包下的jar包都拷贝到工程的lib目录下并Build path到工程当中。下图当中我只是截取了jar包的一部分。

下面我把代码粘贴出来。

package com.myhbase;

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.TableName;

import org.apache.hadoop.hbase.client.HBaseAdmin;

public class HBaseDemo {

public static void main(String[] args) throws Exception {

//首先得到HBase的配置对象

Configuration conf=HBaseConfiguration.create();

//配置Client连向谁,我们的Client连向的是zookeeper,因此我们配置的是zookeeper的信息,这些信息存在hbase-site.xml当中。

//我们会觉得不可思议,建HBase表,竟然Client连的既不是HMaster也不是HRegionServer,而是zookeeper,其实Client连zookeeper

//zookeeper只是负责协调,真正执行建表语句的还是HMaster,只不过zookeeper帮我们去找到HMaster并告诉它应该做什么了而已。

conf.set("hbase.zookeeper.quorum","itcast04:2181,itcast05:2181,itcast06:2181");

//要创建HBase表,我们需要HBaseAdmin对象

HBaseAdmin admin=new HBaseAdmin(conf);

//admin的create方法接收的参数是一个HTableDescriptor对象,因此我们需要先获取HTableDescriptor,

//我们给表起名为peoples(人类)

HTableDescriptor htd= new HTableDescriptor(TableName.valueOf("peoples"));

//我们还需要给表描述对象添加一些属性,我们在建表的时候会创建列族,首先我们创建一个名叫"info"的列族。

HColumnDescriptor hcd_info=new HColumnDescriptor("info");

//每个列族可以指定最大的版本存储数量,这里我们给列族"info"设置版本最大存储数量是3

hcd_info.setMaxVersions(3);

//接着我们再创建第二个列族

HColumnDescriptor hcd_data=new HColumnDescriptor("data");

//创建完两个列族,我们需要把列族添加到表的描述对象当中

htd.addFamily(hcd_info);

htd.addFamily(hcd_data);

//这时我们开始创建表,前面已经设置了一些属性值,因此生成的表便会带一些属性的。

admin.createTable(htd);

//用完admin对象要记得关闭

admin.close();

}

}

我们执行上面的代码,在Console控制台我们会看到如下所示的信息,其实这不算问题,这只是Windows和Linux平台不同而报的异常,程序捕捉到了该异常没有抛出来,只是打印出来了而已。这不影响我们的执行结果。

2016-11-03 00:49:34,201

ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - Failed to locate the winutils binary in the hadoop binary path

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)

at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)

at org.apache.hadoop.util.Shell.(Shell.java:293)

at org.apache.hadoop.util.StringUtils.(StringUtils.java:76)

at org.apache.hadoop.conf.Configuration.getStrings(Configuration.java:1514)

at org.apache.hadoop.hbase.zookeeper.ZKConfig.makeZKProps(ZKConfig.java:113)

at org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:265)

at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.(ZooKeeperWatcher.java:159)

at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.(ZooKeeperWatcher.java:134)

at org.apache.hadoop.hbase.client.ZooKeeperKeepAliveConnection.(ZooKeeperKeepAliveConnection.java:43)

at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getKeepAliveZooKeeperWatcher(HConnectionManager.java:1710)

at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:82)

at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.retrieveClusterId(HConnectionManager.java:806)

at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.(HConnectionManager.java:633)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:387)

at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:366)

at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:247)

at org.apache.hadoop.hbase.client.HBaseAdmin.(HBaseAdmin.java:183)

at com.myhbase.HBaseDemo.main(HBaseDemo.java:21)

我们到管理界面来看看是不是有我们刚才生成的表,我输入的地址是169.254.254.10:60010来访问其中169.254.254.10是我的itcast01的IP地址,你输入你itcast01的IP地址。60010是HBase的默认端口。如下图所示,可以看到,Tables当中已经有我们刚才生成的peoples表了,而且列族的名字,版本数量都一致,说明我们通过java来建表的操作成功了!!

这节课我们就一起学习到这里。

Java调用大数据接口,学习Hadoop第二十八课(java通过调用接口来操作HBase)相关推荐

  1. HLS第二十八课(UG871,接口综合)

    接口的返回值,入口参数,都是需要用pragma约束的. 首先来回顾一下接口. a clock and reset have been added to the design: ap_clk and a ...

  2. Java、大数据开发学习要点(持续更新中...)

    Java.大数据开发学习要点 这里有作者本人学习Java.大数据开发时的详细知识记录,随时根据学习状态更新. 以下是关于

  3. NeHe OpenGL第二十八课:贝塞尔曲面

    NeHe OpenGL第二十八课:贝塞尔曲面 贝塞尔曲面: 这是一课关于数学运算的,没有别的内容了.来,有信心就看看它吧. 贝塞尔曲面 作者: David Nikdel ( ogapo@ithink. ...

  4. java转大数据的学习路线

    不要错过文末彩蛋] 申明: 本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学. 前言: 一.背景介绍 二.大数 ...

  5. 大数据技术之Hadoop(HDFS)第2章 HFDS的Shell操作

    1)基本语法 bin/hadoop fs 具体命令 2)命令大全 [atguigu@hadoop102 hadoop-2.7.2]$ bin/hadoop fs [-appendToFile < ...

  6. java 实现类转接口_JAVA 基础 / 第二十九课:接口与继承 / JAVA中的对象转型

    2018-03-19 一.明确引用类型与对象类型的概念 引用类型与对象类型的概念 在这个例子里,有一个对象 new ADHero(), 同时也有一个引用ad 对象是有类型的, 是ADHero 引用也是 ...

  7. dto java_Java学习笔记(十八)——Java DTO

    [前面的话] 在和技术人员的交流中,各种专业术语会出现,每次都是默默的记录下出现的术语,然后再去网上查看是什么意思.最近做项目,需要使用到DTO,然后学习一下吧. 这篇文章是关于Java DTO的,选 ...

  8. 大数据运维实战第十九课 Kafka 应用场景、集群容量规划、架构设计应用案例

    Kafka 基础与入门 1. Kafka 基本概念 Kafka 官方的定义:是一种高吞吐量的分布式发布/订阅消息系统.这样说起来可能不太好理解,这里简单举个例子:现在是个大数据时代,各种商业.社交.搜 ...

  9. JAVA 基础 / 第二十八课:接口与继承 / 如何设计JAVA的接口?

    2018-03-19 在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击.这时候,就可以使用接口来实现这个效果.  接口就像是一种约定,我们约定某些英雄是物理系英雄,那么 ...

最新文章

  1. Java 9 揭秘(19. 平台和JVM日志)
  2. 蘋果全新MacBook價高質更精
  3. 乐视手机权限开启方法
  4. nginx搭建流媒体服务器
  5. [BZOJ2326] [HNOI2011] 数学作业 (矩阵乘法)
  6. 软件项目管理-构建之法-四周总结
  7. C#中split分隔字符串的应用
  8. Java项目开发全流程实践
  9. go修改服务器时间,Windows 配置时间同步服务器以及配置时间同步间隔
  10. android c++ http,开源一个C++实现的简单HTTP协议处理库
  11. 【优化算法】白鲨优化算法(WSO)【含Matlab源码 623期】
  12. 分期手续费率转换成年利率
  13. SpringCloud-SpringCloud Bus服务总线的介绍(Day9)
  14. C++动态数组类模板
  15. SQL经典50查询语句案例_7(查询学过“叶平”老师所教的所有课的同学的学号、姓名)
  16. ESP32 LVGL8.1 ——event 事件 (event 17)
  17. 让Python程序自动玩数独游戏,秒变最强大脑!
  18. word排版技巧:论文图表目录制作步骤。
  19. 公有ip地址和私有ip地址_如何查找您的私有和公共IP地址
  20. flutter 弹幕插件_Flutter 实现虎牙/斗鱼 弹幕功能

热门文章

  1. 快速搭建ThinkPHP框架
  2. 敦煌——期待再次与你相遇
  3. Paxos算法细节详解(一)--通过现实世界描述算法
  4. php熔断,限流、熔断、降级
  5. ubuntu 12.04 中使用经典的 GNOME桌面
  6. 一个屌丝程序猿的人生(一百一十四)
  7. 舔屏||老友记的Ben儿子居然长成了颜值巅峰的小李子
  8. 05 爬取周杰伦所有歌单
  9. OpenCV3计算机视觉Python语言实现人脸识别笔记
  10. Python优化之__slots__