厦门大学林子雨编著《大数据技术原理与应用》教材配套实验

上传人:jin****ng 文档编号:182590228 上传时间:2023-01-26 格式:DOCX 页数:15 大小:56.05KB
返回 下载 相关 举报
厦门大学林子雨编著《大数据技术原理与应用》教材配套实验_第1页
第1页 / 共15页
厦门大学林子雨编著《大数据技术原理与应用》教材配套实验_第2页
第2页 / 共15页
厦门大学林子雨编著《大数据技术原理与应用》教材配套实验_第3页
第3页 / 共15页
点击查看更多>>
资源描述
厦门大学林子雨编著大数据技术原理与应用教材配套实验实验一: 熟悉常用的 Linux 操作和 Hadoop 操作一、实验目的Hadoop 运行在 Linux 系统上, 因此, 需要学习实践一些常用的 Linux 命令。.本实验旨 在熟悉常用的 Linux 操作和 Hadoop 操作, 为顺利开展后续其他实验奠定基础。.二、实验平台 操作系统:Linux (建议 Ubuntu16. 04); Hadoop 版本:2. 7. 1。.三、实验步骤(一)熟悉常用的 Linux 操作 cd 命令: 切换目录(1) 切换到目录“/usr/local”(2) 切换到当前目录的上一级目录(3) 切换到当前登录Linux系统的用户的自己的主文件夹 ls 命令: 查看文件与目录(4) 查看目录“/usr”下的所有文件和目录 mkdir 命令: 新建目录(5) 进入“/tmp”目录,创建一个名为“a”的目录,并查看“/tmp”目录下已经存在 哪些目录(6) 进入“/tmp”目录,创建目录“a1/a2/a3/a4” rmdir 命令: 删除空的目录(7) 将上面创建的目录a (在“/tmp”目录下面)删除(8) 删除上面创建的目录“a1/a2/a3/a4” (在“/tmp”目录下面),然后查看“/tmp” 目录下面存在哪些目录 cp 命令: 复制文件或目录(9) 将当前用户的主文件夹下的文件.bashrc复制到目录“/usr”下,并重命名为bashrc1(10) 在目录“/tmp”下新建目录test,再把这个目录复制到“/usr”目录下 mv 命令: 移动文件与目录, 或更名(11) 将“/usr”目录下的文件bashrc1移动到“/usr/test”目录下(12) 将“/usr”目录下的test目录重命名为test2 rm 命令: 移除文件或目录(13) 将“/usr/test2”目录下的bashrc1文件删除(14) 将“/usr”目录下的test2目录删除 cat命令:查看文件内容(15)查看当前用户主文件夹下的.bashrc文件内容 tac 命令: 反向查看文件内容(16)反向查看当前用户主文件夹下的.bashrc文件的内容 more 命令: 一页一页翻动查看(17)翻页查看当前用户主文件夹下的.bashrc文件的内容 head 命令: 取出前面几行(18)查看当前用户主文件夹下.bashrc文件内容前20行(19)查看当前用户主文件夹下.bashrc文件内容,后面50行不显示,只显示前面几行 tail 命令: 取出后面几行(20)查看当前用户主文件夹下.bashrc文件内容最后20行(21)查看当前用户主文件夹下.bashrc文件内容,并且只列出50行以后的数据 touch 命令: 修改文件时间或创建新文件(22)在“/tmp”目录下创建一个空文件hello,并查看文件时间(23)修改hello文件,将文件时间整为5天前 chown 命令: 修改文件所有者权限(24)将hello文件所有者改为root帐号,并查看属性 find 命令: 文件查找(25)找出主文件夹下文件名为.bashrc的文件 tar 命令: 压缩命令(26) 在根目录“/”下新建文件夹test,然后在根目录“/”下打包成test. tar. gz(27)把上面的test. tar. gz压缩包,解压缩到“/tmp”目录 grep 命令: 查找字符串(28)从“/. bashrc ”文件中查找字符串examples 配置环境变量(29)请在“/. bashrc”中设置,配置Java环境变量(30)查看JAVA_HOME变量的值(二)熟悉常用的 Hadoop 操作(31)使用 hadoop 用户登录 Linux 系统, 启动 Hadoop(Hadoop 的安装目录为“/usr/local/hadoop”),为 hadoop 用户在 HDFS 中创建用户目录“/user/hadoop”(32) 接着在HDFS的目录“/user/hadoop”下,创建test文件夹,并查看文件列表(33)将Linux系统本地的“/. bashrc”文件上传到HDFS的test文件夹中,并查看test(34)将HDFS文件夹test复制到Linux系统本地文件系统的“/usr/local/hadoop”目录下四、实验报告实验报告题目:姓名日期实验环境:实验内容与完成情况: 出现的问题:解决方案(列出遇到的问题和解决办法,列出没有解决的问题)(备注:实验答案请见附录A)实验二:熟悉常用的HDFS操作一、实验目的 理解HDFS在Hadoop体系结构中的角色; 熟练使用HDFS操作常用的Shell命令; 熟悉 HDFS 操作常用的 Java API。.二、实验平台操作系统:Linux (建议 Ubuntul6. 04)Hadoop 版本: 2. 7. 1;JDK 版本:1. 7 或以上版本;Java IDE:Eclipse。.三、实验步骤一)编程实现以下功能, 并利用 Hadoop 提供的 Shell 命令完成相同任务:(1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,则由 用户来指定是追加到原有文件末尾还是覆盖原有的文件;(2)从 HDFS 中下载指定文件, 如果本地文件与要下载的文件名称相同, 则自动 对下载的文件重命名;(3)将 HDFS 中指定文件的内容输出到终端中;(4)显示 HDFS 中指定的文件的读写权限、大小、创建时间、路径等信息;(5)给定 HDFS 中某一个目录, 输出该目录下的所有文件的读写权限、大小、创建 时间、路径等信息, 如果该文件是目录, 则递归输出该目录下所有文件相关 信息;(6)提供一个 HDFS 内的文件的路径, 对该文件进行创建和删除操作。.如果文件所 在目录不存在, 则自动创建目录;(7)提供一个 HDFS 的目录的路径, 对该目录进行创建和删除操作。.创建目录时, 如果目录文件所在目录不存在, 则自动创建相应目录;删除目录时, 由用户 指定当该目录不为空时是否还删除该目录;(8)向 HDFS 中指定的文件追加内容, 由用户指定内容追加到原有文件的开头或结 尾;(9)删除 HDFS 中指定的文件;(10)在 HDFS 中, 将文件从源路径移动到目的路径。.(二)编程实现一个类“MyFSDatalnputStream, 该类继承“org. apache. hadoop. fs. FSDat alnputStream”,要求如下:实现按行读取HDFS中指定文件的方法“readLine()”,如果读 到文件末尾, 则返回空, 否则返回文件一行的文本。.(三)查看 Java 帮助手册或其它资料,用“java. net. URL和“org. apache, hadoop. fs. Fs URLStreamHandlerFactory,编程完成输出HDFS中指定文件的文本到终端中。.四、实验报告实验报告题目:姓名日期实验环境:实验内容与完成情况: 出现的问题:解决方案(列出遇到的问题和解决办法,列出没有解决的问题厂(备注:实验答案请见附录A)实验三:熟悉常用的HBase操作一、实验目的 理解HBase在Hadoop体系结构中的角色; 熟练使用HBase操作常用的Shell命令; 熟悉HBase操作常用的Java API。.二、实验平台 操作系统:Linux (建议 Ubuntul6. 04); Hadoop 版本: 2. 7. 1; HBase 版本: l. l. 5; JDK 版本: l. 7 或以上版本; Java IDE: Eclipse。 .三、实验步骤一)编程实现以下指定功能, 并用 Hadoop 提供的 HBase Shell 命令完成相同任务(1)列出 HBase 所有的表的相关信息, 例如表名;(2)在终端打印出指定的表的所有记录数据;(3)向已经创建好的表添加和删除指定的列族或列;4) 清空指定的表的所有记录数据5) 统计表的行数。.(二) HBase数据库操作1.现有以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入 数据:学生表( Student)学号(S No)姓名(S Name)性别(S Sex)年龄(S Age)2015001Zhangsanmale232015003Maryfemale222015003Lisimale24课程表( Course)课程号(C No)课程名(C Name)学分(C Credit)123001Math2. 0123002Computer Science5. 0123003English3. 0选课表( SC)学号(SC Sno)课程号(SC Cno)成绩(SC Score)2015001123001862015001123003692015002123002772015002123003992015003123001982015003123002952. 请编程实现以下功能:( 1 ) createTable(String tableName, String fields)创建表,参数tableName为表的名称,字符串数组fields为存储记录各个字段名称的 数组。.要求当 HBase 已经存在名为 tableName 的表的时候, 先删除原有的表, 然后再创 建新的表。.( 2 ) addRecord(String tableName, String row, String fields, String values)向表tableName、行row (用S_Name表示)和字符串数组fields指定的单元格中添加对 应的数据values。.其中,fields中每个元素如果对应的列族下还有相应的列限定符的话,用 “columnFamily: column表示。.例如, 同时向“Math、“Computer Science、“English三 列添加成绩时,字符串数组 fields 为“Score: Math”, ”Score: Computer Science”, ”Score: English, 数组 values 存储这三门课的成绩。 .( 3 ) scanColumn(String tableName, String column)浏览表tableName某一列的数据,如果某一行记录中该列数据不存在,则返回null。. 要求当参数 column 为某一列族名称时, 如果底下有若干个列限定符, 则要列出每个列限 定符代表的列的数据;当参数column为某一列具体名称(例如“Score: Math)时,只需 要列出该列的数据。 .( 4) modifyData(String tableName, String row, String column)修改表tableName,行row (可以用学生姓名S_Name表示),列column指定的单元 格的数据。.( 5) deleteRow(String tableName, String row) 删除表 tableName 中 row 指定的行的记录。.四、实验报告实验报告题目:姓名日期实验环境:实验内容与完成情况: 出现的问题:解决方案(列出遇到的问题和解决办法,列出没有解决的问题厂(备注:实验答案请见附录A)实验四:NoSQL 和关系数据库的操作比较、实验目的 理解四种数据库(MySQL、HBase、Redis和MongoDB)的概念以及不同点; 熟练使用四种数据库操作常用的Shell命令; 熟悉四种数据库操作常用的Java API。.二、实验平台 操作系统:Linux (建议 Ubuntu16. 04); Hadoop 版本: 2. 7. 1; MySQL 版本:5. 6; HBase 版本: 1. 1. 2 ; Redis 版本: 3. 0. 6; MongoDB 版本: 3. 2. 6; JDK版本:1. 7或以上版本; Java IDE: Eclipse;三、实验步骤一) MySQL 数据库操作学生表 StudentNameEnglishMathComputerzhangsan698677lisi55100881.根据上面给出的Student表,在MySQL数据库中完成如下操作:1)在 MySQL 中创建 Student 表, 并录入数据;(2)用SQL语句输出Student表中的所有记录;3)查询 zhangsan 的 Computer 成绩;(4)修改lisi的Math成绩,改为95。.2根据上面已经设计出的Student表,使用MySQL的JAVA客户端编程实现以下操作:(1)向Student表中添加如下所示的一条记录:scofield45891002)获取 scofield 的 English 成绩信息(二)HBase数据库操作学生表 Studentn amescoreEnglishMathComputerzhangsan698677lisi55100881. 根据上面给出的学生表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:100scofield45891002)获取 scofield 的 English 成绩信息。 .(三)Redis数据库操作Student键值对如下:zhangsan:English:69Math:86Computer:77lisi:English:55Math:100Computer:881. 根据上面给出的键值对, 完成如下操作:(1) 用Redis的哈希结构设计出学生表Student(键值可以用student. zhangsan和student. lisi 来表示两个键值属于同一个表);(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:45Math:89Computer:100(2)获取 scofield 的 English 成绩信息(四)MongoDB数据库操作 Student文档如下:name”: zhangsan” “score”:English”:69,Math”:86, 77name”: lisi”, score”:English”:55,Math”:100, 881. 根据上面给出的文档, 完成如下操作:(1) 用 MongoDB Shell 设计出 student 集合;(2) 用find()方法输出两个学生的信息;(3) 用find()方法查询zhangsan的所有成绩(只显示score列);(4) 修改lisi的Math成绩,改为95。.2.根据上面已经设计出的Student集合,用MongoDB的Java客户端编程,实现如下操作:(1)添加数据: English: 45 Math: 89Computer: 100(2)获取scofield的所有成绩成绩信息(只显示score 列)四、实验报告实验报告题目:姓名日期实验环境:实验内容与完成情况: 出现的问题:解决方案(列出遇到的问题和解决办法,列出没有解决的问题)(备注:实验答案请见附录A)实验五: MapReduce 初级编程实践一、实验目的 通过实验掌握基本的MapReduce编程方法; 掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖 掘等。 .二、实验平台 操作系统:Linux (建议 Ubuntul6. 04) Hadoop 版本: 2. 7. 1三、实验步骤(一)编程实现文件合并和去重操作对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行 合并,并剔除其中重复的内容,得到一个新的输出文件C。.下面是输入文件和输出文件 的一个样例供参考。.输入文件 A 的样例如下:20170101x20170102y20170103x20170104y20170105z20170106x根据输入文件A和B合并得到的输出文件C的样例如下:20170101x20170101y20170102y20170103x20170104y20170104z20170105y20170105z20170106x(二)编写程序实现对输入文件的排序现在有多个输入文件, 每个文件中的每行内容均为一个整数。 .要求读取所有文件中的 整数, 进行升序排序后, 输出到一个新的文件中, 输出的数据格式为每行两个整数, 第 一个数字为第二个整数的排序位次, 第二个整数为原待排列的整数。 .下面是输入文件和输 出文件的一个样例供参考。 .输入文件3的样例如下:25(三)对给定的表格进行信息挖掘下面给出一个 child-parent 的表格, 要求挖掘其中的父子辈关系, 给出祖孙辈关系的 表格。.输入文件内容如下:childparent四、实验报告题目:姓名日期实验环境:解决问题的思路: 实验内容与完成情况: 出现的问题: 解决方案(列出遇到的问题和解决办法,列出没有解决的问题)(备注:实验答案请见附录A
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!