- 浏览: 25617 次
- 性别:
- 来自: 深圳
文章分类
最新评论
package org.jumore.test;
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.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 HBaseTest {
// 声明静态配置
private static Configuration conf = null;
static {
conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "192.168.1.141,192.168.1.143,192.168.1.145");
// conf.set("hbase.zookeeper.quorum", "192.168.23.31,192.168.23.33,192.168.23.34");
// conf.set("hbase.zookeeper.quorum", "172.18.203.113,172.18.203.114,172.18.203.115,172.18.203.116");
conf.set("hbase.zookeeper.property.clientPort", "2181");
}
//判断表是否存在
private static boolean isExist(String tableName) throws IOException {
HBaseAdmin hAdmin = new HBaseAdmin(conf);
return hAdmin.tableExists(tableName);
}
// 创建数据库表
public static void createTable(String tableName, String[] columnFamilys)
throws Exception {
// 新建一个数据库管理员
HBaseAdmin hAdmin = new HBaseAdmin(conf);
if (hAdmin.tableExists(tableName)) {
System.out.println("表 "+tableName+" 已存在!");
System.exit(0);
} else {
// 新建一个students表的描述
HTableDescriptor tableDesc = new HTableDescriptor(tableName);
// 在描述里添加列族
for (String columnFamily : columnFamilys) {
tableDesc.addFamily(new HColumnDescriptor(columnFamily));
}
// 根据配置好的描述建表
hAdmin.createTable(tableDesc);
System.out.println("创建表 "+tableName+" 成功!");
}
}
// 删除数据库表
public static void deleteTable(String tableName) throws Exception {
// 新建一个数据库管理员
HBaseAdmin hAdmin = new HBaseAdmin(conf);
if (hAdmin.tableExists(tableName)) {
// 关闭一个表
hAdmin.disableTable(tableName);
hAdmin.deleteTable(tableName);
System.out.println("删除表 "+tableName+" 成功!");
} else {
System.out.println("删除的表 "+tableName+" 不存在!");
System.exit(0);
}
}
// 添加一条数据
public static void addRow(String tableName, String row,
String columnFamily, String column, String value) throws Exception {
HTable table = new HTable(conf, tableName);
Put put = new Put(Bytes.toBytes(row));// 指定行
// 参数分别:列族、列、值
put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),
Bytes.toBytes(value));
table.put(put);
}
// 删除一条(行)数据
public static void delRow(String tableName, String row) throws Exception {
HTable table = new HTable(conf, tableName);
Delete del = new Delete(Bytes.toBytes(row));
table.delete(del);
}
// 删除多条数据
public static void delMultiRows(String tableName, String[] rows)
throws Exception {
HTable table = new HTable(conf, tableName);
List<Delete> delList = new ArrayList<Delete>();
for (String row : rows) {
Delete del = new Delete(Bytes.toBytes(row));
delList.add(del);
}
table.delete(delList);
}
// 获取一条数据
public static void getRow(String tableName, String row) throws Exception {
HTable table = new HTable(conf, tableName);
Get get = new Get(Bytes.toBytes(row));
Result result = table.get(get);
// 输出结果,raw方法返回所有keyvalue数组
for (KeyValue rowKV : result.raw()) {
System.out.print("行名:" + new String(rowKV.getRow()) + " ");
System.out.print("时间戳:" + rowKV.getTimestamp() + " ");
System.out.print("列族名:" + new String(rowKV.getFamily()) + " ");
System.out.print("列名:" + new String(rowKV.getQualifier()) + " ");
System.out.println("值:" + new String(rowKV.getValue()));
}
}
// 获取所有数据
public static void getAllRows(String tableName) throws Exception {
HTable table = new HTable(conf, tableName);
Scan scan = new Scan();
ResultScanner results = table.getScanner(scan);
// 输出结果
for (Result result : results) {
for (KeyValue rowKV : result.raw()) {
// System.out.print("行名:" + new String(rowKV.getRow()) + " ");
// System.out.print("时间戳:" + rowKV.getTimestamp() + " ");
// System.out.print("列族名:" + new String(rowKV.getFamily()) + " ");
// System.out
// .print("列名:" + new String(rowKV.getQualifier()) + " ");
// System.out.println("值:" + new String(rowKV.getValue()));
String putStr = "put " + "\""+tableName+"\"" + ", " + "\"" +new String(rowKV.getRow())+ "\"" + ", " + "\""+ new String(rowKV.getFamily()) + ":" + new String(rowKV.getQualifier()) + "\""+ ", "+ "\"" + new String(rowKV.getValue())+ "\"";
System.out.println(putStr);
}
}
}
// 主函数
// public static void main(String[] args) {
// try {
// String tableName = "huym:student";
// // 第一步:创建数据库表:“student”
// String[] columnFamilys = { "info", "course" };
// HBaseTest.createTable(tableName, columnFamilys);
// // 第二步:向数据表的添加数据
// // 添加第一行数据
// if (isExist(tableName)) {
// HBaseTest.addRow(tableName, "zpc", "info", "age", "20");
// HBaseTest.addRow(tableName, "zpc", "info", "sex", "boy");
// HBaseTest.addRow(tableName, "zpc", "course", "china", "97");
// HBaseTest.addRow(tableName, "zpc", "course", "math", "128");
// HBaseTest.addRow(tableName, "zpc", "course", "english", "85");
//
// HBaseTest.addRow(tableName, "niaopeng", "course", "english","99");
// // 第三步:获取一条数据
// System.out.println("**************获取一条(zpc)数据*************");
// HBaseTest.getRow(tableName, "zpc");
// // 第四步:获取所有数据
// System.out.println("**************获取所有数据***************");
// HBaseTest.getAllRows(tableName);
//
// // 第五步:删除一条数据
// System.out.println("************删除一条(zpc)数据************");
// HBaseTest.delRow(tableName, "zpc");
// HBaseTest.getAllRows(tableName);
// // 第六步:删除多条数据
// System.out.println("**************删除多条数据***************");
// String rows[] = new String[] { "qingqing","xiaoxue" };
// HBaseTest.delMultiRows(tableName, rows);
// HBaseTest.getAllRows(tableName);
// // 第七步:删除数据库
// System.out.println("***************删除数据库表**************");
// HBaseTest.deleteTable(tableName);
// System.out.println("表"+tableName+"存在吗?"+isExist(tableName));
// } else {
// System.out.println(tableName + "此数据库表不存在!");
// }
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
public static void main(String[] args) {
try {
String tableName = "jmnx:transaction";
// 添加第一行数据
if (isExist(tableName)) {
// 第三步:获取一条数据
//System.out.println("**************获取一条(zpc)数据*************");
//HBaseTest.getRow(tableName, "platform");
// 第四步:获取所有数据
// System.out.println("**************获取所有数据***************");
HBaseTest.getAllRows(tableName);
} else {
System.out.println(tableName + "此数据库表不存在!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
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.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 HBaseTest {
// 声明静态配置
private static Configuration conf = null;
static {
conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "192.168.1.141,192.168.1.143,192.168.1.145");
// conf.set("hbase.zookeeper.quorum", "192.168.23.31,192.168.23.33,192.168.23.34");
// conf.set("hbase.zookeeper.quorum", "172.18.203.113,172.18.203.114,172.18.203.115,172.18.203.116");
conf.set("hbase.zookeeper.property.clientPort", "2181");
}
//判断表是否存在
private static boolean isExist(String tableName) throws IOException {
HBaseAdmin hAdmin = new HBaseAdmin(conf);
return hAdmin.tableExists(tableName);
}
// 创建数据库表
public static void createTable(String tableName, String[] columnFamilys)
throws Exception {
// 新建一个数据库管理员
HBaseAdmin hAdmin = new HBaseAdmin(conf);
if (hAdmin.tableExists(tableName)) {
System.out.println("表 "+tableName+" 已存在!");
System.exit(0);
} else {
// 新建一个students表的描述
HTableDescriptor tableDesc = new HTableDescriptor(tableName);
// 在描述里添加列族
for (String columnFamily : columnFamilys) {
tableDesc.addFamily(new HColumnDescriptor(columnFamily));
}
// 根据配置好的描述建表
hAdmin.createTable(tableDesc);
System.out.println("创建表 "+tableName+" 成功!");
}
}
// 删除数据库表
public static void deleteTable(String tableName) throws Exception {
// 新建一个数据库管理员
HBaseAdmin hAdmin = new HBaseAdmin(conf);
if (hAdmin.tableExists(tableName)) {
// 关闭一个表
hAdmin.disableTable(tableName);
hAdmin.deleteTable(tableName);
System.out.println("删除表 "+tableName+" 成功!");
} else {
System.out.println("删除的表 "+tableName+" 不存在!");
System.exit(0);
}
}
// 添加一条数据
public static void addRow(String tableName, String row,
String columnFamily, String column, String value) throws Exception {
HTable table = new HTable(conf, tableName);
Put put = new Put(Bytes.toBytes(row));// 指定行
// 参数分别:列族、列、值
put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),
Bytes.toBytes(value));
table.put(put);
}
// 删除一条(行)数据
public static void delRow(String tableName, String row) throws Exception {
HTable table = new HTable(conf, tableName);
Delete del = new Delete(Bytes.toBytes(row));
table.delete(del);
}
// 删除多条数据
public static void delMultiRows(String tableName, String[] rows)
throws Exception {
HTable table = new HTable(conf, tableName);
List<Delete> delList = new ArrayList<Delete>();
for (String row : rows) {
Delete del = new Delete(Bytes.toBytes(row));
delList.add(del);
}
table.delete(delList);
}
// 获取一条数据
public static void getRow(String tableName, String row) throws Exception {
HTable table = new HTable(conf, tableName);
Get get = new Get(Bytes.toBytes(row));
Result result = table.get(get);
// 输出结果,raw方法返回所有keyvalue数组
for (KeyValue rowKV : result.raw()) {
System.out.print("行名:" + new String(rowKV.getRow()) + " ");
System.out.print("时间戳:" + rowKV.getTimestamp() + " ");
System.out.print("列族名:" + new String(rowKV.getFamily()) + " ");
System.out.print("列名:" + new String(rowKV.getQualifier()) + " ");
System.out.println("值:" + new String(rowKV.getValue()));
}
}
// 获取所有数据
public static void getAllRows(String tableName) throws Exception {
HTable table = new HTable(conf, tableName);
Scan scan = new Scan();
ResultScanner results = table.getScanner(scan);
// 输出结果
for (Result result : results) {
for (KeyValue rowKV : result.raw()) {
// System.out.print("行名:" + new String(rowKV.getRow()) + " ");
// System.out.print("时间戳:" + rowKV.getTimestamp() + " ");
// System.out.print("列族名:" + new String(rowKV.getFamily()) + " ");
// System.out
// .print("列名:" + new String(rowKV.getQualifier()) + " ");
// System.out.println("值:" + new String(rowKV.getValue()));
String putStr = "put " + "\""+tableName+"\"" + ", " + "\"" +new String(rowKV.getRow())+ "\"" + ", " + "\""+ new String(rowKV.getFamily()) + ":" + new String(rowKV.getQualifier()) + "\""+ ", "+ "\"" + new String(rowKV.getValue())+ "\"";
System.out.println(putStr);
}
}
}
// 主函数
// public static void main(String[] args) {
// try {
// String tableName = "huym:student";
// // 第一步:创建数据库表:“student”
// String[] columnFamilys = { "info", "course" };
// HBaseTest.createTable(tableName, columnFamilys);
// // 第二步:向数据表的添加数据
// // 添加第一行数据
// if (isExist(tableName)) {
// HBaseTest.addRow(tableName, "zpc", "info", "age", "20");
// HBaseTest.addRow(tableName, "zpc", "info", "sex", "boy");
// HBaseTest.addRow(tableName, "zpc", "course", "china", "97");
// HBaseTest.addRow(tableName, "zpc", "course", "math", "128");
// HBaseTest.addRow(tableName, "zpc", "course", "english", "85");
//
// HBaseTest.addRow(tableName, "niaopeng", "course", "english","99");
// // 第三步:获取一条数据
// System.out.println("**************获取一条(zpc)数据*************");
// HBaseTest.getRow(tableName, "zpc");
// // 第四步:获取所有数据
// System.out.println("**************获取所有数据***************");
// HBaseTest.getAllRows(tableName);
//
// // 第五步:删除一条数据
// System.out.println("************删除一条(zpc)数据************");
// HBaseTest.delRow(tableName, "zpc");
// HBaseTest.getAllRows(tableName);
// // 第六步:删除多条数据
// System.out.println("**************删除多条数据***************");
// String rows[] = new String[] { "qingqing","xiaoxue" };
// HBaseTest.delMultiRows(tableName, rows);
// HBaseTest.getAllRows(tableName);
// // 第七步:删除数据库
// System.out.println("***************删除数据库表**************");
// HBaseTest.deleteTable(tableName);
// System.out.println("表"+tableName+"存在吗?"+isExist(tableName));
// } else {
// System.out.println(tableName + "此数据库表不存在!");
// }
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
public static void main(String[] args) {
try {
String tableName = "jmnx:transaction";
// 添加第一行数据
if (isExist(tableName)) {
// 第三步:获取一条数据
//System.out.println("**************获取一条(zpc)数据*************");
//HBaseTest.getRow(tableName, "platform");
// 第四步:获取所有数据
// System.out.println("**************获取所有数据***************");
HBaseTest.getAllRows(tableName);
} else {
System.out.println(tableName + "此数据库表不存在!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
- jmdata-manager-srteem.rar (145.4 KB)
- 下载次数: 0
发表评论
-
Canal相关理解
2017-12-29 16:18 462转载:http://www.importnew.com/251 ... -
kettle部署
2017-12-26 16:04 7251.将jmbi sql先上生产环境, 参考附件jmbi.sql ... -
crontab定时运行MR不行,手动shell可以执行成功问题排查过程
2017-12-26 15:48 863设置了定时任务,但MR任务没有执行。 第一步:手动执行she ... -
Flume+kafka+Spark Steaming demo2
2017-11-22 13:15 462一,flume配置 # Name the components ... -
Flume+Kafka+Spark Steaming demo
2017-11-21 15:21 445一.准备flume配置 a1.sources = r1 a1. ... -
HBase表导出成HDFS
2017-10-19 19:40 900导出步骤:在old cluster上/opt/cloudera ... -
zepplin实战
2017-10-13 16:10 362一句话介绍Zeppelin 以笔记(Note)的形式展示的数据 ... -
Azkaban安装
2017-10-10 18:32 906一.下载 https://github.com/azkaban ... -
KYKIN安装
2017-09-30 17:35 121. Kylin的一些概念 No. 关键字 解释 1 Kyl ... -
KYKIN安装
2017-09-30 17:40 3631. Kylin的一些概念 No. 关键字 解释 1 Kyl ... -
Logstash安装部署配置
2017-04-28 10:24 1033为了实现各业务平台日志信息采集到大数据平台hdf ... -
Ambari卸载shell
2017-03-28 17:28 469#!/bin/bash # Program: # uni ... -
linux ssh 相互密码登录
2017-02-22 13:40 4171.修改集群各机器名称 vim /etc/sysconfig/ ... -
Kettle Linux 安装部署
2017-02-15 17:20 1360一.安装JDK环境:根据自己的linux系统选择相应的版本,比 ... -
hadoop环境搭建
2017-01-23 17:31 354192.168.23.231 server1 192.168. ... -
环境安装
2017-01-17 16:26 393物理机部署分配 3台物理机上部署 Zookeeper 3个,F ... -
Storm demo
2016-12-19 15:50 441public class SentenceSpout exte ... -
运行Hadoop jar 第三方jar包依赖
2016-08-22 13:47 1027将自己编写的MapReduce程序打包成jar后,在运行 ha ... -
windows10下运行MR错误
2016-07-05 13:45 1671当在windows下运行MR程序时,会报各种错误。现把这次碰到 ... -
HBase问题
2016-06-16 17:02 3081.java.net.UnknownHostException ...
相关推荐
HBase API是开发者与HBase进行交互的主要接口,通过这个API可以实现对HBase表的创建、删除、增删改查等操作。 1. **HBase架构** - **Region Server**: HBase的数据存储在Region Server上,每个Region Server负责一...
HBase api 大数据,HBASE.094.5_API.chm
本压缩包"javaApi_sparkhiveAPI_hbaseAPI.zip"包含了2019年8月至10月期间针对这些技术的Java版API实现,以及与Spark相关的Hive和HBase API。以下是关于这些技术的详细知识: 1. **Java API for Hive**: - **Hive*...
hbase api chm
HBASE AP
HBase数据查询API HBase是一种分布式的、面向列的NoSQL数据库,主要应用于存储大量的半结构化数据。HBase提供了多种查询方式,包括单条查询和批量查询。 单条查询 单条查询是通过rowkey在table中查询某一行的数据...
本篇将详细介绍如何利用Python3的Hbase API来连接和操作HBase数据库。 首先,我们需要了解Python中用于连接HBase的库——HappyBase。HappyBase是一个Python库,它提供了一种更面向对象的方式来与HBase交互,使...
HbaseAPI.java
自行制作的HBase 1.2.0 Javadoc API CHM版本。内容抽取自官方站点网页
HBase-APi操作demo
HBase中文API为开发者提供了在中文环境中操作HBase的便利。 1. **入门** - **介绍**: HBase为大数据处理提供了实时读写能力,特别适合于存储海量稀疏数据。 - **快速开始**: 开发者通常需要了解如何创建表、插入...
"hbase java api 所需最精简 jar"这个标题意味着我们将探讨的是为了在Java环境中最小化依赖,但仍能实现基本HBase操作所需的JAR文件。 首先,我们需要理解HBase Java API的核心组件。HBase的Java客户端API提供了一...
在这个“hbase api demo”中,我们将深入探讨如何使用HBase的API进行基本的数据操作,包括创建表、插入数据以及通过关键字检索和特定查询条件获取数据。 首先,让我们了解HBase的基本概念。在HBase中,数据被组织成...
### HBase Java API类介绍 #### 一、概述 HBase是一个分布式的、面向列的开源数据库,基于Google的Bigtable论文实现。它适合于非结构化数据存储,并且能够实时处理PB级别的数据。HBase提供了Java API供开发者使用...
包含翻译后的API文档:flink-hbase_2.11-1.10.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.flink:flink-hbase_2.11:1.10.0; 标签:flink、11、apache、hbase_2、jar包、java、API文档、中文版; ...
hbase的api手册,包含hbase的变成接口和参数说明
在本文档中,我们将深入探讨如何使用Java API与HBase数据库进行交互,特别是关于如何创建表、修改表结构以及批量插入数据。HBase是Apache的一个分布式、可扩展的大数据存储系统,它基于谷歌的Bigtable设计,适用于...
赠送jar包:hbase-metrics-api-1.4.3.jar; 赠送原API文档:hbase-metrics-api-1.4.3-javadoc.jar; 赠送源代码:hbase-metrics-api-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-metrics-api-1.4.3.pom; ...
"Hbase 0.9 API"指的是HBase在0.94.5版本中的客户端API,这个版本是HBase发展历史上的一个重要里程碑,为开发者提供了丰富的功能来操作HBase数据库。 首先,HBase的API主要分为两种:Java API和Shell命令。Java API...