大数据面试题

一、Hadoop

1、分布式的运算存储系统
2、特点:扩容能力、高效率、低成本、可靠性
3、功能:

(1)海量数据的存储(HDFS)
(2)海量数据的分析(MapReduce)
(3)资源管理调度(YARN):Yet Another Resource Negotiator

4、Hadoop常用端口号?
Hadoop2.0xHadoop3.0x
HDFS端口500709870
MapReduce端口80888088

二、HDFS

1、简介:HDFS是Hadoop的分布式文件系统
2、特点:高容错性、高吞吐量
3、读写流程

HDFS读写流程

4、节点
NamNodeHDFS 文件系统的管理节点
DataNode提供真实文件数据的存储服务

三、MapReduce

1、运行过程

MapReduce 运行的时候,通过 Mapper 运行的任务读取 HDFS 中的数据文件,然后调用 自己的方法,处理数据,最后输出。Reducer 任务会接收 Mapper 任务输出的数据,作为自 己的输入数据,调用自己的方法,最后输出到 HDFS 的文件中。
MapReduce运行过程

四、Yarn工作机制

1、Yarn调度器

FIFO 、Capacity Scheduler(容量调度器)和Fair Sceduler(公平调度器)

2、节点组件介绍

(1)ResourceManager:

  • 处理客户端请求
  • 监控NodeManager
  • 启动监控ApplicationMaster
  • 资源的分配与调度

(2)NodeManager

  • 管理单个节点上的资源
  • 处理来自ResourceManager的命令
  • 处理来自ApplicationMaster的命令

(3)ApplicationMaster

  • 为应用程序申请资源并分配给内部任务
  • 任务的监控与容错

(4)container容器

  • container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等

Yarn工作机制

五、Kafka架构

1、简介

Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景

2、特点
  • 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。
  • 可扩展性:kafka集群支持热扩展
  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
  • 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
  • 高并发:支持数千个客户端同时读写
    kafka运行方式
3、Kafka的使用场景
  • 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
  • 消息系统:解耦和生产者和消费者、缓存消息等。
  • 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。
  • 运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。
  • 流式处理:比如spark streaming和storm
  • 事件源
4、Kakfa分区数
  • 创建一个只有1个分区的topic。
  • 测试这个topic的producer吞吐量和consumer吞吐量。
  • 假设他们的值分别是Tp和Tc,单位可以是MB/s。
  • 然后假设总的目标吞吐量是Tt,那么分区数 = Tt / min(Tp,Tc)。

例如:producer吞吐量 = 20m/s;consumer吞吐量 = 50m/s,期望吞吐量100m/s;
分区数 = 100 / 20 = 5分区
分区数一般设置为:3-10个
分区数不是越多越好,也不是越少越好,需要搭建完集群,进行压测,再灵活调整分区个数。

5、Kafka日志保存时间

默认保存7天;生产环境建议3天

6、Kafka的机器数量

Kafka机器数量 = 2 *(峰值生产速度 * 副本数 / 100)+ 1

7、Kafka与Flume比较
  • flume:cloudera公司研发
  • 适合多个生产者
  • 适合下游数据消费者不多的情况
  • 适合数据安全性要求不高的操作
  • 适合与Hadoop生态圈对接的操作
  • kafka:linkedin公司研发
  • 适合数据下游消费众多的情况
  • 适合数据安全性要求较高的操作,支持replication
8、Kafka高效读写数据是如何保证的?
  • Kafka本身是分布式集群,可以采用分区技术,并行度高
  • 读数据采用稀疏索引,可以快速定位要消费的数据
  • 顺序写磁盘:Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写。
  • 页缓存 + 零拷贝技术
9、Kafka如何提升吞吐量:提高消费者吞吐量、提高生产者吞吐量、增加分区

六、Hive

1、简介
  • Hive 本身是建立在 Hadoop 体系结构上的数据仓库基础构架,可以将结构化的数据文 件映射为一张数据库表,并提供完整的 ql 语句,把 ql 语句转化成 mapreduce 程序提交给 hadoop集群完成相关任务。
  • Hive 的数据存储在 HDFS 中,大部分的计算、查询由 MapReduce 完成
2、hive与数据库的比较
  • Hive 和数据库除了拥有类似的查询语言,再无类似之处。
  • 数据存储位置
    Hive 存储在 HDFS ;数据库将数据保存在块设备或者本地文件系统中。
  • 数据更新
    Hive中不建议对数据的改写;而数据库中的数据通常是需要经常进行修改的,
  • 执行延迟
    Hive 执行延迟较高;数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。
  • 数据规模
    Hive支持很大规模的数据计算;数据库可以支持的数据规模较小。
3、内部表和外部表区别
  • 删除数据时:
    • 内部表:元数据、原始数据,全删除
    • 外部表:只删除元数据
4、Hive中4个By区别?
  • Order By:全局排序,只有一个Reducer。
  • Sort By:分区内有序。
  • Distrbute By:类似MR中Partition,进行分区,结合sort by使用。
  • Cluster By:当Distribute by和Sorts by字段相同时,可以使用Cluster by方式。

六、Spark

1、Spark和Hadoop的最大区别
  • Hadoop主要解决,海量数据的存储和海量数据的分析计算
  • Spark主要解决海量数据的分析计算
2、Spark常用端口号
  • 4040 spark-shell任务端口
  • 7077 内部通讯端口。类比Hadoop的8020/9000
  • 8080 查看任务执行情况端口。类比Hadoop的8088
  • 18080 历史服务器。类比Hadoop的19888

七、Flume

1、简介:flume是分布式的,可靠的,高可用的,用于对不同来源的大量的日志数据进行有效收集、聚集和移动,并以集中式的数据存储的系统;适用于多个生产者且下游消费者不多的情况。
2、组件介绍(source 、channel、sink)
  • source组件是用来采集日志
  • channel组件是用来缓冲日志的
  • sink组件是用来保存日志;日志信息保存到hdfs、hive、hbase
    此三组件被统称为agent(source +channel+sink)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值