1.保证集群开启:

jps有如下进程

2.pom文件中的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zhiyou100</groupId><artifactId>hbasedemo</artifactId><version>1.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><hbase.version>1.4.8</hbase.version></properties><dependencies><!--hbase--><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>${hbase.version}</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-common</artifactId><version>${hbase.version}</version></dependency><!--要使用HBase的MapReduce API--><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>${hbase.version}</version></dependency></dependencies></project>

3.编写配置文件:hbase-site.xml

将集群上$HBASE_HOME/conf/hbase-site.xml拷贝过来就可以,也可以直接复制下面内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/**** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreements.  See the NOTICE file* distributed with this work for additional information* regarding copyright ownership.  The ASF licenses this file* to you under the Apache License, Version 2.0 (the* "License"); you may not use this file except in compliance* with the License.  You may obtain a copy of the License at**     http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/
-->
<configuration><property><name>hbase.rootdir</name><value>hdfs://master2:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property>
<!--conf.set("hbase.zookeeper.quorum", "master2");--><!--// 设置Zookeeper,直接设置IP地址--><property><name>hbase.zookeeper.quorum</name><value>master2</value></property></configuration>

---注意:如果没有再本地的C:\Windows\System32\drivers\etc路径下的hosts文件中配置IP 与之对应的主机名

请将上面的主机名(master2)填写成自己的IP

4.编写java代码--创建类:HBaseDDL

package com.hbase.DDL;import com.google.common.io.Resources;
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.*;
import org.apache.hadoop.hbase.util.Bytes;import java.io.IOException;public class HBaseDDL {private static Configuration configuration;private static Connection connection;private static Admin admin;static {//1.获得Configuration实例并进行相关设置configuration = HBaseConfiguration.create();configuration.addResource(Resources.getResource("hbase-site.xml"));//2.获得Connection实例try {connection = ConnectionFactory.createConnection(configuration);//3.1获得Admin接口admin = connection.getAdmin();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws IOException {//创建表String  familyNames[]={"nature","social"};createTable("test_hbase",familyNames);//向表中插入数据insert("test_hbase","libai","nature","height","25");//删除表dropTable("test_hbase");}/*** 创建表* @param tableName 表名* @param familyNames 列族名* */public static void createTable(String tableName, String familyNames[]) throws IOException {//如果表存在退出if (admin.tableExists(TableName.valueOf(tableName))) {System.out.println("Table exists!");return;}//通过HTableDescriptor类来描述一个表,HColumnDescriptor描述一个列族HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));for (String familyName : familyNames) {tableDescriptor.addFamily(new HColumnDescriptor(familyName));}//tableDescriptor.addFamily(new HColumnDescriptor(familyName));admin.createTable(tableDescriptor);System.out.println("createtable success!");}/*** 删除表* @param tableName 表名* */public static void dropTable(String tableName) throws IOException {//如果表不存在报异常if (!admin.tableExists(TableName.valueOf(tableName))) {System.out.println(tableName+"不存在");return;}//删除之前要将表disableif (!admin.isTableDisabled(TableName.valueOf(tableName))) {admin.disableTable(TableName.valueOf(tableName));}admin.deleteTable(TableName.valueOf(tableName));System.out.println("deletetable " + tableName + "ok.");}/*** 指定行/列中插入数据* @param tableName 表名* @param rowKey 主键rowkey* @param family 列族* @param column 列* @param value 值* TODO: 批量PUT*/public static void insert(String tableName, String rowKey, String family, String column, String value) throws IOException {//3.2获得Table接口,需要传入表名Table table =connection.getTable(TableName.valueOf(tableName));Put put = new Put(Bytes.toBytes(rowKey));put.addColumn(Bytes.toBytes(family), Bytes.toBytes(column), Bytes.toBytes(value));table.put(put);System.out.println("insertrecored " + rowKey + " totable " + tableName + "ok.");}/*** 删除表中的指定行* @param tableName 表名* @param rowKey rowkey* TODO: 批量删除*/public static void delete(String tableName, String rowKey) throws IOException {//3.2获得Table接口,需要传入表名Table table = connection.getTable(TableName.valueOf(tableName));Delete delete = new Delete(Bytes.toBytes(rowKey));table.delete(delete);}
}

测试:1.创建表-----createTable("test_hbase",familyNames);

在hbase shell中list查看表


2.向创建的表中插入数据-----insert("test_hbase","luban","nature","height","250");

在hbase shell中scan 'test_hbase'查看表内容


3.删除表------dropTable("test_hbase");

在hbase shell中list查看表,已经没有了test_hbase

转载于:https://www.cnblogs.com/pigdata/p/10305588.html

Hbase 的javaAPI基本操作用 在idea上的实现相关推荐

  1. Hbase的JavaAPI

    Hbase的JavaAPI 一.java操作Hbase步骤 二.添加依赖 三.获取连接 四.新增.删除命名空间 五.新增表 五.修改表 六.删除表 七.DML操作 1.增加一行或多行数据 2.删除一行 ...

  2. HBase学习-----javaAPI详细教程

    这里进入HBase的javaAPI章节进行学习,这里我会非常详细的讲述如何创建连接和基础的使用,以及一个小项目的学习.跟随着我往下看 HBase的javaAPI 一.API 几个主要的Hbase AP ...

  3. Hbase教程(四) Hbase数据库JavaAPI接口

    Hbase教程(四) Hbase数据库JavaAPI接口 Hbase是一个分布式的.面向列的开源数据库,HDFS文件操作常有两种方式,一种是命令行方式,即Hbase提供了一套与Linux文件命令类似的 ...

  4. HBase学习总结(2):HBase介绍及其基本操作

    (HBase是一种数据库:Hadoop数据库,它是一种NoSQL存储系统,专门设计用来快速随机读写大规模数据.在已成功安装并正常启动的前提下,本文介绍HBase的基本操作.) 一.HBase简介 什么 ...

  5. Hbase之一月速成:Hbase的JavaAPI操作

    目录 一.需求与数据集 二.准备工作 1.创建一个maven工程 2.修改prom文件,添加依赖 3.复制Hadoop的配置文件core-site.xml和HBase的配置文件hbase-site.x ...

  6. HBase详解(对hbase集群搭建、读写流程、hbase的javaApi等细致入微的讲解与保姆级的图解)

    学HBase的意义是什么 我本想用MySQL来与HBase作比较,但发现他们两者毫无可比性,因为两者运用领域不同,各自有各自的优点,就好比爬山穿登山鞋,潜水穿脚蹼一般. 一门技术的兴起,一个优秀的开源 ...

  7. 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶

    一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...

  8. 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶 1

    一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...

  9. HBase Shell 的基本操作

    概述 前面写了一些 Hadoop, Zookeeper 及 Hbase 分布式环境搭建的文章.或许你在搭建的过程中遇到了一些不如意的事情,但我相信总是可以解决的.如果你已经完成了环境的搭建,那么就可以 ...

最新文章

  1. SAP移动战略与HANA已为BI爆发做好准备
  2. linux查看主机端口进程命令
  3. php字符串赋值给变量,JavaScript-如何将一个PHP字符串安全赋值给Javascript变量(包含引号和换行符的)...
  4. 欢乐纪中某A组赛【2019.7.12】
  5. Java中获得了方法名称的字符串,怎么样调用该方法
  6. 配置快捷键让Total Commander跳转到某个目录
  7. 如何批量将 Excel 文档转为 Txt 文本格式
  8. 颜色码对照表(英文代码 形像颜色 HEX格式 RGB格式)
  9. 92.91p31.space\/index.php 92.91p31.space,93.91p31.space
  10. IndentationError: unindent does not match any outer indentation level 错误解决
  11. 宫颈癌预测--随机森林
  12. java正则判断银行卡号,验证银行卡号正则
  13. 笔记本无网络计算机,win10笔记本电脑连接wifi显示无internet的详细处理方法
  14. 企业微信可以直接转账吗?
  15. PrettyZoo V1.8.0 发布了, 一款值的收藏的 Zookeeper 图形化工具
  16. 【解决方案】Android开发填坑之RecyclerView刷新闪烁
  17. (裴蜀定理)ax + by = m 有解,当且仅当 m 是 gcd(a,b) 的倍数
  18. 点燃我,温暖你,李峋同款爱心代码!
  19. 约数的一些定理——数论
  20. 大数据技术原理与应用第8讲:数据仓库Hive

热门文章

  1. 剑指offer之 二叉搜索树的后续遍历序列
  2. arm opcode hook
  3. 初一计算机下册理论知识,初中信息技术七年级下册(第七版)
  4. 抓到一只苍蝇 writeup
  5. html5移动web开发黑马掌上商城_这套web前端与移动开发教程,帮助了众多小白转行就业...
  6. Lintcode--6(767)--翻转数组
  7. Lintcode--1(463)--整数排序
  8. GIS实战应用案例100篇(二)-元胞自动机模拟城市扩张过程
  9. 神经网络最常用的10个激活函数,一文详解数学原理及优缺点
  10. android实现箭头流程列表_Android开发关于ExpandableListView上下箭头左右显示的笔记...