Hadoop—熟悉常用的HDFS操作和数据库操作

364 阅读5分钟

Hadoop—熟悉常用的HDFS操作和数据库操作

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情

实验名称

熟悉常用的HDFS操作和数据库操作

实验目的

  1. 理解HDFS在Hadoop体系结构中的角色;

  2. 熟练使用HDFS操作常用的Shell命令;

  3. 熟悉HDFS操作常用的Java API。

  4. 理解HBase在Hadoop体系结构中的角色;

  5. 熟练使用HBase操作常用的Shell命令;

  6. 熟悉HBase操作常用的Java API。

  7. 理解NoSQL数据库和关系型数据库的区别;

  8. 熟练使用MongoDB操作常用的Shell命令;

实验内容与结果分析

  1. 利用Hadoop提供的Shell命令完成:

(1) img

(2) 向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件; img

(3) 从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;

img

img

(4) 将HDFS中指定文件的内容输出到终端中;

img

(5) 显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;

img

(6) 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;

img

(7) 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;

img

(8) 提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录; img

(9) 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾; img

(10) 删除HDFS中指定的文件; img

(11) 删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;

img

(12) 在HDFS中,将文件从源路径移动到目的路径。 img

  1. 编程实现以下指定功能:

(1) 编写一个Java程序,打开一个HDFS中的文件,并读取其中的数据,输出到标准输出;

(2) img

(3) img

(4) img

(5) img

(6) 编写一个Java程序,判断HDFS的/user/hadoop家目录下是否存在test.txt文件,如果没有则在家目录中新建一个test.txt文件,并向其中写入你的名字;

(7) img

img

第二部分

(1) HBase中创建表(create),并查看表(describe) img img

(2) HBase数据库基本操作

  • 添加数据:put命令

img

  • delete以及deleteall命令进行删除数据操作( delete用于删除一个数据,是put的反向操作;deleteall操作用于删除一行数据)

img

  • 查看数据

查看表的某一行数据;查看某个表的全部数据(get命令,用于查看表的某一行数据;scan命令用于查看某个表的全部数据)

img

img

  • 删除表

删除表有两步,第一步先让该表不可用(disable),第二步删除表(drop)。

(3) 查询表历史数据(get)

img

img

(4) 退出HBase数据库表操作(exit)

最后退出数据库操作,输入exit命令。注意:这里退出HBase数据库是退出对数据库表的操作,而不是停止启动HBase数据库后台运行。

img

3、Shell进阶练习

(1)根据上面给出的表格,用Hbase Shell模式设计学生表格,表名用自己姓名全拼。

namescore
MathComputerEnglish
zhangsan698677
lisi5510088

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

img

b) img

c) 查询行键为zhangshengrui的各科成绩信息。给出截图。

img

d) 查询zhangshengrui 的Computer成绩。给出截图。

img

e) 插入一条新的学生数据(wangwu,100,90,90)

img

f) 修改zhangshengrui的Math成绩,改为95。给出截图。

img

g) 删除zhangshengrui的信息。给出截图。

img

(2)假设HBase中存放了如下信息,表的逻辑视图及部分数据如下所示:

书名(bookName)价格(price)
Database System Concept30$
Thinking in Java60$
Data Mining25$

5$QSTPTA22X`FI25B5~6AB7

要求:将图书信息按照“price”排序,并将结果存储到HBase中。

四、出现的问题及解决方案

img

做实验报告的时候遇到的问题

1、一直显示拒绝连接,无法跳转路径

解决方法是自己忘了启动。./sbin/start-hadf.sh

2、 删除文件的时候提示没有文件

解决方法 在创建文件的时候把路径写错误input与user在同一个路径下,然后在删除时跳到一开始的路径下才删除的

3、输入“sudo service mongodb start”启动 mongodb 的时候,如果报这个错误:Failed to start mongod.service: Unit not found,安装教程配置了 mongodb.service,但是还是不成功 后来重新启动电脑 然后运行sudo systemctl start mongodb 成功。

4、在运行mongodb的语句时经常性的把:打成为=

总体来说本次实验让我受益颇多。

❤️‍后语❤️‍

厂长写博客目的初衷很简单,希望大家在学习的过程中少走弯路,多学一些东西,对自己有帮助的留下你的赞赞👍或者关注➕都是对我最大的支持,你的关注和点赞给厂长每天更文的动力。

对文章其中一部分不理解,都可以评论区回复我,我们来一起讨论,共同学习,一起进步!