3月
3-11(1)
MR Job提交流程--ok
HDFS存储小文件--ok
安全模式--ok
HDFS启动流程--ok
HDFS读流程--ok
3-14(2)
1.MR全流程--ok
2.HDFS写流程--ok
3.MR word count
4.yarn调度器--ok
5.SecondaryNameNode职责 checkpoint机制--ok
3-15(3)
1.普通HDFS与HA的不同--ok
2.如何切换NameNode--ok
3.HDFS HA自动故障转移机制--ok
4.基准测试 Hadoop宕机 hadoop数据倾斜
宕机:MR宕机调节同时运行的最大任务数,和任务申请的最大内存
Kafka宕机:调高存储大小
flume:调整每次拉取的数据量大小(batchsize)
5.zookeeper介绍 特点--ok
3-16(4)
1.zookeeper节点类型--ok
2.zookeeper服务器选几个节点--ok
3.选举机制--ok
4.监听原理
程序的入口:main()方法对应一个main线程
2.在该main线程中创建zookeeper客户端:new Zookeeper(),创建客户端的同时会创建两个线程:
sendThread:发送注册监听事件的线程
eventThread:将变化通知给客户端的线程
3.通过sendThread线程将注册的监听事件发送给zookeeper
getChildren("/",true)第一个参数为监听的路径,第二个参数true表示开启监听.
4.将注册的监听事件添加到zookeeper的注册监听器列表中
5.当zookeeper监听到变化时,就会将这个消息发送给eventThread线程
6.eventThread线程内部调用了precess()方法进行业务处理.
注:zookeeper一共有三种方法可以实现Watch:
1)getData:该方法仅监控对应节点数据的一次变化,可以是该节点中该数据的修改或对该节点的删除.
2)exists(final String path,boolean watcher)
判断该Znode是否存在
开启监听时与getData方法的作用一毛一样
3)getChildren(String path,boolean watch)
该方法用于获取某一路径下的所有的直接子节点,第一个参数为路径,第二个参数为是否监听直接子目录中节点的增删,该方法仅监控对应节点直接子目录的一次变化,且只监控直接子目录下节点的增减情况,不会监控数据的变化.
5.常用命令--ok
3-17(5)
1.flume组成 put事务 take事务
taildir source
[1]特点
[2]哪个版本产生的?
[3]没有断点续传功能怎么办?
[4]taildir挂了怎么办?怎么处理重复数据
[5]是否支持递归遍历文件夹读取文件?
batchsize大小如何设置?
hdfs sink滚动
2.拦截器
[1]自定义拦截器的步骤
[2]判断传送的json串是否完整(代码好像有问题,需要在项目中实现)
[3]time intercapter
[4]拦截器注意事项
[5]拦截器可以不用吗
拦截器的优点 缺点
3.channel选择
存储在哪里?优势劣势
生产环境如何选择?
每天丢几百万数据,pb级别用处理吗?
4.选择器
5.监控器
用什么监控器?
检测到flume尝试次数远远大于最终成功的次数怎么办?
6.flume采集数据会丢失吗
7.flume如何保证数据的完整性.
100个event是一批次
3-21(6)
1.一个kafka体系架构包括
zookeeper管理集群配置,选举leader,在consumer group 发生变化时进行rebalance.
2.kafka组件
topic,consumergroup
3.kafka的文件存储机制--ok
4.relicas副本--ok
5.ISR HW LEO
LEO
6.kafka分区在集群中的分配策略
[1]一条消息写到哪个分区中
当key为空时,消息随机发送到各个分区,各个版本有不同,有的是随机,有的是一定时间内只发固定的partition,隔一段时间后随机换一个.
当key不为空时,用key的hash值对partition的个数取模,决定要把消息发送到哪个partition.
[2]消费者消费哪个partition
3-22(7)
1.ack
1)ack=-1时,什么时候数据会重复,什么时候不会重复
2.幂等
2)如何实现幂等
3.数据丢失与重复
4.副本设定 压测
副本的优缺点
5.kafka机器数量 kafka分区数 kafka中数据量计算
6.硬盘大小 日志保留时间 kafka监控
每天的数据量100g*2个副本*3天/70%=900g,答2t
3-23(8)
1.flume处理器
2.kafka消息数据积压怎么处理
1)kafka参数优化
[1]broker参数配置(server.properties)
log.retention.hours=72
#默认为7天,可以设置为3天
[2]replica副本
default.replication.factor=1
[3]网络通信延时
replica.socket.timeout.ms=30000(30s)
#当集群之间的网络不稳定时,调大该参数
replica.lag.time.max.ms=600000(10min)
#follower落后leader10min会踢出ISR集合
#如果网络不好,或者kafka压力较大,会出现节点从ISR到OSR再到ISR,然后频繁的复制副本,导致集群压力更大,此时可以调大该参数。
2)Producer优化(producer.properties)
compression.type=none
#可选 gzip snappy lz4
#默认发送不进行压缩,推荐设置一种合适的压缩算法,可以大幅度的减缓网络压力和Broker的存储压力。
3)kafka内存调整(kafka-server-start.sh)
export KAFKA_HEAP_OPTS="-Xms4g -Xmx4g"
4.kafka高效读写数据的原因
5.单条日志传输大小
3-25(9)
1.kafka过期清理
2.kafka消费者角度考虑是拉取数据还是推送数据 kafka中的数据是有序的吗
3.kafka如何保证数据有序
4.Linux查看文件实际大小
3.28(10)
1.find
2.xargs
3.tar
4.hive设置map读入的分片参数
5.hive设置合并小文件的参数
3.29(11)
1.hive和数据的比较
2.内部表 外部表
3. distribute by cluster by partition by oder by sort by
4系统函数
date_add
date_sub
date_format
next_day
last_day
current_date
nvl
get_json_object
collect_set
collect_list
5.窗口函数
over(rows between ... and ...)
row_number rank dense_rank
lag lead ntile