欢迎光临
我们一直在努力

Hadoop 大数据课程复习知识点试卷

试卷分值结构

一、选择题 15 道,每题 2 分,共 30 分

二、理论题 4 道,每题 8 分,共 32 分

三、程序题 3 道,每题 8 分,共 24 分

四、综合题 1 道,14 分(分 3 小问:6 分、4 分、4 分)


一、

  • hadoop 集群,负责资源的管理和调度组件

  • HDFS 操作:使用 hadoop fs 命令查看文件(查看文件名称、文件的大小等)

  • Hive 中数据的存储格式,了解每一种存储格式的适合存储什么样的类型的数据

  • Linux 中权限的设置,如:使用命令给目录或文件赋予可读可写的权限

  • SSH 生成免密登录使用的密钥

  • MapReduce 过程中,map 阶段、reducer 阶段,采用技术 shuffle 的作用是什么

  • HDFS 包括 namenode、datanode 各自负责什么

  • 在Hive中,如何使用HQL语句进行分区(按省和市)

  • YARN资源管理器和HDFSWEBUI分别对应的端口号以及主要有的功能是什么

  • HDFS编程方式上传文件到FS,对文件进行操作的相应API(特别核心的API)的名称

  • 知道如何去查看NameNode和DataNode的状态

  • HIVE中,掌握如何将本地文件上传到HDFS服务器上,也掌握如何从HDFS服务器上将文件下载到本地

  • Map阶段的输出就是Reducer阶段的输入,了解Reducer阶段输入数据类型是什么

  • HDFS具有很高的可靠性的原因因为采用了副本策略,配置策略(每一台数据节点应该部署多少个副本才是合理的)

  • 在HIVE中区分内部表和外部表,删除外部表和删除内部表,元数据和实际数据会不同的处理策略。


  • 二、

    1、HIVE分区表的设计

    1)、了解Hive分区表的优缺点

    2)、会编写HiveQL(HQL)语句,加载本地(HDFS)数据到某一个表(分区表)中(课堂派上的作业)

    3)、会向表中插入数据

    2、HDFS读写流程(写入数据的流程和读取数据的流程),读写的过程其实是和namenode以及datanode进行交互的一个过程。涉及到数据块的传输过程(pipeline的机制),如何知道写入数据是成功的?

    3、MapReduce 原理和 Shuffle 机制。

    1)、给定输入数据‘student teacher student may can can may’,完成单词统计,Map 阶段的完整输出是什么?

    2)、会描述 Shuffle 机制对 Map 阶段的处理过程

    3)、掌握 Reduce 阶段的输出结果。

    4、Hadoop 集群规划和部署:给定一个集群的场景(部署一个微型的 Hadoop 集群,1 台 master,2 台 slave)

    1)、掌握如何将此集群配置起来(了解需要哪些配置文件?重要配置项需要掌握)

    2)、运行起来,掌握从格式化到正常启动的整个过程的操作(掌握关键的操作命令)

    3)、集群启动完成后,如何验证集群工作是正常的。


    三、

    1、Hive 表的操作

    (1)新建表Hive表分为:

    1)内部表(管理表):默认新建的表就是内部表,新建表的时候,未指定位置,默认存放在'/user/hive/warehouse',也可以通过关键字LOCATION指定具体的存放位置。

    2)外部表:新建外部表的时候需要带上关键字,如:CREATEEXTERNALTABLE表名称。(特点:删除外部表只会删除元数据,不会删除数据本身。)

    3)分区表:分区其实理解为分类,实际使用字段作为分类的名称。注意:作为分区用的字段不能和定义表中的字段重复(分区用的字段不能在定义表中)。

    一般,新建的表内部表会比较常用,例如:提供学生表:字段名称、字段类型、字段描述(备注)

    新建表的时候使用告知的表结构信息,建表的时候字段分隔符,一般用的逗号(空格),一般要指定存储格式,常见的存储格式:textfile等。

    (2)往表中插入数据一条或多条数据,如:(232021002,张三,21,数科系,2023-9-15)

    (3)掌握查询:查询2023年及以后注册的所有学生信息,从注册日期从大到小排序(倒序)

    (4)掌握统计:统计每个系的学生人数,计算学生的平均年龄。

    2、要求编写 Java 程序调用 HDFS API 实现文件的上传或下载(从 HDFS 复制到本地或从本地复制到 HDFS)

    (1)将 Hadoop 的包导入(会罗列主要的 3-5 个包名称),访问文件系统必须掌握 'FileSystem' 的实例化(产生一个对象)。

    (2)掌握在程序代码中设置 HDFS 文件的与源路径(HDFS 中的目录)和目标路径(本地目录)。

    (3)掌握实现文件下载的核心代码

    (4)掌握释放资源

    (5)掌握错误处理机制(try{ 可能存在错误的代码 }catch(Exception ex){获取具体错误信息})

    3、学会使用脚本批量的操作

    (1)掌握在 HDFS 新建文件,新建目录,具体的操作命令及参数参考 P101 常用 HDFS 命令学会使用脚本判断目录如果不存在则创建。

    (2)掌握使用 HDFS 的命令操作,将本地目录下的文件上传到 HDFS 指定的目录。
    不仅掌握单个文件上传,掌握批文件操作,例如:请将某个目录下所有以 'zeng' 结尾的文件全部上传到指定的 HDFS 目录中。

    (3)掌握遍历目录及子目录,学会通过递归的方式遍历某个指定的目录,查看该目录下面的文件或子目录。

    (4)linux 中的 shell 脚本,特别是一些比较常用的需要掌握,例如:统计一下 'zengshenzhou' 目录下面的文件的数量。

    例1:Java程序调用HDFSAPI上传文件(8分)

    请编写一个Java程序,实现将本地文件系统从HDFS下载到本地文件系统的功能。要求:

    (1)导入必要的Hadoop包(罗列至少3个主要的包名称)并写出获取FileSystem实例的程序代码。(2分)

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.FSDatalInputStream;
    import java.io.*;
    Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://master:9000");
    FileSystem fs = FileSystem.get(conf);

    (2)指定HDFS源文件路径和本地目标路径。

    Path hdfspath = new Path("/user/data/file.txt"); //HDFS源文件路径
    Path localPath = new Path("/home/user/file.txt"); //本地目标路径

    (3)实现文件下载的核心代码,并关闭资源。

    fs.copyToLocalFile(hdfspath, localPath);
    fs.close();

    (4)添加异常处理机制

    try{
    Configuration conf = new Configuration();
    text[[74, 768, 92, 780]]
    fs.copyToLocalFile(hdfspath, localPath);
    fs.close();
    System.out.println("下载成功!");
    catch(Exception ex){
    ex.printStackTrace();
    System.out.println("下载文件错误!");

    例2 HiveQL(HQL)查询操作:现有Hive表,结构如下,请编写HiveQL语句完成如下操作:

    字段名类型说明
    stu_no INT 学号
    stu_name STRING 学生姓名
    stu_dept STRING 系名称
    stu_age INT 学生年龄
    stu_date STRING 学生注册日期

    (1) 创建该内部表student,指定字段分隔符为逗号,存储的格式为TEXTFILE。

    (2) 向表中插入三条记录(2321001,'张三','信息工程系',19,'2022-09-15')和'(2321002,'李四','数科系',20,'2023-09-16')和'(2321003,'王五','人工智能学院',18,'2023-09-17')

    (3) 查询2023年及以后注册的学生信息,按照学生年龄从大到小排序。

    (4) 统计每个系(学院)的学生人数和平均年龄。

    例3 Shell脚本批量操作HDFS

    请编写一个Shell脚本,实现对HDFS日志文件的批处理。假设Hadoop环境变量已配置好:

    (1) 在HDFS上创建一个目录/ user/bigdata/zeng (若不存在则创建)

    (2) 将HDFS上/ user/bigdata/zeng 目录下所有以txt结尾的文件复制到/ user/bigdata/wang 目录。

    (3) 统计/ user/bigdata/zeng 目录下文件的总数量,并输出结果。

    例4 HDFS读写流程:请描述HDFS客户端写入一个400M的文件的完整流程,包括:

    (1) 客户端与 NameNode 的交互过程

    (2) 数据块(Block)的传输过程和流水线复制(Pipeline)机制

    (3) 写入完成后,NameNode 如何确认写入成功?

    赞(0)
    未经允许不得转载:171主机测评 » Hadoop 大数据课程复习知识点试卷
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址