首先 根据 hadoop 搭建 + hbase 搭建把 环境弄好

由于 hbase 依赖于 hdfs ,所以 需要 进入 hadoop --》sbin  下 启动 start-dfs.sh , start-yarn.sh
然后 进 hbase --> 下 启动 start-hbase.sh  如果 后面 运行失败 报 找不到 zookeeper 八成 你需要进 hbase-bin-> stop-hbase 然后 重run  start-hbase.sh

这里列举下 hbase shell 的常用操作

#最有用命令 help
help 'status'
#建表
create 'FileTable','fileInfo','saveInfo'
#列出有哪些表
list
#描述表信息
desc 'FileTable'
#统计 表
count 'FileTable'
#添加列簇
alter 'FileTable','cf'
# 删除列簇 ,一定要注意大小写
alter 'FileTable',{NAME=>'cf',METHOD=>'delete'}#插入数据
put 'FileTable','rowkey1','fileInfo:name','file1.txt'
0 row(s) in 3.9840 seconds
put 'FileTable','rowkey1','fileInfo:type','txt'
0 row(s) in 0.0410 seconds
put 'FileTable','rowkey1','fileInfo:size','1024'
0 row(s) in 0.1100 seconds
put 'FileTable','rowkey1','saveInfo:path','/home/pics'
0 row(s) in 0.1320 seconds
put 'FileTable' , 'rowkey1','saveInfo:creator','tom'
0 row(s) in 0.1430 seconds
#查询表总行数
hbase(main):016:0> count 'FileTable'
1 row(s) in 0.8500 seconds
# get 查询
get 'FileTable','rowkey1'
get 'FileTable','rowkey1','fileInfo'#delete#deleteall#scan#删除表之前必须先禁用表Drop the named table. Table must first be disabled:
disable 'FileTable'is_enabled
is_disableddrop 'FileTable'

查询所有列簇

查询指定列簇

HBase 连接类

package com.ghc.hbase.api;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Table;import java.io.IOException;public class HBaseConn {private static final HBaseConn INSTANCE = new HBaseConn();private static Configuration configuration;private static Connection connection;private HBaseConn(){try{if(configuration == null){configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum","192.168.32.129:2181");}}catch(Exception e){e.printStackTrace();}}private Connection getConnection(){if(connection == null || connection.isClosed()){try{connection = ConnectionFactory.createConnection(configuration);}catch(IOException e){e.printStackTrace();}}return connection;}public static Connection getHBaseConnection(){return INSTANCE.getConnection();}public static Table getTable(String tableName) throws IOException{return INSTANCE.getConnection().getTable(TableName.valueOf(tableName));}public static void closeConn(){if(connection != null){try{connection.close();}catch (IOException e){e.printStackTrace();}}}
}

junit 测试一波连接类

import com.ghc.hbase.api.HBaseConn;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Table;
import org.junit.Test;import java.io.IOException;public class HBaseConnTest {@Testpublic void getConnTest(){Connection conn = HBaseConn.getHBaseConnection();System.out.println(conn.isClosed());HBaseConn.closeConn();System.out.println(conn.isClosed());}@Testpublic void getTableTest(){Table table = null;try{table = HBaseConn.getTable("FileTable");System.out.println(table.getName());}catch(IOException ioe){ioe.printStackTrace();}}
}

hbase 增删操作类

package com.ghc.hbase.api;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.filter.FilterList;
import org.apache.hadoop.hbase.util.Bytes;import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;public class HBaseUtil {public static Boolean createTable(String tableName,String[] cfs){try(HBaseAdmin admin = (HBaseAdmin)HBaseConn.getHBaseConnection().getAdmin()){if(admin.tableExists(tableName)) {return false;}// 不存在 则创建HTableDescriptor  hTableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));Arrays.stream(cfs).forEach(cf->{HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(cf);hColumnDescriptor.setMaxVersions(1);hTableDescriptor.addFamily(hColumnDescriptor);});admin.createTable(hTableDescriptor);}catch(Exception e){e.printStackTrace();}return true;}public static Boolean putRow(String tableName, String rowKey, String cfName,String qualifier,String data){try(Table table = HBaseConn.getTable(tableName)){Put put = new Put(Bytes.toBytes(rowKey));put.addColumn(Bytes.toBytes(cfName), Bytes.toBytes(qualifier), Bytes.toBytes(data));table.put(put);}catch (IOException ioe){ioe.printStackTrace();}return true;}public static Boolean putRows(String tableName,List<Put> puts){try(Table table = HBaseConn.getTable(tableName)){table.put(puts);}catch(IOException ioe){ioe.printStackTrace();}return true;}public static Result getRow(String tableName, String rowKey){try(Table table = HBaseConn.getTable(tableName)){Get get = new Get(Bytes.toBytes(rowKey));return table.get(get);}catch(IOException ioe){ioe.printStackTrace();}return null;}public static Result getRow(String tableName, String rowKey, FilterList filterList){try(Table table = HBaseConn.getTable(tableName)){Get get = new Get(Bytes.toBytes(rowKey));get.setFilter(filterList);return table.get(get);}catch(IOException ioe){ioe.printStackTrace();}return null;}public static ResultScanner getScanner(String tableName){try(Table table = HBaseConn.getTable(tableName)){Scan scan = new Scan();scan.setCaching(1000);return table.getScanner(scan);}catch(IOException ioe){ioe.printStackTrace();}return null;}public static ResultScanner getScanner(String tableName, String startRowKey, String endRowKey){try(Table table = HBaseConn.getTable(tableName)){Scan  scan = new Scan();scan.setStartRow(Bytes.toBytes(startRowKey));scan.setStopRow(Bytes.toBytes(endRowKey));scan.setCaching(1000);return table.getScanner(scan);}catch(IOException ioe){ioe.printStackTrace();}return null;}// 使用过滤器public static ResultScanner getScanner(String tableName, String startRowKey, String endRowKey, FilterList filterList){try(Table table = HBaseConn.getTable(tableName)){Scan scan = new Scan();scan.setStartRow(Bytes.toBytes(startRowKey));scan.setStopRow(Bytes.toBytes(endRowKey));scan.setCaching(1000);scan.setFilter(filterList);return table.getScanner(scan);}catch(IOException ioe){ioe.printStackTrace();}return null;}// 删除public static Boolean deleteRow(String tableName,String rowKey){try(Table table = HBaseConn.getTable(tableName)){Delete delete = new Delete(Bytes.toBytes(rowKey));table.delete(delete);return true;}catch(IOException ioe){ioe.printStackTrace();}return null;}// 删除 列簇 用 adminpublic static Boolean deleteColumnFamily(String tableName,String cfName){try(HBaseAdmin admin = (HBaseAdmin)HBaseConn.getHBaseConnection().getAdmin()){admin.deleteColumn(tableName,cfName);}catch(IOException ioe){ioe.printStackTrace();}return true;}//删除 某列 用 tablepublic static Boolean deleteQualifier(String tableName, String rowKey, String cfName,String qualifier){try(Table table = HBaseConn.getTable(tableName)){Delete delete = new Delete(Bytes.toBytes(rowKey));delete.addColumn(Bytes.toBytes(cfName),Bytes.toBytes(qualifier));table.delete(delete);return true;}catch(IOException ioe){ioe.printStackTrace();}return null;}
}

转载于:https://www.cnblogs.com/Frank99/p/9981993.html

hbase 实战项目相关推荐

  1. HBase项目之谷粒微博:创建命名空间,微博内容表,用户关系表,微博收件箱表,发布微博内容,添加关注用户,移除(取关)用户,获取关注的人的微博内容,HBase实战项目

    Hbase实战之谷粒微博 1 需求分析 1) 微博内容的浏览,数据库表设计 2) 用户社交体现:关注用户,取关用户 3) 拉取关注的人的微博内容 2 代码实现 2.1 代码设计总览: 1) 创建命名空 ...

  2. java爬虫教程 百度云_java视频教程java爬虫实战项目httpclient hbase springmvc solr

    资源内容: java视频教程java爬虫实战项目httpclient hbase springmvc solr|____猫了个咪-更多IT精品课程.html|____猫了个咪--it视频论坛.url| ...

  3. python常用代码大全-Python 网络爬虫实战项目代码大全

    原标题:Python 网络爬虫实战项目代码大全 DouBanSpider 豆瓣读书的爬虫.你可以爬豆瓣读书下面标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价 ...

  4. 超硬核Java学习路线图+学习资源+实战项目汇总,看完以后不用再问我怎么学Java了!

    之前写过很多次关于Java学习指南.Java技术路线图的文章.但是总还是有小伙伴来问我,Java怎么学,项目怎么做,资源怎么找,真是让人头秃. 于是这次黄小斜决定来一波狠的,把所有这些内容都整理起来, ...

  5. 什么是互联网大厂_仅限今天!大厂最热数据分析经典实战项目大公开!

    原标题:仅限今天!大厂最热数据分析经典实战项目大公开! 如今,全球早已步入数据时代,随着行业的高速发展,相关岗位缺口已超150万,且薪资超同行业50%.未来十年,数据细分岗位将扩张5倍,各行业数据人才 ...

  6. mybatis学习7 实战项目

    自己写一个实战项目,最好和hibernate做对比. 转载于:https://www.cnblogs.com/liufei1983/p/7492214.html

  7. 干货满满的 Python 实战项目,点赞收藏

    作者 | 俊欣 来源 | 关于数据分析与可视化 今天小编来给大家介绍3个干货满满的计算机视觉方向的Python实战项目,主要用到的库有 opencv-python numpy pillow 要是大家所 ...

  8. 实战:人脸识别实战项目(源码共享)

    首先我想问个问题:现在什么工程师最值钱? 毫无疑问,我想超 90% 的都会说:人工智能工程师.也难怪,随着近几年人工智能的发展,已经逐渐渗透到了各个领域,比如:医疗.教育.机械自动化.个性化推荐.信息 ...

  9. 数百个CV实战项目与必备7本书5000页中英文CV书籍免费送啦~

    数百个CV实战项目与必备7本5000页书籍,公众号[深度学习冲鸭]的后台回复关键字[CV入坑必备](建议复制~)获得: CV学习书籍汇总 1:<学习OpenCV中文版> 2:<图像处 ...

  10. 数百个CV实战项目与必备7本书5000页中英文CV书籍以及算法工程师必备资料免费送啦~...

    数百个CV实战项目与必备7本5000页书籍,公众号[深度学习冲鸭]的后台回复关键字[CV入坑必备](建议复制~)获得: CV学习书籍汇总 1:<学习OpenCV中文版> 2:<图像处 ...

最新文章

  1. c语言函数调用编译等腰三角形,C语言如何输出带“*”的等腰三角形? – 手机爱问...
  2. dsp指令ixh_第一章 DSP入门教程(非常经典).pdf
  3. 1094 The Largest Generation (25 分)【难度: 一般 / 树的遍历】
  4. 三十岁前不必在乎的三十件事
  5. 合约实战,代币合约,DAPP开发
  6. centos 6.3安装libmcrypt-2.5.8不成功解决方案
  7. RTC 媒体流数据包丢包问题解决
  8. java 生成缩略图类_JAVA生成【缩略图】方法
  9. hpml350服务器安装系统,安装HP ML350
  10. MySQL【第三篇】数据类型
  11. C/C++ map函数统计每个字母出现的次数
  12. 【2019年天梯赛L2-029】特立独行的幸福(模拟)
  13. 照片的分辨率怎么调整?图片分辨率太低怎么调高?
  14. Git初学(5)--关联远程库
  15. 【拓展】腾讯十大最受欢迎的开源项目!
  16. 脸上不同位置长痘痘的原因
  17. DEDECMS站点内容怎么自动更新到新浪微博
  18. 怎样用两部手机同时登陆一个QQ(两部手机同时在线)
  19. 单测利器——PowerMockito使用心得
  20. 最迷幻的办法解决SpringBoot访问static文件夹下的静态资源

热门文章

  1. Deepin在matlab的安装
  2. linux查看耗费流量的进程--iftop
  3. kotlin java 知乎_Kotlin入门第一课:从对比Java开始
  4. 在C++上利用onnxruntime (CUDA)和 opencv 部署模型onnx
  5. 计算机更新和网络有关系吗,路由器跟网速有关系吗 电脑的网速慢怎么调
  6. cocos2d 屏幕適配_cocos2dx 3.2 屏幕适配的理解
  7. 极客大学架构师训练营--编程的未来 面向对象 依赖倒置原则 -- 第二次作业
  8. 易筋SpringBoot 2.1 | 第三十六篇:Spring Boot RestTemplate超时配置示例
  9. ns.ajax,UIWebView使用NSURLProtocol(拦截),ajax加载失败的问题
  10. DST(对话状态追踪)常用方法