- 浏览: 551492 次
- 性别:
- 来自: 西安
博客专栏
-
Hive入门
浏览量:44453
文章分类
最新评论
-
freeluotao:
public void readFields(D ...
MapReduce直接连接Mysql获取数据 -
passionke:
在spark-sql中通过insert插入数据到HBase表时 ...
SparkSQL读取HBase数据 -
annmi_cai:
好好学习,天天向上!
[一起学Hive]之十七-从Hive表中进行数据抽样-Sampling -
annmi_cai:
好好学习,天天向上!
[一起学Hive]之十六-Hive的WEB页面接口-HWI -
annmi_cai:
好好学习,天天向上!
[一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)
package com.sdo.sjzx.jptj; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; 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.MasterNotRunningException; import org.apache.hadoop.hbase.ZooKeeperConnectionException; 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 Test { private static Configuration conf = null; static { conf = HBaseConfiguration.create(); conf.set( "hbase.zookeeper.quorum", "zk1,zk2,zk3"); } //参数:表名,列名(可以有多个) public void createTable(String tablename, String[] cfs) throws IOException { HBaseAdmin admin = new HBaseAdmin(conf); if (admin.tableExists(tablename)) { System.out.println("table already exists!"); } else { HTableDescriptor tableDesc = new HTableDescriptor(tablename); for (int i = 0; i < cfs.length; i++) { tableDesc.addFamily(new HColumnDescriptor(cfs[i])); } admin.createTable(tableDesc); System.out.println("table create OK!"); } } //删除表,先disable,再delete public void deleteTable(String tablename) throws IOException { try { HBaseAdmin admin = new HBaseAdmin(conf); admin.disableTable(tablename); admin.deleteTable(tablename); System.out.println("delete ok"); } catch (MasterNotRunningException e) { e.printStackTrace(); } catch (ZooKeeperConnectionException e) { e.printStackTrace(); } } //insert记录, public void writeRow(String tablename,String rowKey,Map<String,Map<String,String>> m) { try { HTable table = new HTable(conf, tablename); Put put = new Put(Bytes.toBytes(rowKey));//"001" Set<String> key = m.keySet(); for(Iterator<String> it = key.iterator();it.hasNext();){ String k = it.next(); Map<String,String> tmpM = m.get(k); Set<String> keyInner = tmpM.keySet(); for(Iterator<String> itInner = keyInner.iterator();itInner.hasNext();) { String kInner = itInner.next(); String vInner = tmpM.get(kInner); put.add(Bytes.toBytes(k), Bytes.toBytes(kInner), Bytes.toBytes(vInner)); table.put(put); } } } catch (IOException e) { e.printStackTrace(); } } public void deleteRow(String tablename, String rowkey) throws IOException { HTable table = new HTable(conf, tablename); List list = new ArrayList(); Delete d1 = new Delete(rowkey.getBytes()); list.add(d1); table.delete(list); System.out.println(""); } public static void selectRow(String tablename, String rowKey) throws IOException { HTable table = new HTable(conf, tablename); Get g = new Get(rowKey.getBytes()); Result rs = table.get(g); for (KeyValue kv : rs.raw()) { System.out.print(new String(kv.getRow()) + " "); System.out.print(new String(kv.getFamily()) + ":"); System.out.print(new String(kv.getQualifier()) + " "); System.out.print(kv.getTimestamp() + " "); System.out.println(new String(kv.getValue())); } } public void scaner(String tablename) { try { HTable table = new HTable(conf, tablename); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); for (Result r : rs) { KeyValue[] kv = r.raw(); for (int i = 0; i < kv.length; i++) { System.out.print(new String(kv[i].getRow()) + " "); System.out.print(new String(kv[i].getFamily()) + ":"); System.out.print(new String(kv[i].getQualifier()) + " "); System.out.print(kv[i].getTimestamp() + " "); System.out.println(new String(kv[i].getValue())); } } } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] agrs) { try { String tablename = "lxwtest"; Test t = new Test(); t.deleteTable(tablename); //创建一张列为userinfo和userdeptinfo的表 String[] s = new String[2]; s[0] = "userinfo"; s[1] = "userdeptinfo"; t.createTable(tablename,s); String userId = "003"; String userName = "wangwu"; int age = 25; String dept = "data analysis"; //向userinfo中写入name=?和age=? //向userdeptinfo中写入dept=? //这里将源数据构建合适的数据结构,比如Map<String,Map<String,String>> //来完成insert Map<String,Map<String,String>> m = new HashMap<String,Map<String,String>>(); Map<String,String> kvUserInfo = new HashMap<String,String>(); kvUserInfo.put("name", userName); kvUserInfo.put("age",age+""); m.put("userinfo", kvUserInfo); Map<String,String> kvUserDeptInfo = new HashMap<String,String>(); kvUserDeptInfo.put("deptname", dept); m.put("userdeptinfo", kvUserDeptInfo); t.writeRow(tablename,userId,m); t.scaner(tablename); } catch (Exception e) { e.printStackTrace(); } } }
scan出来的结果:
hbase(main):028:0> scan 'lxwtest' ROW COLUMN+CELL 001 column=userdeptinfo:deptname, timestamp=1340092898883, value=data platform 001 column=userinfo:age, timestamp=1340092898883, value=27 001 column=userinfo:name, timestamp=1340092898883, value=zhangsan 002 column=userdeptinfo:deptname, timestamp=1340092951198, value=data platform 002 column=userinfo:age, timestamp=1340092951198, value=25 002 column=userinfo:name, timestamp=1340092951198, value=lisi 003 column=userdeptinfo:deptname, timestamp=1340093006923, value=data analysis 003 column=userinfo:age, timestamp=1340093006923, value=25 003 column=userinfo:name, timestamp=1340093006923, value=wangwu
发表评论
-
JAVA开源中文分词工具-IKAnalyzer下载及使用
2015-07-22 08:57 3189关键字:中文分词、IKAnalyzer 最近有个需 ... -
Java实现的简单双向Map,支持重复Value
2015-07-14 14:58 4180关键字:Java双向Map、DualHashBidiMap ... -
MapReduce和Hive支持递归子目录作为输入
2015-07-08 14:41 3205关键字:MapReduce、Hive ... -
异构数据源海量数据交换工具-Taobao DataX 下载和使用
2015-05-29 11:59 2418DataX介绍 DataX是一个在 ... -
Java使用Pipeline对Redis批量读写(hmset&hgetall)
2015-05-26 08:46 10383一般情况下,Redis Client端发出一 ... -
Java和Shell版 十进制和十六进制(Hex)互转
2015-05-22 17:31 2440文章来自: http://lxw1234.com/?p ... -
Hadoop生态系统官网、下载地址、文档
2015-05-05 17:22 1878Apache版本: Hadoop官网:http:// ... -
JAVA获取天气
2014-12-09 11:59 1717package javaapplication1; ... -
大数据平台任务调度监控系统
2014-10-24 16:35 10593记录一下正在开发 ... -
JAVA通用的字符串转日期
2014-10-22 14:54 1470因为需求,只写了年月日时的自动转换。 public ... -
Neo4j使用例子
2014-09-11 15:49 3002准备开发一个任务调度系统,其中使用Neo4j来保存和查询任务 ... -
HttpClient PostMethod 传递json
2014-04-02 15:05 2808记录下,备查。 /** * 获取post请求响 ... -
java Thrift example
2014-04-02 09:22 1505记录备用。。 test.thrift namesp ... -
Hive over HBase和Hive over HDFS性能比较分析
2014-01-22 16:16 7826环境配置: hadoop-2.0.0-cdh4.3 ... -
MapReduce直接连接Mysql获取数据
2013-05-31 17:29 6357Mysql中数据: mysql> select ... -
MapReduce读取HDFS,将结果写入MongoDB
2013-05-29 11:07 5146参考:http://docs.mongodb.org/eco ... -
Kerboers认证由于和Master时间不同步导致的错误
2013-04-03 15:56 4020刚发现Hbase集群一台RegionServer挂掉了,重 ... -
hadoop mapreduce程序jar包版本冲突解决方法
2013-01-08 16:34 3471写MR程序时往往会使用到第三方包, 如果这些包在集群中不存在, ... -
hadoop mapreduce程序jar包版本冲突解决方法
2013-01-08 16:08 0<!-- [if gte mso 9]><x ... -
windows上编译eclipse-plugin for hadoop-0.20.2-cdh3u3
2012-12-17 17:24 2615hadoop-0.20.2-cdh3u3目录为:E:\hado ...
相关推荐
HBase基本操作 增删改查 java代码 要使用须导入对应的jar包
Java 操作 Hbase 进行建表、删表以及对数据进行增删改查 一、Hbase 简介 Hbase 是一个开源的、分布式的、基于 column-family 的 NoSQL 数据库。它是基于 Hadoop 的,使用 HDFS 作为其存储层。Hbase 提供了高性能、...
在Java编程环境中,操作HBase并将其数据写入HDFS(Hadoop Distributed File System)是一项常见的任务,特别是在大数据处理和分析的场景下。本篇将详细介绍如何使用Java API实现这一功能,以及涉及到的关键技术和...
本示例代码主要展示了如何使用Java API连接HBase数据库,并执行基本的CRUD(创建、读取、更新、删除)操作,同时也包括了批量操作的支持。下面我们将详细探讨这些知识点。 首先,连接HBase需要引入HBase的客户端库...
以上就是使用Java连接HBase的基本知识,实际应用中可能还需要处理并发控制、错误处理、性能优化等问题。理解HBase的数据模型(行、列族、列限定符和时间戳)以及HBase的API用法,对于高效地使用HBase至关重要。同时...
Hbase JAVA编程开发实验报告以及代码,1 按照“Hbase应用开发实验1.pdf”中给出的说明,完成相关相关实验及JAVA程序的编写、调试和运行,提交JAVA源程序(AccessObject.java, HBaseTester.java, User.java)及运行...
在Java中操作HBase是一种常见的任务,特别是在大数据处理和存储的场景中。HBase是一个分布式的、基于列族的NoSQL数据库,它构建在Hadoop之上,提供了高性能、低延迟的数据存储和访问能力。本教程将详细介绍如何使用...
本示例将通过Java API详细介绍如何进行Hbase的基本操作,包括增、删、改、查以及创建表。 首先,我们需要在Java项目中引入Hbase的相关依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml <groupId>...
创建表操作是使用Java对HBase进行操作的基本步骤。下面是一个创建表的示例代码: public class HBaseClient { public void createTable() throws IOException { // 1. 创建配置 Configuration conf = ...
在本文档中,我们将深入探讨如何使用Java API与HBase数据库进行交互,特别是关于如何创建表、修改表结构以及批量插入数据。...理解这些基本操作对于高效地使用HBase至关重要,特别是在大数据处理和分析的场景下。
为了在Java环境中顺利地操作HBase,开发者需要引入一系列的依赖库,这些库包含了与HBase通信所需的各种类和方法。 首先,`hbase-client.jar`是核心客户端库,包含了与HBase服务器通信的所有必要组件。这个包提供了...
总之,HBase的Java API提供了丰富的功能,使得开发人员能够灵活地对HBase进行操作。理解并熟练掌握这些API,对于开发高效、稳定的数据处理系统至关重要。在具体实践中,应根据业务需求选择合适的查询策略,以充分...
在Java中操作HBase,过滤数据是至关重要的任务,特别是在处理大数据时,高效地筛选出所需信息能够极大地提升性能。本文将深入探讨HBase的比较过滤器RowFilter的使用源码,帮助你理解如何在实际项目中应用这一关键...
在本文中,我们将详细讲解Hbase的安装过程以及基本操作,特别针对在Linux环境下使用清华大学镜像进行下载的情况。Hbase是一个分布式的、面向列的数据库,常用于大数据存储,是Apache Hadoop生态系统的一部分。以下是...
Hbase 基本操作类 static { //此处可以使用hbase的配置文件,也可以通过代码来实例化hbase连接 /* * Configuration HBASE_CONFIG = new Configuration(); * HBASE_CONFIG.set("hbase.zookeeper.quorum", ...
Java连接远程HBase数据库是一项常见的任务,特别是在大数据处理和分布式存储的应用场景中。HBase是一个构建在Hadoop文件系统(HDFS)...通过理解并应用这些知识,你可以有效地在Java应用程序中集成和操作HBase数据库。
实验的目标是让你理解HBase在Hadoop架构中的地位,以及掌握通过Shell命令和Java API进行基本操作的方法。 首先,让我们来看看实验的平台配置。实验要求的操作系统是Linux,这通常是大数据处理的首选平台,因为它...
**四、HBase基本操作** 1. **创建表**:使用HBase shell或Java API,通过`create '表名', '列族'`命令创建表,例如`create 'users', 'info'`创建名为users的表,列族为info。 2. **插入数据**:插入数据通过`put '...
在Java API中访问HBase是大数据处理中常见的一项任务,HBase作为一个分布式、列式存储的NoSQL数据库,常用于海量数据的实时读写。...通过这些基本操作,你将能够使用Java API高效地访问和管理HBase中的数据。
在Java中操作HBase,尤其是基于0.96版本的...以上就是使用Java API操作HBase的基本步骤。理解这些概念和方法对于有效管理和处理HBase中的数据至关重要。实际应用中,还需要考虑性能优化、并发控制以及错误处理等细节。