大数据的那些面试题及答案(一)

1. Flume系列:

1.Channel Selectors有几种类型,它们的区别是什么?
答:有两种。Replicating Channel Selector(默认的)和Multiplexing Channel Selector。
(1)Replicating Channel Selector会将source过来的events发往所有的channel
(2)Multiplexing Channel Selector,可以选择将source过来的events发往哪些channel
2.Flume 的 Channel有几种,它们的区别是什么?
答:有两种。Memory Channel和File Channel
(1)Memory Channel是内存中的队列。Memory Channel在不需要关心数据丢失的情景下适用。(如果需要关心数据丢失,那么Memory Channel就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。)
(2)File Channel将所有事件==写到磁盘。==因此在程序关闭或机器宕机的情况下不会丢失数据

2. zookeeper系列

1.请简述zookeeper的选举机制
(1)半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper 适合安装奇数台服务器。
(2)Zookeeper 虽然在配置文件中并没有指定 Master 和 Slave。但是,Zookeeper 工作时,是有一个节点为 Leader,其他则为 Follower,Leader 是通过内部的选举机制临时产生的。
(3)以一个简单的例子来说明整个选举的过程。
假设有五台服务器组成的 Zookeeper 集群,它们的 id 从 1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的。假设这些服务器依序启动,会发生什么,如图
zookeeper的选举机制

  • 服务器 1 启动,此时只有它一台服务器启动了,它发出去的报文没有任何响应,
    所以它的选举状态一直是 LOOKING 状态。
  • 服务器 2 启动,它与最开始启动的服务器 1 进行通信,互相交换自己的选举结果,
    由于两者都没有历史数据,所以 id 值较大的服务器 2 胜出,但是由于没有达到超过半数以上的服务器都同意选举它(这个例子中的半数以上是 3),所以服务器 1、2 还是继续保持LOOKING 状态。
  • 服务器 3 启动,根据前面的理论分析,服务器 3 成为服务器 1、2、3 中的老大,
    而与上面不同的是,此时有三台服务器选举了它,所以它成为了这次选举的 Leader。
  • 服务器 4 启动,根据前面的分析,理论上服务器 4 应该是服务器 1、2、3、4 中最
    大的,但是由于前面已经有半数以上的服务器选举了服务器 3,所以它只能接收当小弟的命了。
  • 服务器 5 启动,同 4 一样当小弟。
    个人总结选举机制类似于投票,每台服务器先给自己投一票,如果投票结果小于总服务器数量的半数以上,则竞选leader失败,然后再将票投给myid比自己大的服务器,直到某台服务器的投票结果大于总数的半数以上,则该服务器被荣幸选为leader,一旦leader选出,接下来的服务器只能是follower了。除非这个leader坏掉,再重新进行下一轮选举。
    2.zookeeper的监听器原理
    (1)首先要有一个main()线程
    (2)在main线程中创建Zookeeper客户端,这时就会创建两个线 程,一个负责网络连接通信(connet),一个负责监听(listener)。
    (3)通过connect线程将注册的监听事件发送给Zookeeper。
    (4)在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中。
    (5)Zookeeper监听到有数据或路径变化,就会将这个消息发送 给listener线程。 (6)listener线程内部调用了process()方法。
    监听器原理3.常见的监听有哪些?
    (1)监听节点数据的变化
    get path [watch]
    (2)监听子节点增减的变化
    ls path [watch]
    4.机器中为什么会有leader?
    在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机器可以共享这个结果,这样可以大大减少重复计算,提高性能,于是就需要进行leader选举。
    5.ZooKeeper 的部署方式有哪几种?
    部署方式:单机模式、集群模式
    6.zookeeper集群中的角色有哪些?
    Leader 和 Follower
    7.集群最少需要几台机器?
    3台
    8.ZooKeeper 的常用命令
    ls create get delete set…
    9.zookeeper的应用场景及具体介绍
    答案详见此文章

3.spark系列

1.storm和SparStreaming的区别
(1)处理效率不同,storm可以实现mm级响应,streaming是m级,无法实现mm级的流计算
优点:底层基于内存和DAG,架构在Sparkcore基础上
(2)SparStreaming构建在Spark上,一方面是因为Spark的低延迟执行引擎可以用于实时计算,另一方面,相比于storm,RDD数据集更容易做高效的容错处理。
(3)SparStreaming采用的小批量处理的方式使得它可以同时兼容和实时数据处理的逻辑和算法,因此,方便了一些需要历史数据和实时数据联合分析的特定应用场合。

4.Mysql系列

1.五大约束

  • 主键约束(Primay Key) 唯一性,非空性(惟一地指定一行记录)
  • 唯一约束 (Unique)唯一性,可以空,但只能有一个
  • 检查约束 (Check) 对该列数据的范围、格式的限制(如:年龄、性别等)
  • 默认约束 (Default ) 该数据的默认值
  • 外键约束 (Foreign Key) 需要建立两表间的关系并引用主表的列

2.数据库设置约束条件有什么好处?
数据库约束是为了防止数据库中存在不正确的数据保证数据的完整性

5.其他大数据面试题

Hive面试题及答案
Hbase面试题及答案

~~后续会不断添加内容~~

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值