1.4
NoSQL和关系数据库的操作比较
1.实验目的
(1)理解四种数据库(MySQL、HBase、Redis和MongoDB)的概念以及不同点;
(2)熟练使用四种数据库操作常用的Shell命令;
(3)熟悉四种数据库操作常用的Java API。
2.实验平台
(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);
(2)Hadoop版本:3.1.3;
(3)MySQL版本:5.6;
(4)HBase版本:2.2.2;
(5)Redis版本:5.0.5;
(6)MongoDB版本:4.0.16;
(7)JDK版本:1.8;
(8)Java IDE:Eclipse;
3.实验步骤
(一) MySQL数据库操作
学生表如14-7所示。
表14-7 学生表Student
Name English Math Computer
zhangsan 69 86 77
lisi 55 100 88
- 根据上面给出的Student表,在MySQL数据库中完成如下操作:
(1)在MySQL中创建Student表,并录入数据;
首先启动mysql
创建表并插入数据。
(2)用SQL语句输出Student表中的所有记录;
(3)查询zhangsan的Computer成绩;
(4)修改lisi的Math成绩,改为95。
2.根据上面已经设计出的Student表,使用MySQL的JAVA客户端编程实现以下操作:
(1)向Student表中添加如下所示的一条记录:
scofield 45 89 100
编写java代码,远程连接mysql。显示添加成功。
在mysql中查看信息。
(2)获取scofield的English成绩信息
编写java代码,然后运行。
(二)HBase数据库操作
学生表Student如表14-8所示。
表14-8 学生表Student
name score
English Math Computer
zhangsan 69 86 77
lisi 55 100 88
- 根据上面给出的学生表Student的信息,执行如下操作:
(1)用Hbase Shell命令创建学生表Student;
(2)用scan命令浏览Student表的相关信息;
(3)查询zhangsan的Computer成绩;
(4)修改lisi的Math成绩,改为95。
2.根据上面已经设计出的Student表,用HBase API编程实现以下操作:
(1)添加数据:English:45 Math:89 Computer:100
scofield 45 89 100
编写java。
修改主函数。
运行截图。
(2)获取scofield的English成绩信息。
编写java。
运行截图。
(三)Redis数据库操作
Student键值对如下:
zhangsan:{
English: 69
Math: 86
Computer: 77
}
lisi:{
English: 55
Math: 100
Computer: 88
}
- 根据上面给出的键值对,完成如下操作:
(1)用Redis的哈希结构设计出学生表Student(键值可以用student.zhangsan和student.lisi来表示两个键值属于同一个表);
启动redis,但是只能在另一个终端去操作这个玩意。
(2)用hgetall命令分别输出zhangsan和lisi的成绩信息;
(3)用hget命令查询zhangsan的Computer成绩;
(4)修改lisi的Math成绩,改为95。
2.根据上面已经设计出的学生表Student,用Redis的JAVA客户端编程(jedis),实现如下操作:
(1)添加数据:English:45 Math:89 Computer:100
该数据对应的键值对形式如下:
scofield:{
English: 45
Math: 89
Computer: 100
}
编写java代码,添加相关依赖。
在redis里可以查看到添加的信息。
(2)获取scofield的English成绩信息
编写新的java代码。然后运行就行。可以查看到输出信息。
(四)MongoDB数据库操作
Student文档如下:
{
“name”: “zhangsan”,
“score”: {
“English”: 69,
“Math”: 86,
“Computer”: 77
}
}
{
“name”: “lisi”,
“score”: {
“English”: 55,
“Math”: 100,
“Computer”: 88
}
}
1.根据上面给出的文档,完成如下操作:
(1)用MongoDB Shell设计出student集合;
首先启动MongDB
切换到test2下操作。
(2)用find()方法输出两个学生的信息;
(3)用find()方法查询zhangsan的所有成绩(只显示score列);
(4)修改lisi的Math成绩,改为95。
2.根据上面已经设计出的Student集合,用MongoDB的Java客户端编程,实现如下操作:
(1)添加数据:English:45 Math:89 Computer:100
与上述数据对应的文档形式如下:
{
“name”: “scofield”,
“score”: {
“English”: 45,
“Math”: 89,
“Computer”: 100
}
}
编写java代码,然后运行。
添加依赖
在MongDB查看信息。
(2)获取scofield的所有成绩成绩信息(只显示score列)
编写java代码,然后运行,最后就展示json格式。
4.实验报告
题目: NoSQL和关系数据库的操作比较 姓名 赵梓腾 日期
2024-12-15
实验环境:实验环境:Linux3.10.0-957.el7.x86_64,Hadoop3.3.4
实验内容与完成情况:全部完成
出现的问题:MongDB连接一直出现问题,还有redis一直无法远程连接。
解决方案(列出遇到的问题和解决办法,列出没有解决的问题):MongDB上次用完把服务关闭了给忘了,打开就好了。Redis需要修改redis.conf文件,把里面的后台启动开启就行,需要把127.0.0.0注释掉,因为这个代表着只能本地连接。修改完之后可以用本机的ip比如192.168.88.101进行远程连接。
实验5
MapReduce初级编程实践
1.实验目的
(1)通过实验掌握基本的MapReduce编程方法;
(2)掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。
2.实验平台
(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)
(2)Hadoop版本:3.1.3
3.实验步骤
(一)编程实现文件合并和去重操作
对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。下面是输入文件和输出文件的一个样例供参考。
输入文件A的样例如下:
20170101 x
20170102 y
20170103 x
20170104 y
20170105 z
20170106 x
输入文件B的样例如下:
20170101 y
20170102 y
20170103 x
20170104 z
20170105 y
根据输入文件A和B合并得到的输出文件C的样例如下:
20170101 x
20170101 y
20170102 y
20170103 x
20170104 y
20170104 z
20170105 y
20170105 z
20170106 x
首先一键启动集群,然后创建MP目录,创建文件A和B。
然后编写题目所需要的java代码。
然后把Merge.java打包成jar包,然后运行这个jar包,如图运行完成。
运行完成后可以在output里查看文件。如图,但是需要保证在此之前output里面没有内容
同时idea连接的HDFS也可也看到文件。如图
(二)编写程序实现对输入文件的排序
现在有多个输入文件,每个文件中的每行内容均为一个整数。要求读取所有文件中的整数,进行升序排序后,输出到一个新的文件中,输出的数据格式为每行两个整数,第一个数字为第二个整数的排序位次,第二个整数为原待排列的整数。下面是输入文件和输出文件的一个样例供参考。
输入文件1的样例如下:
33
37
12
40
输入文件2的样例如下:
4
16
39
5
输入文件3的样例如下:
1
45
25
根据输入文件1、2和3得到的输出文件如下:
1 1
2 4
3 5
4 12
5 16
6 25
7 33
8 37
9 39
10 40
11 45
首先创建一个新的目录,然后把三个文件创建好,上传到hadoop下的input,把output删除。
接着就是写MS.java文件。
在idea写完之后复制到Linux系统下,然后打包成jar包,并运行。
在output中查看结果,结果与报告中的完全一致。
在idea中也可以看到结果。
(三)对给定的表格进行信息挖掘
下面给出一个child-parent的表格,要求挖掘其中的父子辈关系,给出祖孙辈关系的表格。
输入文件内容如下:
child parent
Steven Lucy
Steven Jack
Jone Lucy
Jone Jack
Lucy Mary
Lucy Frank
Jack Alice
Jack Jesse
David Alice
David Jesse
Philip David
Philip Alma
Mark David
Mark Alma
输出文件内容如下:
grandchild grandparent
Steven Alice
Steven Jesse
Jone Alice
Jone Jesse
Steven Mary
Steven Frank
Jone Mary
Jone Frank
Philip Alice
Philip Jesse
Mark Alice
Mark Jesse
同理在创建目录MP3,在里面创建一个文件file。然后把文件上传到input中,跟上面同理。
然后编写MD.java代码,在idea中写完后贴到Linux中。
打包成MD.jar包。
然后运行jar包。
查看结果
Idea同理
4.实验报告
题目: MapReduce初级编程实践
姓名 赵梓腾 日期
2025-12-22
实验环境:Linux3.10.0-957.el7.x86_64,Hadoop3.3.4 IDEA2024
实验内容与完成情况:全部完成
出现的问题:第三个实验的编程出现问题。
解决方案(列出遇到的问题和解决办法,列出没有解决的问题):通过查找资料用MAp方法解决。
posted on 2026-01-04 15:33 我爱玩原神(原神大王) 阅读(3) 评论(0) 收藏 举报
浙公网安备 33010602011771号