现有以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入数据:
学生表(Student)
学号(S_No) |
姓名(S_Name) |
性别(S_Sex) |
年龄(S_Age) |
2015001 |
Zhangsan |
male |
23 |
2015002 |
Mary |
female |
22 |
2015003 |
Lisi |
male |
24 |
课程表(Course)
课程号(C_No) |
课程名(C_Name) |
学分(C_Credit) |
123001 |
Math |
2.0 |
123002 |
Computer |
5.0 |
123003 |
English |
3.0 |
选课表(SC)
学号(SC_Sno) |
课程号(SC_Cno) |
成绩(SC_Score) |
2015001 |
123001 |
86 |
2015001 |
123003 |
69 |
2015002 |
123002 |
77 |
2015002 |
123003 |
99 |
2015003 |
123001 |
98 |
2015003 |
123002 |
95 |
同时,请编程完成以下指定功能:
(1)createTable(String tableName, String[] fields)
创建表,参数tableName为表的名称,字符串数组fields为存储记录各个域名称的数组。要求当HBase已经存在名为tableName的表的时候,先删除原有的表,然后再创建新的表。
(2)addRecord(String tableName, String row, String[] fields, String[] values)
向表tableName、行row(用S_Name表示)和字符串数组files指定的单元格中添加对应的数据values。其中fields中每个元素如果对应的列族下还有相应的列限定符的话,用“columnFamily:column”表示。例如,同时向“Math”、“Computer Science”、“English”三列添加成绩时,字符串数组fields为{“Score:Math”,”Score;Computer Science”,”Score:English”},数组values存储这三门课的成绩。
(3)scanColumn(String tableName, String column)
浏览表tableName某一列的数据,如果某一行记录中该列数据不存在,则返回null。要求当参数column为某一列族名称时,如果底下有若干个列限定符,则要列出每个列限定符代表的列的数据;当参数column为某一列具体名称(例如“Score:Math”)时,只需要列出该列的数据。
(4)modifyData(String tableName, String row, String column)
修改表tableName,行row(可以用学生姓名S_Name表示),列column指定的单元格的数据。
(5)deleteRow(String tableName, String row)
删除表tableName中row指定的行的记录。
Hbase的测试运行
(1)首先登陆ssh
ssh localhost
(2)启动Hadoop
cd /usr/local/hadoop
./sbin/start-dfs.sh
(3)启动HBase
cd /usr/local/hbase
bin/start-hbase.sh
停止运行
bin/stop-hbase.sh
3.1 HBase中创建表
create 'student','Sname','Ssex','Sage','Sdept','course'
3.2添加数据
put 'student','95001','Sname','LiYing'
3.3 删除数据
delete 'student','95001','Ssex'
deleteall 'student','95001'
3.4 查看数据
get 'student','95001'
scan 'student'
3.5查询历史数据
get 'teacher','91001',{COLUMN=>'username',VERSIONS=>5}
3.6退出HBase数据库操作
Exit
4.1使用eclipse开发调试HBase Java API程序
创建HBasExample项目
为项目添加所需的jar包
(以下为部分包截图)
4.2编写Java程序 创建名为“MergeFile.java”的源代码文件
4.3 启动HDFS和HBase
运行程序
4.4 在HBase shell交互式环境中,查看student表是否创建成功
4.5 在HBase Shell交互式环境中,查看student表中的数据
本文来自博客园,作者:一路向北~~,转载请注明原文链接:https://www.cnblogs.com/ylxb2539989915/p/16329235.html