您的当前位置:首页大数据开发工程师笔试题

大数据开发工程师笔试题

2023-06-25 来源:飒榕旅游知识分享网
大数据开发工程师笔试题

一.单项选择题

1. 下面哪个程序负责 HDFS 数据存储。

a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的 block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定

3. 下列哪个程序通常与 NameNode 在一个节点启动?

a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 4. HDFS 默认 Block Size a)32MB b)64MB c)128MB

5. 下列哪项通常是集群的最主要瓶颈 a)CPU b)网络 c)磁盘 d)内存

6. 关于 SecondaryNameNode 哪项是正确的? a)它是 NameNode 的热备 b)它对内存没有要求

c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间 d)SecondaryNameNode 应与 NameNode 部署到一个节点 7. 下面程序执行的结果是哪项?

public class FinallyDemo{ static int value = 0; static int inc() {return value++;} static int dec() {return value--;} static int getResult() { try { return inc(); } finally { return dec(); } } public static void main(String[] args) { System.out.println(getResult()); System.out.println(value); } } A) 0 1 D) 1 0 多选题:

B)0 0 C)1 1

E)编译错误 F)运行错误

7. 下列哪项可以作为集群的管理工具

a)Puppet b)Pdsh c)Cloudera Manager d)d)Zookeeper 8. 配置机架感知的下面哪项正确

a)如果一个机架出问题,不会影响数据读写 b)写入数据的时候会写到不同机架的 DataNode 中 c)MapReduce 会根据机架获取离自己比较近的网络数据 9. Client 端上传文件的时候下列哪项正确 a)数据经过 NameNode 传递给 DataNode b)Client 端将文件切分为 Block,依次上传

c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作

二.问答题

1. HADOOP实现JOIN有几种方式?

2. Spark RDD的flatmap和map作用和区别是什么

3. 简述HIVE访问HBASE需要做哪些配置?

4. 图示大数据环境下典型的数据仓库体系架构 (可画背面)

5. 分别介绍Java Application和Web App的ClassLoad机制,并说明各自的设计目的

6. 列举数据挖掘中常用的几种数据抽样方法

三.编程题(可写背面)

1.SPARK编程题

给定以下文件hdfs://127.0.0.1:9000/README.txt,请写一段spark的程序,实现统计文件中英文单词的功能,要求输出结果中英文单词全部为小写字母,并将输出结果打印到控制台。

注:使用Python、Java(Java8)、Scala均可,import语句不必写,写主要逻辑即可 hdfs://172.16.48.202:9000/user/root/input/README.txt文件内容如下 What|is|your|name My|name|is|Taylor

2.MAPREDUCE编程题 (写出程序思路,主体逻辑,改写的接口即可)

product_no lac_id start_time

user_id staytime city_id

282 270 103 220 66 133 18

171 171 171 171 171 171 171

13429100031 22554 2013-03-11 08:55:19.151754088 571 13429100082 22540 2013-03-11 08:58:20.152622488 571 13429100082 22691 2013-03-11 08:56:37.149593624 571 13429100087 22705 2013-03-11 08:56:51.139539816 571 13429100087 22540 2013-03-11 08:55:45.150276800 571 13429100082 22540 2013-03-11 08:55:38.140225200 571 13429100140 26642 2013-03-11 09:02:19.151754088 571

字段解释:

product_no:用户手机号; lac_id:用户所在基站;

start_time:用户在此基站的开始时间; staytime:用户在此基站的逗留时间。

需求描述:

1. 根据 lac_id 和 start_time 知道用户当时的位置,根据 staytime 知道用户各个基站

的逗留时长。根据轨迹合并连续基站的 staytime。 2. 最终得到每一个用户按时间排序在每一个基站驻留时长

四. SQL

1. 请写出sql语句

在Oracle数据库中有3张表:

A: 客户信息表,包含字段: accountid(客户id) ,name (名称),province(省份)等。 B:账单表,包含字段:accountid(客户id),invest(入资),spend(支出),remain(余额)。 C: 入资明细表,包含字段:

accountid(客户id), date(入资时间) ,count(入资金额),consol(入资方式)等

1) 根据表A和表B,查询余额为零所有客户,列出客户ID、客户名称。

2) 根据表C,查询今天的所有入资,列出客户ID、入资方式。

3) 根据表C,以客户ID为单位,查询入资方式为“网上银行”的入资总和,列出客户ID、

“网上银行”方式入资的总和。

4)根据表A和表C,以客户ID为单位,查询入资方式为“网上银行” 的入资总和,并且,在该方式下入资总和大于5000000的数据,列出客户ID、客户名称、“网上银行”方式入资的总和。

2. 一个表的结构如下

emp( id number, name varchar(300), entrancedate date)

1)其中有重复的id,如何把那些有重复的id的记录取出来?写出至少两种方法

2)如何删除重复的id的记录?

因篇幅问题不能全部显示,请点此查看更多更全内容