HBase1.0.0 即Hadoop 2.6 采用maven 的方式实现HBase数据简单操作

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.HTablePool;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;/*** @author 作者 E-mail:* @version 创建时间:2015年12月28日 下午11:31:31 类说明*/
public class HBaseUtils {/** static { HBaseDaoPool.getInstance(); }*/private static Configuration conf;private static HBaseAdmin admin;   private  static HTable hTable = null;static {conf = new Configuration();String filePath = "hbase-site.xml";Path path = new Path(filePath);conf.addResource(path);conf = HBaseConfiguration.create(conf);}/*** 创建表并判断表是否存在,如果存在则退出* @param name* @param cf* @throws Exception*/@SuppressWarnings("deprecation")public static void create_table(String name, String cf) throws Exception {admin = new HBaseAdmin(conf);// 先检查表是否存在if (admin.tableExists(name)) {System.out.println("table is exit" + name);System.exit(0);}HTableDescriptor tableDesc = new HTableDescriptor(name);HColumnDescriptor hd = new HColumnDescriptor(cf);/* hd.setMaxVersions(version); */tableDesc.addFamily(hd);admin.createTable(tableDesc);admin.close();}/*** 获得HBase里面所有Table* @return* @throws Exception* @throws ZooKeeperConnectionException* @throws MasterNotRunningException*/@SuppressWarnings({ "unused", "deprecation" })private static List<String> getAllTable() throws MasterNotRunningException,ZooKeeperConnectionException, Exception {List<String> table = null;admin = new HBaseAdmin(conf);try {HTableDescriptor[] listTables = admin.listTables();if (listTables.length > 0) {table = new ArrayList<String>();for (HTableDescriptor tableDes : listTables) {table.add(tableDes.getNameAsString());System.out.println("table list:" + tableDes.getNameAsString());}}} catch (Exception e) {e.printStackTrace();}return table;}/*** 添加一条记录* @param tableName* @param rowKey* @param cloumnFianly* @param column* @param values* @return*/@SuppressWarnings({ "unused", "deprecation", "resource" })private static boolean addOneRows(String tableName, String rowKey,String cloumnFianly, String column, byte[] values) {HTablePool hTablePool = new HTablePool(conf, 1000);HTableInterface table = hTablePool.getTable(tableName);Put put = new Put(rowKey.getBytes());put.add(cloumnFianly.getBytes(), column.getBytes(), values);try {table.put(put);System.out.println("add success:" + rowKey + "....end");return true;} catch (IOException e) {e.printStackTrace();System.out.println("add false :" + rowKey + " error ...end");return false;}}/*** 根据表名插入一条数据,rowkey 做了简单处理,前面加了7位随机数* @param hConnection* @param tableName*/@SuppressWarnings("deprecation")public static void insertData(String tableName) {try {TableName table = TableName.valueOf(tableName);System.out.println(table + "table");Connection connection = ConnectionFactory.createConnection(conf);Table tb1 = connection.getTable(table);Random random = new Random();int sum = random.nextInt(9999999);String.format("%07d", sum);String rowKkey = String.format("%07d", sum);Put put = new Put(Bytes.toBytes(rowKkey));put.add(Bytes.toBytes("cf1"), Bytes.toBytes("address"), Bytes.toBytes("zz"));tb1.put(put);tb1.close();System.out.println("insert end....");} catch (IOException e) {e.printStackTrace();}}
 /*** 根据rowKey 获得一条记录* @param tableName* @param rowKey*/public void getOneRowsByKey(String tableName, String rowKey){try {hTable = new HTable(conf, tableName);Get get = new Get(Bytes.toBytes(rowKey));Result result = hTable.get( get );KeyValue[] rows = result.raw();for (int i = 0; i < rows.length; i++){String rowname = new String(rows[i].getQualifier());String rowValue = new String(rows[i].getValue());System.out.println("rowname:" + rowname + "--value--" +rowValue);}}catch ( IOException e ) {e.printStackTrace();}}

public static void main(String[] args) throws Exception {// addOneRows("test", "row7", "cf", "g", "value7".getBytes());// String table = "ps";String table = "a1";String cf = "cf";// create_table(table, cf);// getAllTable();
        insertData(table);System.out.println("success");}
}

maven 配置:

    <dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.6.0</version></dependency><!-- hbase --><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.0.0</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>1.0.0</version></dependency>

hbase-site.xml 配置
<?xml version="1.0" encoding="UTF-8"?><!--Autogenerated by Cloudera Manager-->
<configuration><property><name>hbase.rootdir</name><value>hdfs://HMaster/hbase</value></property><property><name>hbase.client.write.buffer</name><value>2097152</value></property><property><name>hbase.client.pause</name><value>100</value></property><property><name>hbase.client.retries.number</name><value>35</value></property><property><name>hbase.client.scanner.caching</name><value>100</value></property><property><name>hbase.client.keyvalue.maxsize</name><value>10485760</value></property><property><name>hbase.regionserver.thrift.http</name><value>false</value></property><property><name>hbase.thrift.support.proxyuser</name><value>false</value></property><property><name>hbase.rpc.timeout</name><value>60000</value></property><property><name>hbase.snapshot.enabled</name><value>true</value></property><property><name>hbase.snapshot.master.timeoutMillis</name><value>60000</value></property><property><name>hbase.snapshot.region.timeout</name><value>60000</value></property><property><name>hbase.snapshot.master.timeout.millis</name><value>60000</value></property><property><name>hbase.security.authentication</name><value>simple</value></property><property><name>zookeeper.session.timeout</name><value>60000</value></property><property><name>zookeeper.znode.parent</name><value>/hbase</value></property><property><name>zookeeper.znode.rootserver</name><value>root-region-server</value></property><property><name>hbase.zookeeper.quorum</name><value>node5,node2,node3,node4,node1</value></property><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property>
</configuration>

转载于:https://www.cnblogs.com/zhanggl/p/5091757.html

HBase1.0.0 实现数据增删查相关推荐

  1. HTML+PHP搭建一个生物数据增删查改网站

    HTML+PHP搭建一个生物数据增删查改网站 目录 HTML+PHP搭建一个生物数据增删查改网站 1.使用说明 2.代码 主要分为一下两个部分介绍这个project: 1.使用说明 自己写了个比较简单 ...

  2. oracle存储过程之数据增删查改及调用

    本文转载自:https://blog.csdn.net/u011955534/article/details/14647217 原文更易读,请参与原文. 存储过程: 存储过程是 SQL, PL/SQL ...

  3. Django中的shell,和数据增删查改

    django也有一个牛逼的调试工具,而scarpy是借鉴django的,shell是先在django中使用的 python manage.py shell (在项目根目录) 这是model下的Stud ...

  4. jqGrid数据增删查改

    为什么80%的码农都做不了架构师?>>>    jqGrid完整地封装了Web报表.这次项目是做一个简单的后台管理参数的设置.每次做Web报表都是非常头痛,报表简单没啥技术含量却是人 ...

  5. 【MySQL】6.0 表的增删查改

    英语单词 Create 创建 Retrieve 读取 Update 更新 Delete 删除 duplicate 复制 updata 更新数据 replace 替换 constraint 限制 cru ...

  6. table表格的增删查改、图片的处理、数据的导入导出

    之前我们讲过一个数据库里面的增删查改和用jquer讲了一些简单的增删查改,没有做任何的判断,这次还是使用table的表格给它加一些条件的判断. 图表 1 图表 2 图表 3 图表1.图表2.图表3是h ...

  7. MySQL - 对数据表进行“增删查改”的基础操作 - 细节狂魔

    文章目录 前文知识点回顾 正文 :对数据表进行"增删查改"操作 新增操作 - insert 关键字 查找语句(基础操作) - select关键字 - 重点!!!!!!!! 1.最基 ...

  8. MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔

    文章目录 前文知识点回顾   SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...

  9. MyBatis实现数据的增删查改

    MyBatis的配置请参考我的上一篇文章,在上一篇文章的基础上我们实现数据的增删查改. 创建实现增删查改的xml文件,这里才是真正实现增删查改的文件. 创建完后要在配置文件中注册创建好的xml文件: ...

最新文章

  1. SQL 基础命令和函数
  2. linux 编写系统服务,Linux shell编写系统服务脚本
  3. vue图片宽高自适应_Echarts图标宽度变成100px,让图表宽度随着父元素自动适应,Vue实时监听宽度的变化,这可能是史上最好的解决方案!...
  4. java基础教程第三版耿祥义,后台开发JAVA岗
  5. Windows消息队列一
  6. java构建xml参数_Java中使用XML创建EMAIL模板
  7. 180页PPT,讲解人工智能技术与产业发展
  8. Pandas选择行列的十大技能
  9. 基于Java的webapp_第一个 JAVA WEB 应用
  10. Unity3D面试题汇总
  11. 大数据与python-零起点Python大数据与量化交易 PDF 下载
  12. 大学python教材电子版下载_Python数据分析基础(全国高等院校应用型创新规划教材·计算机系列)...
  13. mysql拼接字符串的方式_mysql 字符串拼接,你知道几种方式?
  14. 网线制作ppt_ppt模板网线
  15. c++ 读取二进制bin文件
  16. 通过Nginx转发的Fastdfs文件地址,在浏览器页面上会直接打开而不提示下载框的解决方案
  17. 获取pc微信信息_如何获取有关您的PC的详细信息
  18. 【Flink】Deployment took more than 60 seconds. Please check if the requested resources are available
  19. prcs6汉化补丁怎么替换_最新 | EndNote X9.2授权版+汉化
  20. (Hopcroft-Carp二分图匹配)Rain on your Parade

热门文章

  1. mongoose 笔记
  2. DOM-15/16【实战】鼠标行为预测技术
  3. ES5-5 参数默认值、递归、预编译、暗示全局变量
  4. apicloud使用指南
  5. 数组去重的各种方式对比
  6. No resource found that matches the given name 'android:Widget.Material.A解决方案
  7. CentOS6.3中挂载NTFS移动硬盘的经历
  8. Mac nginx PCRE install ngnix
  9. HBuilder:最快的Web开发IDE
  10. ubuntu 目录及文件权限 000 444 666 777(转)