当前位置:   article > 正文

分布式计算----期末复习题(仅供参考)_分布式计算框架期末

分布式计算框架期末

一.单选题,每个2分

1.Hadoop之父是下面的哪一位?(B)

A. James Gosling       B.Doug Cutting   C.Matei Zaharia   D.Linus Benedict Torvalds

2.Hadoop中,用于处理或者分析海量数据的组件是哪一个?(  B   )

A.HDFS    B.MapReduce    C.Yarn   D.以上选项都不是

3.HDFS中存储和管理元数据的是哪一项?(C)

A.ResourceManager      B.NodeManager

C.NameNodeD.DataNode

4.用户自己编写Hadoop的MapReduce算法,可以不用实现哪个阶段?      (    B   )

A.MapB.Shuffle     C.ReduceD.main函数

5.在HDFS的/hive/hadoop目录下创建data01目录,正确的一项是 (    B   )

A.mkdir /hive/hadoop/data01

B.hdfs dfs -mkdir /hive/hadoop/data01

C.hdfs dfs -mkdir  /data01

D.hdfs fs -cat /hive/hadoop/data01

6.关于Hadoop的MapReduce的描述,说法正确的一项是? (   C    )

A.可以用来存储大数据

B.用于管理大数据资源

C.是一个分布式计算框架

D.可以做实时数据分析

7、Hive表中的数据存储在什么地方? (  D     )

A. MySQL             B. Oracle

C. MapReduce      D. HDFS

8、在MapReduce中,如果将reducer数设置为0会发生怎样的情形  (  b     )

A.仅有Reduce作业发生          B. 仅有Map作业发生

 C. Reducer输出会成为           D .MapReduce无法

9、在MapReduce中,哪个将会对数据按 key 进行分区和排序  (    a   )

A.Shuffle          B.Reducer     

C.Mapper和Reducer      D.Mapper

10、在Hadoop的MapReduce中,Map的数量取决于什么  (    d   )

A.存储数据         B.任务数         C.输出数据        D.输入数据

11、在MapReduce,哪个阶段能够减少网络中数据量传输   (   c    )

A. Shuffle  

B. Reduce 

C. Combiner 

D. Map和Sort

12.格式化NameNode的命令是哪一项              (    a    )

A.hdfs namenode  –formatB.hdfs format

C.hdfs datanode -format               D.hadoop jar format

13.在Hadoop中,DataNode的作用是什么?     (  b    )

A.提供WEB端服务器

B.存储数据

C.提供统一的命名服务

D.NameNode提供整个HDFS文件系统的NameSpace管理,块管理等服务

14.Hive的基础架构组件不包括下列那些?           (    b   )

A.客户端   B.Tez    C.解析器     D.元数据

二.多选题,每个4分

1.常规的大数据项目通常采用的流程包括?    ( ABCD     )

A.数据的采集 B.数据的存储 C.数据的分析 D.可视化

2.有关Hadoop的MapReduce,下面哪个说法是错误的  (   ABC    )

A. 它提供了资源管理能力

B. 它是开源数据仓库系统,主要用于存储海量数据。

C. 它不能用来处理海量数据

D. 它可以用于海量数据的离线分析。

3.下面关于Hadoop的描述,正确有哪些? ( ABCD      )

A. HDFS可以用来存储海量数据

B. Yarn是Hadoop2.0起推出的一款资源管理系统

C. Hadoop的MapReduce是一个分布式的计算框架,可以用来处理大数据

D. Hadoop生态适合海量离线数据处理

4.Hadoop一般有三种安装模式,分别是?   (  BCD     )

A.Hadoop Smart模式B.伪分布模式

C.完全分布模式D.本地模式

5.Hadoop的基础组件(三大组件)有哪些? (   ABC    )

A.MapReduce  B.HDFS   C.Yarn   D.Derby

6.MapReduce的应用场景有哪些?(  ABCD     )

A.单词统计

B.简单的数据统计

C.统计搜索词频率,帮助优化搜索词提示

D.可以进行极大值.极小值统计

7.Hive的架构中Driver有哪些组件?     (  ABCD     )

A.编译器     B.优化器C.执行器D.解析器

8.自定义Writable接口,需要实现下列那些的? (BCD   )

A.toString     B.readFields   C.compareTo     D.write

9.Hadoop中资源调度的方式有哪几种?             ( ABC     )

A.FIFO调度器  B.Capacity调度器   C.Fair 调度器   D.延时调度

三.Java代码走读,并解释其含义

1.

(1)Configuration conf = new Configuration();

(1)Job job = Job.getInstance(conf);

1>(1)配置信息及封装任务

(2)job.setJarByClass(FlowDriver.class);

2>(2)设置jar加载路径

(3)job.setMapperClass(MyMapper.class);

(3)job.setReducerClass(MyReducer.class);

3>(3)设置要运行的map和reduce的类

(4)job.setMapOutputKeyClass(FlowBean.class);

(4)job.setMapOutputValueClass(NullWritable.class);

4>(4)答案:设置map的输出

(5)job.setOutputKeyClass(FlowBean.class);

(5)job.setOutputValueClass(NullWritable.class);

5>(5)设置最终输出的kv类型

2、

public static void myHadoop01() throws Exception {

String uri = "hdfs://HadoopMaster:9000";

Configuration conf = new Configuration();

(1)conf.set("fs.defaultFS",uri );

(2)FileSystem system = FileSystem.get(conf);

(3)FileStatus[] fileStatus = system.listStatus(new Path(uri));

(4)for (FileStatus fs : fileStatus) {

if(fs.isFile()) {

System.out.println("file:" + fs.getPath().toString());

}else {

System.out.println("directory:" + fs.getPath().toString());

}

}

}

代码解释:

(1)设置NameNode的通讯地址

(2)获取FileSystem对象

(3)获取HDFS根目录下的所有文件或者目录

(4)循环打印出HDFS根目录下的所有文件或者目录

3、

public class MyReducerTest extends Reducer<Text, FlowBean, Text, FlowBean> {

FlowBean v = new FlowBean();

@Override

(1)public void reduce(Text key, Iterable<FlowBean> values, Context context) throws IOException, InterruptedException {

long totalUp = 0;

long totalDown = 0;

(2)for (FlowBean value: values) {

(2)    totalUp += value.getUpFlow();

(2)   totalDown +=value.getDownFlow();}

(3)v.set(totalUp, totalDown);

(4)context.write(key, v);

}

}

代码解释:

(1)子类重写父类的reduce方法

(2)遍历每个values, 将其中的上行流量和下行流量进行累加

(3)封装输出的v

(4)输出k,v 键值对

四.程序设计题

实验(九):开发MapReduce算法,实现单词统计分析

请自己总结,每一段代码大概是什么意思,请同学们自己再看一看。

  1. /**
  2. Map阶段
  3. */
  4. public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
  5. @Override
  6. public void map(LongWritable key, Text value,Context context) throws lOException, InterruptedException {
  7. //拿到- -行文本内容,转换成String
  8. String line = value.toString0;
  9. //将这行文本切分成单词
  10. String0 words=line.split(","); I
  11. //输出<单词,1>
  12. for(String word:words){
  13. context.write(new Text(word), new IntWritable(1));
  14. }}}
  1. /**
  2. Reduce阶段
  3. public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
  4. @Override
  5. public void reduce(Text key, Iterable <IntWritable> values,Context context) throws lOException, InterruptedException {
  6. //定义一个计数器
  7. int count = 0;
  8. //通过value这个迭代器,遍历这一组kv中所有的value, 进行累加
  9. for(IntWritable value:values){
  10. count+=value.get0;
  11. //输出这个单词的统计结果
  12. context.write(key, new IntWritable(count);
  13. }}
  1. /**
  2. Main方法
  3. */
  4. public class WordCountJobSubmitter {
  5. public static void main(String] args) throws lOException, ClassNotFoundException, InterruptedException {
  6. Configuration conf = new Configuration0;
  7. Job wordCountJob = Job.getInstance(conf);
  8. //指定本job所在的jar包
  9. wordCountlob. setJarByClass(WordCountJobSubmitter.class);
  10. //设置wordCountJob所用的mapper逻辑类为哪个类
  11. wordCountJob.setMapperClass(WordCountMapper.class);
  12. //设置wordCountJob所用的reducer逻辑类为哪个类
  13. wordCountJob. setReducerClass(WordCountReducer.class);
  14. //设置map阶段输出的kv数据类型
  15. wordCountJob. setMapOutputKeyClass(Text.class);
  16. wordCountob.setMapOutputValueClass(IntWritable.class);
  17. //设置最终输出的kv数据类型
  18. wordCountJob. setOutputKeyClass(Text.class);
  19. wordCountJob.setMapOutputValueClass(IntWritable.class);
  20. //设置最终输出的kv数据类型
  21. wordCountJob.setOutputKeyClass(Text.class);
  22. wordCountJob.setOutputValueClass(IntWritable.class);t
  23. //设置要处理的文本数据所存放的路径
  24. FileInputFormat setInputPaths(wordCountJob, "hdfs://IP:9000/mapreduce/mydata";
  25. FileOutputFormat. setOutputPath(wordCountJob, new Path"hdfs://IP:9000/mapreduce/output/1);
  26. //提交job给hadoop集群
  27. wordCountJob.waitForCompletion(true);
  28. }}

五.思考题

1.在Hadoop集群中,单独启动hdfs的脚本是哪一个?以Hadoop2.x或者Hadoop3.0为例,HDFS启动成功以后,会有哪些进程,它们分别是什么?

start-dfs.sh。查看进程:NameNode,secondary namenode(前2是主节点出现)、DataNode(从节点出现)。

2.在Hadoop集群中,单独启动yarn的脚本是哪一个?Yarn启动成功以后,会有哪些进程,分别是什么?

单独看yarn的进程:start-yarn.sh ,出现resourcemanager(主节点),nodemanager(从节点)。

3.如果你使用的是Hadoop3.x版本,HDFS的页面访问端口是多少?Yarn的页面访问端口又是多少?(hdfs端口:9870。yarn端口:8088)

4.根据你对Hive的使用和练习,Hive的数据存放在哪里?Hive底层默认的计算引擎(计算框架)是什么?hive数据信息放在MySQL上。hive底层的计算框架:MapReduce。

其他补充:

1》hdfs默认的副本数3份,指定的进程能起来,文件的作用:

(1) hadoop -env.sh作用: 用于Hadoop运行环境的配置

(2) hdfs -site.xml作用:配置DataNode的数据块冗余度

(3) core- site.xml作用: 配置NameNode的所在主机或者通讯地址及NameNode格式化后的目录的路径

(4) mapper-site.xml 作用: 配置mapreduce运行框架yarn容器

(5) yarn-site.xml.作用: 配置ResourceManager所在 主机及MapReduce的shuffle方式

(6) Works(Slaves)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/792184
推荐阅读
相关标签
  

闽ICP备14008679号