2023.5.19Hadoop具体操作(四种)

大作业

1、ens33没有地址

查看虚拟机的NAT8网段

2023.5.19Hadoop具体操作(四种)_第1张图片

使用ip a显示ens33的ip

ip a

2023.5.19Hadoop具体操作(四种)_第2张图片

设置静态ip

编辑网络接口配置文件:输入以下命令来编辑网络接口的配置文件:

sudo vi /etc/network/interfaces

在打开的文件中,找到要设置为静态IP的网络接口(如ens33)的部分。

将该部分的配置修改为以下内容:

auto ens33
iface ens33 inet static
    address 192.168.0.2    # 设置静态IP地址
    netmask 255.255.255.0  # 设置子网掩码
    gateway 192.168.0.1    # 设置网关IP地址
    dns-nameservers 8.8.8.8 8.8.4.4  # 设置DNS服务器IP地址,可以根据需要添加多个DNS服务器

注意:确保将IP地址、子网掩码、网关和DNS服务器地址替换为适合你网络环境的值。

按下Ctrl + O保存更改,然后按下Ctrl + X关闭nano编辑器。

重启网络服务:输入以下命令来重启网络服务以应用新的配置:

sudo service networking restart

或者,如果你使用的是Network Manager,可以使用以下命令:

sudo service network-manager restart

这将使新的静态IP地址生效。

2、修改主机名

2023.5.19Hadoop具体操作(四种)_第3张图片

3、操作具体数据库

1、MYSQL

3.1 MySQL数据库操作

Student学生表

Name English Math Computer
zhangsan 69 86 77
lisi 55 100 88

\1. 根据上面给出的表格,利用MySQL5.6设计出student学生表格;

2023.5.19Hadoop具体操作(四种)_第4张图片

a) 设计完后,用select语句输出所有的相关信息,并给出截图;

2023.5.19Hadoop具体操作(四种)_第5张图片

b) 查询zhangsan的Computer成绩,并给出截图;

2023.5.19Hadoop具体操作(四种)_第6张图片

c) 修改lisi的Math成绩,改为95.给出截图.

2023.5.19Hadoop具体操作(四种)_第7张图片

2.根据上面已经设计出的student表,用MySQL操作

a) 添加数据:English:45 Math:89 Computer:100

scofield 45 89 100

2023.5.19Hadoop具体操作(四种)_第8张图片

b) 获取scofield的English成绩信息

2023.5.19Hadoop具体操作(四种)_第9张图片

-- 创建student表
CREATE TABLE Student (
  Name VARCHAR(20),
  English INT,
  Math INT,
  Computer INT
);

-- 插入数据
INSERT INTO Student (Name, English, Math, Computer)
VALUES ('zhangsan', 69, 86, 77),
       ('lisi', 55, 100, 88);

-- 查询所有学生信息
SELECT * FROM Student;

-- 查询zhangsan的Computer成绩
SELECT Computer FROM Student WHERE Name = 'zhangsan';

-- 修改lisi的Math成绩为95
UPDATE Student SET Math = 95 WHERE Name = 'lisi';

-- 查询所有学生信息
SELECT * FROM Student;

-- 添加数据: scofield English:45 Math:89 Computer:100
INSERT INTO Student (Name, English, Math, Computer)
VALUES ('scofield', 45, 89, 100);

-- 获取scofield的English成绩信息
SELECT English FROM Student WHERE Name = 'scofield';

2、HBase

3.2 HBase数据库操作

2023.5.19Hadoop具体操作(四种)_第10张图片

Student学生表

name score
English Math Computer
zhangsan 69 86 77
lisi 55 100 88

\1. 根据上面给出的表格,用Hbase Shell模式设计student学生表格。

2023.5.19Hadoop具体操作(四种)_第11张图片

a) 设计完后,用scan指令浏览表的相关信息,给出截图。

2023.5.19Hadoop具体操作(四种)_第12张图片

b) 查询zhangsan 的Computer成绩,给出截图。

2023.5.19Hadoop具体操作(四种)_第13张图片

c) 修改lisi的Math成绩,改为95,给出截图。

2023.5.19Hadoop具体操作(四种)_第14张图片

\2. 根据上面已经设计出的student,用Hbase 操作

a) 添加数据:English:45 Math:89 Computer:100

2023.5.19Hadoop具体操作(四种)_第15张图片

scofield 45 89 100

b) 获取scofield的English成绩信息

2023.5.19Hadoop具体操作(四种)_第16张图片

# 创建表格
create 'Student', 'score'

# 插入数据
put 'Student', 'zhangsan', 'score:English', '69'
put 'Student', 'zhangsan', 'score:Math', '86'
put 'Student', 'zhangsan', 'score:Computer', '77'
put 'Student', 'lisi', 'score:English', '55'
put 'Student', 'lisi', 'score:Math', '100'
put 'Student', 'lisi', 'score:Computer', '88'

# 浏览表的相关信息
scan 'Student'

# 查询zhangsan的Computer成绩
get 'Student', 'zhangsan', 'score:Computer'

# 修改lisi的Math成绩为95
put 'Student', 'lisi', 'score:Math', '95'

# 浏览表的相关信息
scan 'Student'

# 添加数据
put 'Student', 'scofield', 'score:English', '45'
put 'Student', 'scofield', 'score:Math', '89'
put 'Student', 'scofield', 'score:Computer', '100'

# 获取scofield的English成绩信息
get 'Student', 'scofield', 'score:English'

2023.5.19Hadoop具体操作(四种)_第17张图片

3、Redis

2023.5.19Hadoop具体操作(四种)_第18张图片

Redis数据库操作

Student 键值对:

zhangsan:{

English: 69

Math: 86

Computer: 77

lisi:{

English: 55

Math: 100

Computer: 88

\1. 根据上面给出的键值对,用Redis的哈希结构设计出上述表格;(键值可以用student.zhangsan,student.lisi来表示两个键值属于同一个表格)

2023.5.19Hadoop具体操作(四种)_第19张图片

a) 设计完之后,用hgetall命令分别输出zhangsan和lisi的成绩信息,并截图;

2023.5.19Hadoop具体操作(四种)_第20张图片

2023.5.19Hadoop具体操作(四种)_第21张图片

b) 用hget命令查询zhangsan 的Computer成绩,给出截图。

2023.5.19Hadoop具体操作(四种)_第22张图片

c) 修改lisi的Math成绩,改为95,给出截图。

2023.5.19Hadoop具体操作(四种)_第23张图片

\2. 根据上面已经设计出的student表格,用Redis操作

a ) 添加数据:English:45 Math:89 Computer:100

scofield:{

English: 45

Math: 89

Computer: 100

2023.5.19Hadoop具体操作(四种)_第24张图片

b) 获取scofield的English成绩信息

2023.5.19Hadoop具体操作(四种)_第25张图片

# 设计哈希结构表格
HSET student.zhangsan English 69
HSET student.zhangsan Math 86
HSET student.zhangsan Computer 77

HSET student.lisi English 55
HSET student.lisi Math 100
HSET student.lisi Computer 88

# 输出zhangsan和lisi的成绩信息
HGETALL student.zhangsan
HGETALL student.lisi

# 查询zhangsan的Computer成绩
HGET student.zhangsan Computer

# 修改lisi的Math成绩为95
HSET student.lisi Math 95

# 输出zhangsan和lisi的成绩信息
HGETALL student.zhangsan
HGETALL student.lisi

# 添加数据
HSET student.scofield English 45
HSET student.scofield Math 89
HSET student.scofield Computer 100

# 获取scofield的English成绩信息
HGET student.scofield English

2023.5.19Hadoop具体操作(四种)_第26张图片

(error) ERR wrong number of arguments for 'hgetall' command
127.0.0.1:6379> 

在Redis中,错误消息"ERR wrong number of arguments for ‘hgetall’ command"表示对于’hgetall’命令使用了错误数量的参数。这通常意味着你没有提供’hgetall’命令所需的键值参数。

'hgetall’命令用于获取哈希表中指定键的所有字段和值。它的语法是:

vbnet
HGETALL key

其中,'key’是你要获取哈希表的键。根据错误消息,你可能没有提供’key’参数,或者提供了错误的参数。

要解决这个问题,你需要在执行’hgetall’命令时提供正确的参数,确保传递正确的键。例如:


HGETALL myhash

这将获取名为"myhash"的哈希表的所有字段和值。

请确保在Redis命令行中正确输入命令,并提供所需的参数。如果问题仍然存在,请检查你的代码或脚本,确保在使用Redis命令时正确传递参数。

4、MongoDB

2023.5.19Hadoop具体操作(四种)_第27张图片

3.4 MongoDB数据库操作

Student文档如下:

{

“name”: “zhangsan”,

“score”: {

“English”: 69,

“Math”: 86,

“Computer”: 77

}

}

{

“name”: “lisi”,

“score”: {

“English”: 55,

“Math”: 100,

“Computer”: 88

}

}

\1. 根据上面给出的文档,用Mongo shell设计出student集合.

2023.5.19Hadoop具体操作(四种)_第28张图片

2023.5.19Hadoop具体操作(四种)_第29张图片

a) 设计完后,用find()方法输出两个学生的信息,给出截图;

2023.5.19Hadoop具体操作(四种)_第30张图片

b) 用find函数查询zhangsan 的所有成绩(只显示score列),给出截图。

2023.5.19Hadoop具体操作(四种)_第31张图片

c) 修改lisi的Math成绩,改为95,给出截图。

2023.5.19Hadoop具体操作(四种)_第32张图片

\2. 根据上面已经设计出的student集合,用Mongo shell操作

a) 添加数据:English:45 Math:89 Computer:100

{

“name”: “scofield”,

“score”: {

“English”: 45,

“Math”: 89,

“Computer”: 100

}

}

2023.5.19Hadoop具体操作(四种)_第33张图片

b) 获取scofield的所有成绩成绩信息(只显示score列)

2023.5.19Hadoop具体操作(四种)_第34张图片

// 设计student集合并插入文档
db.student.insertOne({
  "name": "zhangsan",
  "score": {
    "English": 69,
    "Math": 86,
    "Computer": 77
  }
});

db.student.insertOne({
  "name": "lisi",
  "score": {
    "English": 55,
    "Math": 100,
    "Computer": 88
  }
});

// 输出两个学生的信息
db.student.find();

// 查询zhangsan的所有成绩
db.student.find({ "name": "zhangsan" }, { "score": 1, "_id": 0 });

// 修改lisi的Math成绩为95
db.student.updateOne({ "name": "lisi" }, { $set: { "score.Math": 95 } });

// 输出两个学生的信息
db.student.find();

// 添加数据
db.student.insertOne({
  "name": "scofield",
  "score": {
    "English": 45,
    "Math": 89,
    "Computer": 100
  }
});

// 获取scofield的所有成绩信息
db.student.find({ "name": "scofield" }, { "score": 1, "_id": 0 });

2023.5.19Hadoop具体操作(四种)_第35张图片

Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
---
The server generated these startup warnings when booting: 
        2023-05-20T07:40:59.745-07:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2023-05-20T07:41:01.362-07:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---

2023.5.19Hadoop具体操作(四种)_第36张图片

根据警告信息,你收到了两个启动警告:

  1. 使用WiredTiger存储引擎时强烈建议使用XFS文件系统。
  2. 数据库未启用访问控制,对数据和配置的读写访问是不受限制的。

以下是解决这些警告的建议:

  1. 使用XFS文件系统:警告指出在使用WiredTiger存储引擎时强烈建议使用XFS文件系统。XFS对于MongoDB和WiredTiger存储引擎来说是最佳选择,因为它具有出色的性能和可扩展性。如果你当前没有使用XFS文件系统,请考虑迁移到XFS。你可以按照此处的文档了解有关XFS文件系统的更多信息。
  2. 启用访问控制:警告指出数据库未启用访问控制,这意味着任何人都可以具有对数据和配置的读写权限。这对于生产环境来说是不安全的。为了保护你的MongoDB数据库,你应该启用访问控制并为用户设置适当的权限。有关如何启用访问控制和配置用户权限的详细信息,请参阅MongoDB的官方文档中有关访问控制的部分。

解决这些警告需要进行适当的配置更改和系统管理。确保在进行任何更改之前,详细阅读相关文档,并确保理解对你的系统和环境可能产生的影响。

你可能感兴趣的:(Hadoop,数据库,mysql)