实验内容与步骤
在给定的Ubuntu Linux+hadoop3.1.3环境上,分别用hbase、redis、mongodb、hive(redis、mongodb、hive需自行安装,无版本要求)所属的shell命令,建立相应数据结构,并增加本人的学号、姓名、性别、数据库课程成绩,再将此信息取出。(注:个人信息为真实信息,成绩为本人的真实数据库成绩。因有的软件默认不支持汉字显示,故录入数据为拼音和英文)
- hbase的信息新增与查询截图;
- redis的信息新增与查询截图;
- mongodb的信息新增与查询截图;
- hive的信息新增与查询截图;
编者声明
本文基于赵志明老师的中国矿业大学(北京)的大数据技术基础课程,针对各上机实验记录一些自己的思路以及过程,总体来说写着玩的,别当真,反正就这样吧,管他呢。
实验思路
-
HBase Script:
- 创建一个表和列簇。
- 使用
put
命令插入学号、姓名、性别、成绩。 - 执行查询操作,以验证数据的正确插入。
-
Redis Script:
- 创建一个散列数据结构来存储信息。
- 使用
hset
命令来存储学号、姓名、性别、成绩。 - 使用
hget
或hgetall
命令来检索数据。
-
MongoDB Script:
- 创建一个集合并定义数据结构。
- 使用
insertOne
命令来插入学生信息。 - 使用
find
命令来查询数据。
-
Hive Script:
- 创建一个表并定义列结构。
- 使用
INSERT INTO
语句来插入数据。 - 使用
SELECT
语句来查询数据。
-
数据格式和表示:
- 确保在所有数据库中数据格式的一致性。
- 考虑将数据(如姓名)转换为拼音或英文,以适应编码限制。
-
错误处理和异常管理:
- 在每个脚本中加入错误处理逻辑。
- 提供清晰的错误消息和异常处理机制。
-
脚本测试和优化:
- 在不同的数据负载和环境下测试脚本。
- 对脚本进行性能测试,确保高效的数据处理
具体实现步骤与代码
自行下载并调试对应软件--下载有问题私信处留言
建议不要自己安装,跟着林子雨老师的博客下载安装,非常轻松省事儿
1.hbase的信息新增与查询截图
首先,我们将展示 HBase Script。这个脚本将负责在HBase中创建表和列簇,插入学号、姓名、性别、成绩,以及执行查询操作以验证数据的正确插入。
# HBase Script
start-hbase.sh
# 创建HBase表和列簇
create 'student_info', 'personal_details'
# 插入数据
put 'student_info', '2110150426', 'personal_details:name', 'wangxin'
put 'student_info', '2110150426', 'personal_details:gender', 'nan'
put 'student_info', '2110150426', 'personal_details:grade', '89'
# 查询并验证插入的数据
scan 'student_info', {COLUMNS => ['personal_details']}
2.redis的信息新增与查询截图
redis-server
# 使用 HSET 存储学生信息
HSET student:2110150426 name "wangxin"
HSET student:2110150426 gender "nan"
HSET student:2110150426 grade 89
# 检索并验证数据
HGETALL student:2110150426
3.mongodb的信息新增与查询截图
#启动MongoDB Shell
mongo
#使用 use 命令来创建一个新的数据库
use mydb
#创建一个新集合并插入数据
db.students.insert({
student_id: "2110150426",
name: "wangxin",
gender: "nan",
grade: 89
})
#查询数据
db.students.find({})
4.hive的信息新增与查询截图
hive
-- 创建Hive表
CREATE TABLE IF NOT EXISTS student_info (
student_id STRING,
name STRING,
gender STRING,
grade INT
);
-- 插入数据
INSERT INTO student_info (student_id, name, gender, grade)
VALUES ('2110150426', 'wangxin', 'nan', 89);
-- 查询并验证插入的数据
SELECT * FROM student_info;