云计算实验题.docx
《云计算实验题.docx》由会员分享,可在线阅读,更多相关《云计算实验题.docx(26页珍藏版)》请在冰豆网上搜索。
![云计算实验题.docx](https://file1.bdocx.com/fileroot1/2022-10/10/8e9af7c7-87bd-4e2c-b173-c4d14e2f856d/8e9af7c7-87bd-4e2c-b173-c4d14e2f856d1.gif)
云计算实验题
熟悉常用的Linux操作和Hadoop操作
熟悉常用的HDFS操作
熟悉常用的HBase操作
1实验内容和要求
1.编程实现以下指定功能,并用Hadoop提供的HBaseShell命令完成相同任务:
(1)列出HBase所有的表的相关信息,例如表名;
(2)在终端打印出指定的表的所有记录数据;
(3)向已经创建好的表添加和删除指定的列族或列;
添加:
删除:
(4)清空指定的表的所有记录数据;
(5)统计表的行数。
2.现有以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入数据:
学生表(Student)
学号(S_No)
姓名(S_Name)
性别(S_Sex)
年龄(S_Age)
2015001
Zhangsan
male
23
2015003
Mary
female
22
2015003
Lisi
male
24
课程表(Course)
课程号(C_No)
课程名(C_Name)
学分(C_Credit)
123001
Math
2.0
123002
ComputerScience
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(StringtableName,String[]fields)
创建表,参数tableName为表的名称,字符串数组fields为存储记录各个域名称的数组。
要求当HBase已经存在名为tableName的表的时候,先删除原有的表,然后再创建新的表。
(2)addRecord(StringtableName,Stringrow,String[]fields,String[]values)
向表tableName、行row(用S_Name表示)和字符串数组files指定的单元格中添加对应的数据values。
其中fields中每个元素如果对应的列族下还有相应的列限定符的话,用“columnFamily:
column”表示。
例如,同时向“Math”、“ComputerScience”、“English”三列添加成绩时,字符串数组fields为{“Score:
Math”,”Score;ComputerScience”,”Score:
English”},数组values存储这三门课的成绩。
(3)scanColumn(StringtableName,Stringcolumn)
浏览表tableName某一列的数据,如果某一行记录中该列数据不存在,则返回null。
要求当参数column为某一列族名称时,如果底下有若干个列限定符,则要列出每个列限定符代表的列的数据;当参数column为某一列具体名称(例如“Score:
Math”)时,只需要列出该列的数据。
(4)modifyData(StringtableName,Stringrow,Stringcolumn)
修改表tableName,行row(可以用学生姓名S_Name表示),列column指定的单元格的数据。
(5)deleteRow(StringtableName,Stringrow)
删除表tableName中row指定的行的记录。
3.利用HBase和MapReduce完成如下任务:
假设HBase有2张表,表的逻辑视图及部分数据如下所示:
表逻辑视图及部分数据
书名(bookName)
价格(price)
DatabaseSystemConcept
30$
ThinkinginJava
60$
DataMining
25$
要求:
从HBase读出上述两张表的数据,对“price”的排序,并将结果存储到HBase中。
创建表:
排序:
实验4MapReduce编程初级实践
编程实现文件合并和去重操作
对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。
下面是输入文件和输出文件的一个样例供参考。
输入文件A的样例如下:
20150101x
20150102y
20150103x
20150104y
20150105z
20150106x
输入文件B的样例如下:
20150101y
20150102y
20150103x
20150104z
20150105y
根据输入文件A和B合并得到的输出文件C的样例如下:
20150101x
20150101y
20150102y
20150103x
20150104y
20150104z
20150105y
20150105z
20150106x
2.编写程序实现对输入文件的排序
现在有多个输入文件,每个文件中的每行内容均为一个整数。
要求读取所有文件中的整数,进行升序排序后,输出到一个新的文件中,输出的数据格式为每行两个整数,第一个数字为第二个整数的排序位次,第二个整数为原待排列的整数。
下面是输入文件和输出文件的一个样例供参考。
输入文件1的样例如下:
33
37
12
40
输入文件2的样例如下:
4
16
39
5
输入文件3的样例如下:
1
45
25
根据输入文件1、2和3得到的输出文件如下:
11
24
35
412
516
625
733
837
939
1040
1145
3.对给定的表格进行信息挖掘
下面给出一个child-parent的表格,要求挖掘其中的父子辈关系,给出祖孙辈关系的表格。
输入文件内容如下:
childparent
StevenLucy
StevenJack
JoneLucy
JoneJack
LucyMary
LucyFrank
JackAlice
JackJesse
DavidAlice
DavidJesse
PhilipDavid
PhilipAlma
MarkDavid
MarkAlma
输出文件内容如下:
grandchildgrandparent
StevenAlice
StevenJesse
JoneAlice
JoneJesse
StevenMary
StevenFrank
JoneMary
JoneFrank
PhilipAlice
PhilipJesse
MarkAlice
MarkJesse