Hbase 的javaAPI基本操作用 在idea上的实现
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上的实现相关推荐
- Hbase的JavaAPI
Hbase的JavaAPI 一.java操作Hbase步骤 二.添加依赖 三.获取连接 四.新增.删除命名空间 五.新增表 五.修改表 六.删除表 七.DML操作 1.增加一行或多行数据 2.删除一行 ...
- HBase学习-----javaAPI详细教程
这里进入HBase的javaAPI章节进行学习,这里我会非常详细的讲述如何创建连接和基础的使用,以及一个小项目的学习.跟随着我往下看 HBase的javaAPI 一.API 几个主要的Hbase AP ...
- Hbase教程(四) Hbase数据库JavaAPI接口
Hbase教程(四) Hbase数据库JavaAPI接口 Hbase是一个分布式的.面向列的开源数据库,HDFS文件操作常有两种方式,一种是命令行方式,即Hbase提供了一套与Linux文件命令类似的 ...
- HBase学习总结(2):HBase介绍及其基本操作
(HBase是一种数据库:Hadoop数据库,它是一种NoSQL存储系统,专门设计用来快速随机读写大规模数据.在已成功安装并正常启动的前提下,本文介绍HBase的基本操作.) 一.HBase简介 什么 ...
- Hbase之一月速成:Hbase的JavaAPI操作
目录 一.需求与数据集 二.准备工作 1.创建一个maven工程 2.修改prom文件,添加依赖 3.复制Hadoop的配置文件core-site.xml和HBase的配置文件hbase-site.x ...
- HBase详解(对hbase集群搭建、读写流程、hbase的javaApi等细致入微的讲解与保姆级的图解)
学HBase的意义是什么 我本想用MySQL来与HBase作比较,但发现他们两者毫无可比性,因为两者运用领域不同,各自有各自的优点,就好比爬山穿登山鞋,潜水穿脚蹼一般. 一门技术的兴起,一个优秀的开源 ...
- 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
- 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶 1
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
- HBase Shell 的基本操作
概述 前面写了一些 Hadoop, Zookeeper 及 Hbase 分布式环境搭建的文章.或许你在搭建的过程中遇到了一些不如意的事情,但我相信总是可以解决的.如果你已经完成了环境的搭建,那么就可以 ...
最新文章
- SAP移动战略与HANA已为BI爆发做好准备
- linux查看主机端口进程命令
- php字符串赋值给变量,JavaScript-如何将一个PHP字符串安全赋值给Javascript变量(包含引号和换行符的)...
- 欢乐纪中某A组赛【2019.7.12】
- Java中获得了方法名称的字符串,怎么样调用该方法
- 配置快捷键让Total Commander跳转到某个目录
- 如何批量将 Excel 文档转为 Txt 文本格式
- 颜色码对照表(英文代码	形像颜色	HEX格式	RGB格式)
- 92.91p31.space\/index.php 92.91p31.space,93.91p31.space
- IndentationError: unindent does not match any outer indentation level 错误解决
- 宫颈癌预测--随机森林
- java正则判断银行卡号,验证银行卡号正则
- 笔记本无网络计算机,win10笔记本电脑连接wifi显示无internet的详细处理方法
- 企业微信可以直接转账吗?
- PrettyZoo V1.8.0 发布了, 一款值的收藏的 Zookeeper 图形化工具
- 【解决方案】Android开发填坑之RecyclerView刷新闪烁
- (裴蜀定理)ax + by = m 有解,当且仅当 m 是 gcd(a,b) 的倍数
- 点燃我,温暖你,李峋同款爱心代码!
- 约数的一些定理——数论
- 大数据技术原理与应用第8讲:数据仓库Hive
热门文章
- 剑指offer之 二叉搜索树的后续遍历序列
- arm opcode hook
- 初一计算机下册理论知识,初中信息技术七年级下册(第七版)
- 抓到一只苍蝇 writeup
- html5移动web开发黑马掌上商城_这套web前端与移动开发教程,帮助了众多小白转行就业...
- Lintcode--6(767)--翻转数组
- Lintcode--1(463)--整数排序
- GIS实战应用案例100篇(二)-元胞自动机模拟城市扩张过程
- 神经网络最常用的10个激活函数,一文详解数学原理及优缺点
- android实现箭头流程列表_Android开发关于ExpandableListView上下箭头左右显示的笔记...