HBase环境搭建、shell操作及Java API编程
一、
1.掌握Hbase在Hadoop集群体系结构中发挥的作用和使过程。
2.掌握安装和配置HBase基本方法。
3.掌握HBase shell的常用命令。
4.使用HBase shell命令进行表的创建,增加删除修改操作。
5.使用Java API进行表的创建,增加删除修改操作。
二、
1.完成Zookeeper和HBase的搭建。
2.使用HBase shell命令进行表的创建,增加删除修改操作。
3.使用Java API进行表的创建,增加删除修改操作。
一:
- 掌握Hbase在Hadoop集群体系结构中发挥的作用和使过程。
- 掌握安装和配置HBase基本方法。
Hbase的安装与配置已在实验一上传
- 掌握HBase shell的常用命令。
4.使用HBase shell命令进行表的创建,增加删除修改操作。
1. HBase Shell基本操作
(1)使用HBase Shell创建表、查看表结构、增加列族、删除列族;
(2)使用HBase Shell添加数据、查看数据、查看表中的记录总数;
(3)使用HBase Shell删除数据、清空表里的内容、删除表;
(4)使用HBase Shell对表的列族可配置参数进行调整,使其可以查看多个版本的数据。
status 查询服务器状态
version 查看版本
(1)使用HBase Shell创建表、查看表结构、增加列族、删除列族;
创建表
create ‘scores’,’grade’,’course’
查看表结构
desc ‘scores’
增加列族
disable ‘scores’
Alter ‘scores’,{NAME=>’school’}
删除列族(disable后alter)
disable ‘scores’
alter 'scores',{NAME=>'school',METHOD=>'delete'}
(2)使用HBase Shell添加数据、查看数据、查看表中的记录总数;
1、添加数据
put ‘表名’,’行键’,’列族:列限定符’,’值’
put 'scores','Tom','grade:','5'
put 'scores','Tom','course:math','97'
put 'scores','Tom','course:art','87'
put 'scores','Tom','course:english','80'
put 'scores','Jim','grade:','4'
put 'scores','Jim','course:chinese','89'
put 'scores','Jim','course:english','80'
2、查看数据
scan ‘scores’
3、查看表的记录总数
count ‘scores’
(3)使用HBase Shell删除数据、清空表里的内容、删除表;
1、删除数据
- 删除一个单元格
delete 'scores','Jim','grade:'
delete 'scores','Jim','course:chinese'
或:
deleteall 'scores','Tom','course:english'
b.删除一行
deleteall 'scores','Tom'
2、清空表内容
表的内容清空,但表的结构还在
truncate 'scores'
scan 'scores' 内容清空
desc 'scores' 结构存在
3、删除表
删除一个表(先禁用表,再删除表)
disable 'scores'
drop 'scores'
- 使用Java API进行表的创建,增加删除修改操作。
package putfile;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
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.TableName;
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.protobuf.generated.ClientProtos.Column;
public class Hbase {
static Configuration conf = null;
static{
conf = HBaseConfiguration.create();
conf.set("hbase.rootdir", "hdfs://10.49.23.127:9000/hbase");
conf.set("hbase.master", "hdfs://10.49.23.127:60000");
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.zookeeper.quorum", "master,slave1,slave2");
}
//实现了list功能
public static List<String> getAllTables() throws MasterNotRunningException, ZooKeeperConnectionException, IOException{
List<String> list = null;
//HBaseAdmin可以创建表、删除表、查看表
HBaseAdmin admin = new HBaseAdmin(conf);
if(admin != null){
//HTableDescriptor表的相关信息
HTableDescriptor[] tables = admin.listTables();
for(HTableDescriptor table : tables){
System.out.println(table.getNameAsString());
list = new ArrayList<String>();
list.add(table.getNameAsString());
}
}
admin.close();
return list;
}
public static int createTabble(String tableName, String[] family) throws MasterNotRunningException, ZooKeeperConnectionException, IOException{
HBaseAdmin admin = new HBaseAdmin(conf);
HTableDescriptor table = new HTableDescriptor(TableName.valueOf(tableName));
// HTableDescriptor table = new HTableDescriptor(tableName);
//HColumnDescriptor列的相关信息
for(String str : family){
HColumnDescriptor cloumn = new HColumnDescriptor(str);
cloumn.setMaxVersions(3);
table.addFamily(cloumn);
}
if(admin.tableExists(tableName)){
System.out.println(tableName + "已经存在");
return -1;
}
admin.createTable(table);
admin.close();
return 1;
}
public static void deleteTable(String tableName) throws MasterNotRunningException, ZooKeeperConnectionException, IOException{
HBaseAdmin admin = new HBaseAdmin(conf);
admin.disableTable(tableName);
admin.deleteTable(tableName);
System.out.println(tableName + "成功删除");
admin.close();
}
public static void insert(String tableName, String rowkey, String family, String column, String cell) throws IOException{
Put put = new Put(rowkey.getBytes());
//HTable负责表的get put delete操作
HTable table = new HTable(conf, tableName);
put.add(family.getBytes(), column.getBytes(), cell.getBytes());
table.put(put);
}
public static Result queryByRow(String tableName, String rowkey) throws IOException{
Get get = new Get(rowkey.getBytes());
HTable table = new HTable(conf, tableName);
return table.get(get);
}
public static Result queryByColumn(String tableName, String rowkey, String family, String column) throws IOException{
Get get = new Get(rowkey.getBytes());
HTable table = new HTable(conf, tableName);
get.addColumn(family.getBytes(), column.getBytes());
return table.get(get);
}
public static Result queryByRowByVersions(String tableName, String rowkey) throws IOException{
Get get = new Get(rowkey.getBytes());
get.setMaxVersions(3);
HTable table = new HTable(conf, tableName);
return table.get(get);
}
public static ResultScanner queryByScan(String tableName) throws IOException{
Scan scan = new Scan();
// scan.setStartRow(startRow);
// scan.setStopRow(stopRow);
// scan.addColumn(family, qualifier);
HTable table = new HTable(conf, tableName);
return table.getScanner(scan);
}
public static void deleteByColumn(String tableName, String rowkey, String family, String column) throws IOException{
Delete delete = new Delete(rowkey.getBytes());
HTable table = new HTable(conf, tableName);
delete.deleteColumn(family.getBytes(), column.getBytes());
table.delete(delete);
System.out.println("成功删除");
}
public static void deleteByRow(String tableName, String rowkey) throws IOException{
Delete delete = new Delete(rowkey.getBytes());
HTable table = new HTable(conf, tableName);
table.delete(delete);
System.out.println("成功删除");
}
public static void main(String[] args) throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
getAllTables();
//1.创建book表
// createTabble("book", new String[]{"author", "info"});
// getAllTables();
//2.删除book表
// deleteTable("book");
// getAllTables();
//3.创建book表
// createTabble("book", new String[]{"author", "info"});
// getAllTables();
//4.book表插入数据
// insert("book", "rw001", "author", "name", "zhangsan");
// insert("book", "rw001", "author", "age", "65");
// insert("book", "rw001", "info", "name", "database");
// insert("book", "rw001", "info", "price", "35.6");
//5.按行查询数据(旧方法)
// Result result = queryByRow("book", "rw001");
// List<KeyValue> values = result.list();
// System.out.println("COLUMN\t\t\tCELL ");
// for(KeyValue value : values){
// System.out.print(new String(value.getFamily()) + ":");
// System.out.print(new String(value.getQualifier()) + "\t\t");
// System.out.print("value = " + new String(value.getValue()) + ",");
// System.out.println("timestamp = " + value.getTimestamp());
// }
//5.按行查询数据(新方法)
// Result result = queryByRow("book", "rw001");
// Cell[] cells = result.rawCells();
// System.out.println("COLUMN\t\t\tCELL ");
// for(Cell cell : cells){
// System.out.print(new String(CellUtil.cloneFamily(cell)) + ":");
// System.out.print(new String(CellUtil.cloneQualifier(cell)) + "\t\t");
// System.out.print("value = " + new String(CellUtil.cloneValue(cell)) + ",");
// System.out.println("timestamp = " + cell.getTimestamp());
// }
//6.按列查询数据(新方法)
// Result result = queryByColumn("book", "rw001", "author", "name");
// Cell[] cells = result.rawCells();
// System.out.println("COLUMN\t\t\tCELL ");
// for(Cell cell : cells){
// System.out.print(new String(CellUtil.cloneFamily(cell)) + ":");
// System.out.print(new String(CellUtil.cloneQualifier(cell)) + "\t\t");
// System.out.print("value = " + new String(CellUtil.cloneValue(cell)) + ",");
// System.out.println("timestamp = " + cell.getTimestamp());
// }
//7.scan
// ResultScanner scanner = queryByScan("book");
// System.out.println("COLUMN\t\t\tCELL ");
// for(Result result : scanner){
// Cell[] cells = result.rawCells();
//
// for(Cell cell : cells){
// System.out.print(new String(CellUtil.cloneFamily(cell)) + ":");
// System.out.print(new String(CellUtil.cloneQualifier(cell)) + "\t\t");
// System.out.print("value = " + new String(CellUtil.cloneValue(cell)) + ",");
// System.out.println("timestamp = " + cell.getTimestamp());
// }
// }
//8.删除某一列
// deleteByColumn("book", "rw001", "author", "name");
//9.删除某一行数据
// deleteByRow("book", "rw001");
//10. 按行查询多版本数据(新方法)
// Result result = queryByRowByVersions("book", "rw001");
// Cell[] cells = result.rawCells();
// System.out.println("COLUMN\t\t\tCELL ");
// for(Cell cell : cells){
// System.out.print(new String(CellUtil.cloneFamily(cell)) + ":");
// System.out.print(new String(CellUtil.cloneQualifier(cell)) + "\t\t");
// System.out.print("value = " + new String(CellUtil.cloneValue(cell)) + ",");
// System.out.println("timestamp = " + cell.getTimestamp());
// }
}
}
HBase环境搭建、shell操作及Java API编程的更多相关文章
- HDFS shell操作及HDFS Java API编程
HDFS shell操作及HDFS Java API编程 1.熟悉Hadoop文件结构. 2.进行HDFS shell操作. 3.掌握通过Hadoop Java API对HDFS操作. 4.了解Had ...
- elasticsearch 5.0 获取 TransportClient 操作客户端java API
本文转载自:http://blog.csdn.net/likui1314159/article/details/53233881 elasticsearch 5.0 获取 TransportClien ...
- 使用JAVA API编程实现简易Habse操作
使用JAVA API编程实现下面内容: 1.创建<王者荣耀>游戏玩家信息表gamer,包含列族personalInfo(个人信息).recordInfo(战绩信息).assetsInfo( ...
- 利用SparkLauncher 类以JAVA API 编程的方式提交Spark job
一.环境说明和使用软件的版本说明: hadoop-version:hadoop-2.9.0.tar.gz spark-version:spark-2.2.0-bin-hadoop2.7.tgz jav ...
- 大数据学习(16)—— HBase环境搭建和基本操作
部署规划 HBase全称叫Hadoop Database,它的数据存储在HDFS上.我们的实验环境依然基于上个主题Hive的配置,参考大数据学习(11)-- Hive元数据服务模式搭建. 在此基础上, ...
- HBase学习(二) 基本命令 Java api
一.Hbase shell 1.Region信息观察 创建表指定命名空间 在创建表的时候可以选择创建到bigdata17这个namespace中,如何实现呢? 使用这种格式即可:'命名空间名称:表名' ...
- 《OD大数据实战》HBase环境搭建
一.环境搭建 1. 下载 hbase-0.98.6-cdh5.3.6.tar.gz 2. 解压 tar -zxvf hbase-0.98.6-cdh5.3.6.tar.gz -C /opt/modul ...
- 大数据学习系列之二 ----- HBase环境搭建(单机)
引言 在上一篇中搭建了Hadoop的单机环境,这一篇则搭建HBase的单机环境 环境准备 1,服务器选择 阿里云服务器:入门型(按量付费) 操作系统:linux CentOS 6.8 Cpu:1核 内 ...
- Hadoop + ZK + HBase 环境搭建
Hadoop 环境搭建 参考资料: http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/ClusterSetu ...
随机推荐
- HDU 1241 Oil Deposits(石油储藏)
HDU 1241 Oil Deposits(石油储藏) 00 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Probl ...
- ARM伪指令
1.伪指令是什么 ARM伪指令不是ARM指令集中的指令,只是为了编程方便人们定义了伪指令. 在汇编时这些指令将会被等效的ARM指令或arm指令的组合代替. 编程时可以像其他ARM指令一样使用伪指令,区 ...
- linux 进阶命令笔记(12月26日)
1. df 指令 作用:查看磁盘空间 用法: #df -h -h 表示以可读性较高的形式展示大小 2.free 指令 作用:查看内存使用情况 语法:#free -m -m表 ...
- codeforces 741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
题目链接:Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 第一次写\(dsu\ on\ tree\),来记录一下 \(dsu\ o ...
- java根据地址获取百度API经纬度
java根据地址获取百度API经纬度(详细文档) public void getLarLng(String address) throws Exception { String ak = " ...
- Ubuntu18.04下搭建LAMP环境
一.Apache2 web 服务器的安装 : 可以先更新一下服务器 1.sudo apt-get update # 获取最新资源包 2.sudo apt-get upgrade ...
- mysql 安装成功以及第一次安装成功初始化密码操作
一 把文件解压到一个目录下 这是解压后的目录 将my.ini文件考进去 双击打开my.ini 找到这两行更改成自己的解压路径保存 右键此电脑属性 找到高级系统设置配置环境变量 环境变量 新建 变量 ...
- 解决UnicodeEncodeError。python的docker镜像增加locale 中文支持
用pandas的pd.read_excel()打开中文名的xlsx,报错,本来以为是xlrd的问题后来发现,是open()函数就报错: “UnicodeEncodeError: 'ascii' cod ...
- yum的配置文件介绍
yum 的配置文件分为两部分:main 和repository main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main.常位于/etc/yum.conf 中. reposito ...
- lua --- 函数的可变参数
主要掌握: 1>虚变量 --- 一个下划线 2>lua将函数的可变参数放在一个叫 arg 的表中,除了参数以外,arg表中还有一个域n表示参数的个数. do function fun(x, ...