HBase1.0.0 实现数据增删查
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 实现数据增删查相关推荐
- HTML+PHP搭建一个生物数据增删查改网站
HTML+PHP搭建一个生物数据增删查改网站 目录 HTML+PHP搭建一个生物数据增删查改网站 1.使用说明 2.代码 主要分为一下两个部分介绍这个project: 1.使用说明 自己写了个比较简单 ...
- oracle存储过程之数据增删查改及调用
本文转载自:https://blog.csdn.net/u011955534/article/details/14647217 原文更易读,请参与原文. 存储过程: 存储过程是 SQL, PL/SQL ...
- Django中的shell,和数据增删查改
django也有一个牛逼的调试工具,而scarpy是借鉴django的,shell是先在django中使用的 python manage.py shell (在项目根目录) 这是model下的Stud ...
- jqGrid数据增删查改
为什么80%的码农都做不了架构师?>>> jqGrid完整地封装了Web报表.这次项目是做一个简单的后台管理参数的设置.每次做Web报表都是非常头痛,报表简单没啥技术含量却是人 ...
- 【MySQL】6.0 表的增删查改
英语单词 Create 创建 Retrieve 读取 Update 更新 Delete 删除 duplicate 复制 updata 更新数据 replace 替换 constraint 限制 cru ...
- table表格的增删查改、图片的处理、数据的导入导出
之前我们讲过一个数据库里面的增删查改和用jquer讲了一些简单的增删查改,没有做任何的判断,这次还是使用table的表格给它加一些条件的判断. 图表 1 图表 2 图表 3 图表1.图表2.图表3是h ...
- MySQL - 对数据表进行“增删查改”的基础操作 - 细节狂魔
文章目录 前文知识点回顾 正文 :对数据表进行"增删查改"操作 新增操作 - insert 关键字 查找语句(基础操作) - select关键字 - 重点!!!!!!!! 1.最基 ...
- MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔
文章目录 前文知识点回顾 SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...
- MyBatis实现数据的增删查改
MyBatis的配置请参考我的上一篇文章,在上一篇文章的基础上我们实现数据的增删查改. 创建实现增删查改的xml文件,这里才是真正实现增删查改的文件. 创建完后要在配置文件中注册创建好的xml文件: ...
最新文章
- SQL 基础命令和函数
- linux 编写系统服务,Linux shell编写系统服务脚本
- vue图片宽高自适应_Echarts图标宽度变成100px,让图表宽度随着父元素自动适应,Vue实时监听宽度的变化,这可能是史上最好的解决方案!...
- java基础教程第三版耿祥义,后台开发JAVA岗
- Windows消息队列一
- java构建xml参数_Java中使用XML创建EMAIL模板
- 180页PPT,讲解人工智能技术与产业发展
- Pandas选择行列的十大技能
- 基于Java的webapp_第一个 JAVA WEB 应用
- Unity3D面试题汇总
- 大数据与python-零起点Python大数据与量化交易 PDF 下载
- 大学python教材电子版下载_Python数据分析基础(全国高等院校应用型创新规划教材·计算机系列)...
- mysql拼接字符串的方式_mysql 字符串拼接,你知道几种方式?
- 网线制作ppt_ppt模板网线
- c++ 读取二进制bin文件
- 通过Nginx转发的Fastdfs文件地址,在浏览器页面上会直接打开而不提示下载框的解决方案
- 获取pc微信信息_如何获取有关您的PC的详细信息
- 【Flink】Deployment took more than 60 seconds. Please check if the requested resources are available
- prcs6汉化补丁怎么替换_最新 | EndNote X9.2授权版+汉化
- (Hopcroft-Carp二分图匹配)Rain on your Parade
热门文章
- mongoose 笔记
- DOM-15/16【实战】鼠标行为预测技术
- ES5-5 参数默认值、递归、预编译、暗示全局变量
- apicloud使用指南
- 数组去重的各种方式对比
- No resource found that matches the given name 'android:Widget.Material.A解决方案
- CentOS6.3中挂载NTFS移动硬盘的经历
- Mac nginx PCRE install ngnix
- HBuilder:最快的Web开发IDE
- ubuntu 目录及文件权限 000 444 666 777(转)