第一关:HBase-shell命令
任务描述
使用 HBase shell
命令创建表: exam_tb1
,向表中添加数据,表的数据与结构如下:
相关知识
略
编程要求
根据右侧窗口命令行内的提示,在 Begin - End
区域内进行命令行语句补充。
测试说明
本关需要你在命令行中启动 hbase
,并使用 hbase shell
操作命令行,操作完之后点击测评即可,平台会使用脚本通过表名获取你创建的表,并输出其中数据。
预期输出:
row-1
class_info:class_id 201801
class_info:class_name software
user_info:age 32
user_info:name jack
row-2
class_info:class_id 201802
class_info:class_name hardware
user_info:age 28
user_info:name rose
开始你的任务吧,祝你成功!
代码如下:
在命令行依次输入以下命令:
start-hbase.sh
hbase shell
create 'exam_tb1', {
NAME=>'user_info'},{
NAME=>'class_info'}
put 'exam_tb1','row-1','user_info:name','jack'
put 'exam_tb1','row-1','user_info:age','32'
put 'exam_tb1','row-1','class_info:class_name','software'
put 'exam_tb1','row-1','class_info:class_id','201801'
put 'exam_tb1','row-2','user_info:name','rose'
put 'exam_tb1','row-2','user_info:age','28'
put 'exam_tb1','row-2','class_info:class_name','hardware'
put 'exam_tb1','row-2','class_info:class_id','201802'
第2关:HBase Java API
任务描述
本关任务:在右侧编写代码,禁用表 step2_tb0
,删除表 step2_tb1
,创建表 emp_tb1
, emp_tb1
表结构与数据如下图:
相关知识
略
编程要求
请仔细阅读右侧代码,根据方法内的提示,在 Begin - End
区域内进行代码补充。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
预期输出:
表step2_tb0已禁用
step2_tb1已删除
201101
dept_info:dept_id 2001
dept_info:dept_name finance
dept_info:gender man
emp_info:emp_id 1
emp_info:emp_name lucy
201102
dept_info:dept_id 2003
dept_info:dept_name techenology
dept_info:gender woman
emp_info:emp_id 2
emp_info:emp_name alpha
201103
dept_info:dept_id 3002
dept_info:dept_name logistics
dept_info:gender man
emp_info:emp_id 3
emp_info:emp_name linus
开始你的任务吧,祝你成功!
代码如下:
package step2;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.io.compress.Compression;
import org.apache.hadoop.hbase.util.*;
public class Task {
public void operatorTables()throws Exception{
/********* Begin *********/
Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象
Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象
TableName tableName = TableName.valueOf("emp_tb1");//定义表名
HTableDescriptor htd = new HTableDescriptor(tableName);//定义表对象
HColumnDescriptor hcd1 = new HColumnDescriptor("emp_info");//定义列族对象
HColumnDescriptor hcd2 = new