常用的HBase操作--JavaAPI

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常⽤的HBase操作--JavaAPI
实验序号实验七实验项⽬熟悉常⽤的HBase操作--Java
API
实验成绩
⼀、实验⽬的
·理解HBase在Hadoop体系结构中的⾓⾊;
·熟悉HBase操作常⽤的Java API。

⼆、实验内容
·现有以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插⼊数据:学⽣表(Student)
请使⽤Hbase Java Eclipse API完成以下指定功能:
(1)创建新表
(2)根据表名,进⾏删除表格
(3)查看所有表格(列出表名)
if(admin != null){
admin.close();
}
if(null != connection){
connection.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
public static void main(String[] agrs) throws IOException {
createTable("Student",new String[] {"information"});
}
}
(2)根据表名,进⾏删除表格
//删除表
public static void deleteTable(String tableName) throws IOException { init();
TableName tn = TableName.valueOf(tableName);
if (admin.tableExists(tn)) {
admin.disableTable(tn);
admin.deleteTable(tn);
}
System.out.println(tableName+" "+"table has been deleted!");
close();
}
public static void main(String[] agrs) throws IOException{
deleteTable("Student");
}
(3)查看所有表格(列出表名)
public static void listTables() throws IOException {
init();
HTableDescriptor hTableDescriptors[] = admin.listTables();
System.out.println("table list:");
for(HTableDescriptor hTableDescriptor :hTableDescriptors){ System.out.println(hTableDescriptor.getNameAsString()); }
close();
}
public static void main(String[] agrs) throws IOException{
listTables();
}
(4)以列式插⼊数据。

public static void insertRow(String tableName,String rowKey,String colFamily,String col,String val) throws IOException { init();
Table table =
connection.getTable(TableName.valueOf(tableName));
Put put = new Put(rowKey.getBytes());
put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes());
table.put(put);
System.out.println("insert successful!");
table.close();
close();
}
public static void main(String[] agrs) throws IOException{
insertRow("Student","2015001","information","S_Name","zhangsan");
insertRow("Student","2015001","information","S_Sex","male");
insertRow("Student","2015001","information","S_Age","23");
insertRow("Student","2015002","information","S_Name","Mary");
insertRow("Student","2015002","information","S_Sex","female");
insertRow("Student","2015002","information","S_Age","22");
insertRow("Student","2015003","information","S_Name","Lisi");
insertRow("Student","2015003","information","S_Sex","male");
insertRow("Student","2015003","information","S_Age","24");
}
(5)删除数据
public static void deleteRow(String tableName,String rowKey,String colFamily,String col) throws IOException {
init();
Table table =
connection.getTable(TableName.valueOf(tableName));
Delete delete = new Delete(rowKey.getBytes());//删除指定列族
的所有数据
//delete.addFamily(colFamily.getBytes());// 删除指定列的数据
delete.addColumn(colFamily.getBytes(), col.getBytes());
table.delete(delete);
System.out.println("data has been deleted!");
table.close();
close();
}
public static void main(String[] agrs) throws IOException{ deleteRow("Student","2015003","information","S_Name"); }
(6)查看表格信息
public static void getTableinfo (String tableName){
init();
try {
Table table =
connection.getTable(TableName.valueOf(tableName));
Scan scan = new Scan();
ResultScanner resutScanner = table.getScanner(scan);
for(Result result: resutScanner){
System.out.println("scan: " + result);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] agrs) throws IOException{ getTableinfo("Student");
}
四、实验总结(⼼得体会)
本次实验使我进⼀步理解了HBase在Hadoop体系结构中的⾓⾊;也使我更加熟悉HBase操作常⽤的Java API。

通过代码实现表的创建,插⼊数据,删除,查看等操作,使我对Java API有了更多的兴趣,也见识到Java API的实⽤性。

此后学习,我会尽我所能的运⽤,以致于达到更⾼的⽔平。

相关文档
最新文档