* 面试答案为LZ所写,如需转载请注明出处,谢谢。

* 这里不涉及HiveSQL和HBase操作的笔试题,这些东西另有总结。

1.MR意义。

MR是一个用于处理大数据的分布式离线计算框架,它采用”分而治之“的思想。

在分布式计算中,将分布式存储、分布式计算、负载均衡等复杂问题高度抽象成map和reduce两个过程。

MR存在的意义在于它使得计算更廉价,大规模数据计算不再需要高级商用机器。

其次是这个软件的现成实现可以把程序员的精力集中在业务开发上,节省开发时间

2.简述MR过程。

MapReduce是一种应用于大数据离线处理的分布式计算模型。

MR过程分为 Split 、map 、Suffle、reduce 过程。

此图转载至: https://blog.csdn.net/asn_forever/article/details/81233547

split - 默认按行将文件进行切割,文本文件切割后为<beginNum,row>.

map - 将切割后的值映射成KV对。

partition - 对KV对集合进行分区,默认是使用hash partitioner.

group - 每个分区内按照Key进行排序,按Key进行group 。输出的 Key-ValueList 的集合作为reduce阶段的输入。

reduce - 对Key-ValueList 进行聚合。

另说一点感悟:

关于shuffle过程,我们其实很好理解。一般处理大数据集的二次排序问题,

都是采用 "散列 + Sort" 的思路,位列便于reduce计算,还需要进行一个grouping过程。

3.hadoop和spark的都是并行计算,那么他们有什么相同和区别?

先说一说区别: 1.内存/磁盘运算  2.计算模型

首先,两者的一个显著不同就是Spark是基于内存计算的,存取数据比Hadoop的MapReduce快很多。

其次,hadoop基于MapReduce计算模型,Spark采用的是基于DAG的计算模型,MapReduce的处理过程具有一定时序性的约束,而Spark可以达到高度并行。

相同:

本质上,Spark和Hadoop都是采用MapReduce模型进行计算的。

4.Kafka集群规模,消费速度?

一般中小型公司为10个节点上下,消费速度为20M左右。

5.HDFS上传文件的流程。

假设上传256M的文件。

1)由客户端向NameNode节点发出“上传文件”的请求,NameNode向Client返回可以存数据的DataNode信息,这里遵循机架感知策略

2)客户端首先对文件分块,Hdp1为64M/块,Hdp2为128M/块,假设使用Hdp2,则分为两块

3)依据可用DataNode信息,将数据流式的发送给DataNode,同时会复制到其他机器以满足副本数配置

4)DataNode向Client/NameNode通知“数据块传输完毕”,直到所有数据块传输完毕,DataNode向NameNode报告。

6.了解ZooKeeper吗?介绍一下它,它的选举机制和搭建也要介绍到。

1)ZooKeeper是一个分布式的协调服务,它广泛应用于数据的发布订阅、命名服务、配置中心、分布式锁、集群管理、选主与服务发现等等。这不仅得益于ZK类文件系统的数据模型基于Watcher机制的分布式事件通知,也得益于ZK特殊的高容错数据一致性协议。

2)Hadoop生态系统的软件的搭建一般都有固定的流程。

首先,配置环境变量。我会配置一个<SOFTWARE>_HOME以便于进入,有些软件例如Hdp和Zk、Spark在软件的使用当中就会使用到HADOOP_HOME、ZOOKEEPER_HOME、SPARK_HOME这些环境变量。

其次,修改配置文件。配置文件的格式一般以xml或者.properties文件为主。有一些主机会配置slaves,还有xxx.config/xxx.cfg文件,本质就是变量的赋值。

在ZK中,一般首先需要配置slaves(从机节点)以及dataDir还有server的位置。

对于dataDir,需要创建并放入一个myid,其中存放本机ZK节点的序号X

server.X=host:port1:port2 其中port1指的是内部选举用的端口,port2是指ZK通信端口

7.ZK如何实现分布式锁?

可以参考我的另一篇: https://www.cnblogs.com/yosql473/p/10766149.html

8.ZK如何实现单机多节点?

三个配置文件 zoo1.cfg zoo2.cfg zoo3.cfg 对应三个数据目录

然会分别启动

9.端口问题:你简历中软件的默认端口是什么:

tomcat 8080   hadoop: hdfs 50070 yarn 8088

mysql: 3306  mongodb: 27017   redis:6379

spark:7077 sparkUI:8080 zookeeper: 2181 stormUI:8081

kafka(broker):9092  hbaseUI 1.0以前:60010 以后:16010

10.说一下你对hadoop生态圈的认识。

hadoop生态圈基于hdfs大数据的存储方案,提供了全栈的大数据处理方案,例如离线批处理为MapReduce以及Hive完成,当然这个过程需要调度Oozie。实时交互由HBase以及Impala(正在孵化中)完成。流计算由Storm完成。除此之外提供了Sqoop转库工具、Flume大吞吐量的采集工具以及分布式协调服务ZK、Kafka分布式MQ、Hue图形化查询器等软件,除此之外还提供了Mahout机器学习引擎。spark计算引擎的出现导致spark生态圈的出现,其中只是一些三大业务场景中spark计算引擎的使用,批处理由Spark本身的Core就可以完成、实时交互由Spark SQL进行查询、流计算由Spark Streaming进行完成。除此之外还提供了MLib、GraphX这些计算工具方便进行计算。

11.说一下你对yarn的理解。

TODO

12.数据的来源方式。

1)来源于日志:

  日志分为系统日志、服务器日志以及应用日志,系统日志包括软件系统的日志、数据库日志、操作系统日志、中间件日志、容器日志等。

  服务器日志为Apache、Nginx、tomcat或IIS产生的日志。

  应用日志包括行为日志、用户日志。

  这些日志可以通过flume采集、从日志系统获取,或者日志系统和数据分析平台统一从Kafka中获取。

2)来源于行为:

当行为产生时,我们可以通过前端埋点的方式直接发往大数据业务系统。

3)来源于采集:

我们可以通过爬虫分布式的采集数据或者提取API获得数据并发往大数据业务系统。

13.Kafka是怎么设计的?

1)如果我们想设计一个消息中间件,我们首先需要有一个队列,而且需要这个队列中的数据能够被顺序消费,因此每条数据都有index,在Kafka中也会保存一个offset偏移量,方便续读取

这样的系统至少有两个问题: 1.单队列吞吐量低  2.单队列中存放了各色业务的数据

2)为解决上面两个问题,我们首先需要用多队列解决吞吐量的问题,然后抽象出topic,以便将不同的业务数据存放在不同的topic当中,每个topic对应一条逻辑队列。

这样结合一下,一个topic就有一条逻辑队列,逻辑队列又会被拆成多条物理队列,方便并发访问。

这样的中间件解决了两个问题。但是仍然有问题. 中间件宕了怎么办?依然有可用性的问题,因此我们必须考虑数据备用节点和备份的问题。

3)Kafka采用Broker集群,借用ZK管理,解决数据备用节点的问题。数据备份还是采用多副本的机制

总结一下,Kafka采用的机制与HDFS有些类似,它采用的是分布式分块冗余存储,一个topic对应一条逻辑队列,这条逻辑队列会被分成多个分区,多个分区分布式冗余的存储在多个Broker节点之上。

为了防止节点宕机,Kafka采用 分布式存储 、 持久化数据 、 冗余存储 机制来避免数据断流和丢失。

[大数据面试题]hadoop核心知识点的更多相关文章

  1. [大数据面试题]storm核心知识点

    1.storm基本架构 storm的主从分别为Nimbus.Supervisor,工作进程为Worker. 2.计算模型 Storm的计算模型分为Spout和Bolt,Spout作为管口.Bolt作为 ...

  2. 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)

    大数据时代之hadoop(一):hadoop安装 大数据时代之hadoop(二):hadoop脚本解析 大数据时代之hadoop(三):hadoop数据流(生命周期) 大数据时代之hadoop(四): ...

  3. 大数据测试之初识Hadoop

    大数据测试之初识Hadoop POPTEST老李认为测试开发工程师是面向测试的开发,也就是说,写代码就是为完成测试任务服务的,写自动化测试(性能自动化,功能自动化,安全自动化,接口自动化等等)的cas ...

  4. 一篇了解大数据架构及Hadoop生态圈

    一篇了解大数据架构及Hadoop生态圈 阅读建议,有一定基础的阅读顺序为1,2,3,4节,没有基础的阅读顺序为2,3,4,1节. 第一节 集群规划 大数据集群规划(以CDH集群为例),参考链接: ht ...

  5. 有必要了解的大数据知识(一) Hadoop

    前言 之前工作中,有接触到大数据的需求,虽然当时我们体系有专门的大数据部门,但是由于当时我们中台重构,整个体系的开发量巨大,共用一个大数据部门,人手已经忙不过来,没法办,为了赶时间,我自己负责的系统的 ...

  6. 有必要了解的大数据知识(二) Hadoop

    前言 接上文,复习整理大数据相关知识点,这章节从MapReduce开始... MapReduce介绍 MapReduce思想在生活中处处可见.或多或少都曾接触过这种思想.MapReduce的思想核心是 ...

  7. ASP.NET + SqlSever 大数据解决方案 PK HADOOP

    半个月前看到博客园有人说.NET不行那篇文章,我只想说你们有时间去抱怨不如多写些实在的东西.  1.SQLSERVER优点和缺点? 优点:支持索引.事务.安全性以及容错性高 缺点:数据量达到100万以 ...

  8. 【大数据】了解Hadoop框架的基础知识

    介绍 此Refcard提供了Apache Hadoop,这是最流行的软件框架,可使用简单的高级编程模型实现大型数据集的分布式存储和处理.我们将介绍Hadoop最重要的概念,描述其架构,指导您如何开始使 ...

  9. 大数据学习之Hadoop快速入门

    1.Hadoop生态概况 Hadoop是一个由Apache基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的威力来进行高速运算与存储,具有可靠.高效 ...

随机推荐

  1. Asp.net Image控件显示Bitmap生成图像

    from:https://blog.csdn.net/qq_29011299/article/details/81137980 using(Bitmap bmp=new Bitmap(300,50)) ...

  2. R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD, R-FCN系列深度学习检测方法梳理

    1. R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation 技术路线:selec ...

  3. Two (DP)

    题意:求两串数字有多少个相同的子串,子串不要求连续. 思路:直接DP,dp[i][j] 代表A串长度为i.B串为j时满足条件的子串个数.转移dp[i][j] = dp[i -1][j] + dp[i] ...

  4. Java面试题整理---Redis篇

    1.redis支持五种数据结构类型?   2.redis内部结构?   3.redis持久化机制?   4.redis集群方案与实现?   5.redis为什么是单线程的?   6.redis常见回收 ...

  5. 【转】LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    用VS2010编译C++项目时出现这样的错误: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 方案一:(这个方法比较好,在用qt运行时出现问题也能解决) 复制 C:\Windows\ ...

  6. 转--Python re模块 验证11位手机号

      一.常用正则表达式符号和语法:   '.' 匹配所有字符串,除\n以外 ‘-’ 表示范围[0-9] '*' 匹配前面的子表达式零次或多次.要匹配 * 字符,请使用 \*. '+' 匹配前面的子表达 ...

  7. C博客作业06--结构体&文件

    1.本章学习总结 1.1思维导图 1.2本章学习体会 学习了结构和文件,又是懵懵的课了,我的天啊.结构还好,题目集一出就做了,不是很难,感觉掌握的还可以,不过这只是感觉而已,等到真正来写大作业的时候又 ...

  8. TeamCity Agent安装

    1 docker安装 docker run -it -e SERVER_URL= \ -v /home/lishan/teamcity/conf:/data/teamcity_agent/conf \ ...

  9. Hibernate一级缓存和二级缓存详解

    (1)一级缓存 是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个session(一定要同一个session)又做了同一个操作,那么h ...

  10. MQ(队列消息的入门)

    消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下拓展进程间的通信,对于消息中间件,常见的角色大致也 ...