一、Linux

1、常用高级命令

Top:查看CPU使用情况(系统内存)

Iotop:查看磁盘IO使用情况

ps -ef :查看服务器进程信息

df -h:显示磁盘分区使用情况

netstat:查看端口号

rpm:安装软件包

tar:解压缩

jmap-heap:查看某一个进程对应的内存

distcp:集群间数据迁移

scp :节点之间数据迁移

二、shell

1、用过哪些工具

awk、sed、sort、cut、<python>

2、写过的shell脚本

1)分发脚本

2)启停脚本<重点>

#!/bin/bash

case $1 in

"start")

for i in hadoop102 hadoop103 hadoop104

do

ssh $i " 绝对路径"

done

;;

"stop")

do

ssh $i "绝对路径"

done

;;

esac

3)数仓中数据导入和导出脚本

mySQL -> hdfs <datax>

hdfs -> mySQL <datax>

4)数仓层级内部

ods -> ads (5步)

3、单引号('')和双引号("")

'' :不解析里面变量的值

"":解析里面变量的值

两者嵌套使用:谁在外面谁起作用

三、hadoop

1、入门

1)常用端口号:3.x:9870(hdfs),8088(yarn),19888(历史服务器),9820/9000/8020(内部通讯)

2)常用配置文件:core_site.xml        hdfs_site.xml        mapred_site.xml        yarn_site.xml        workers

2、HDFS

1)hdfs读写流程(笔试题):

2)小文件(面试题):危害:

a.存储:影响namenode的存储,一个文件的元数据大约150字节

b.计算:默认情况会对每个文件单独切片,一个文件需要一个maptask

3) 小文件怎么处理:a.CombineTextInputFormat:可以把多个小文件放在一起统一切片

b.har归档:多个小文件打包成块

c.jvm重用:开启一个jvm进程之后一直处理小文件不关闭

4)副本数:3个

5)块大小:1.x:64m

2.x:128

本地模式:32m

企业中:128m,256m,512m (根据磁盘读写速度而定)

3、MR

shuffle:横跨map和reduce,混写的过程为shuffle

数据进来先getpartition进行分区,方便后续处理

然后进入环形缓冲区:100m,80%(可以提高为200m,90%)

出缓冲区之后对key进行<快速>排序,产生大量溢写文件

将数据按照分区不同进行归并,在内存中完成,然后将数据溢写到磁盘,map阶段结束

reduce阶段开始:拉取指定分区的数据,放入内存中,内存不够用放入磁盘,然后将数据进行归并排序(拉去过来的数据都是有序的,无序的数据使用快排),然后放入reduce方法中

优化:a.getpartition阶段自定义分区处理数据倾斜  b.环形缓冲区优化 c.溢写文件归并过程,调整溢写文件个数(默认10个),d.溢写文件预聚合,不能影响最终业务逻辑(不能求平均值)e.减少磁盘io,使用压缩,f.reduce拉取文件个数调整

4、yarn

1)yarn的工作机制:

client(客户端)

2)有哪些调度器:

默认调度器,FIFO调度器,容量调度器(资源不够可以借,优先保证先进来的任务),公平调度器(也可以借,按缺额分配资源)

3)实际生产中:如果要求并行度比较高(中大型公司):公平调度器

如果要求并行度比较低(中小公司):容量调度器

4)默认几个队列:

默认一个default队列,需要用户创建,按照框架分:hive,spark,flink

提交一个递归死循环/rm -rf / 6.18,11.11

因此企业中会按照部门进行创建队列,降级使用

四、zookeeper

1、选举机制:半数选举机制

2、安装多少台:奇数台

3、10服务器安装多少zk:3台

20服务器安装多少zk:5台

50服务器安装多少zk:7台

100服务器安装多少zk:11台

200服务器安装多少zk:11台

zk台数越多:好处:可靠性高,坏处:效率低

4、常用命令:ls,get,create,delete,delete all

***Paxos算法和ZAB协议(扩展)

zookeeper底层使用的就是ZAB协议

***什么是CAP法则,zookeeper符合这个法则的那两个(扩展)

一致性(C),可用性(A),分区容错性(P)

zookeeper满足CP,在zookeeper其中一个节点挂掉之后重新选举之间无法使用,因此不满足可用性

***zookeeper选举机制:a.第一次选举:第一个和第二个来个先给自己投票,都不满足超过半数,进入等待,第三台来了前两台加第三台共三票,选举成功为leader

b.leader挂掉之后的重新选举:SID:服务器ID,和myid一样,ZXID:事务ID,用来标识一次服务器状态的变更,Epoch:每个Leader任期的代号,先比较Epoch,然后比较事务ID,最后比较myID

五、Flume(三件事)

1、组成

1)taildir sourse:a:断点续传,多目录b:对应版本:Apache1.7,cdh1.6产生 c.可能产生重复数据:可以加一个事务(不推荐,影响效率),也可以在下游处理,hive-dwd,redis,spark,flink

2)channel

a.file channel :基于磁盘。可靠性高,效率低(和钱有关)

b.memory channel:基于内存,可靠性低,效率高(日志文件)

c.kafka chanel:基于磁盘,可靠性高,效率高(下游是kafka)

3)hdfs sink:小文件

先控制大小在128m,然后控制时间30分钟,event个数禁止掉(0)

2、三个器

1)拦截器:ETL拦截器:json不完整的数据过滤掉,时间戳拦截器:零点漂移问题,数据落盘按照时间落盘,数据处理过程有延迟 自定义拦截器步骤:定义类,实现interceptor接口,重写4个方法,单event,多event,初始化、关闭,静态内部类builder,打包上传,配置文件

2)选择器

a.re... 把数据发送下一级所有通道

b.mu...把数据选择性发往指定通道

3)监控器

g 监控put,take,事务 尝试提交的次数,如果尝试次数远远大于成功次数,说明flume异常,增加flume内存(flume-env.sh4-6g),增加flume台数

日志服务器的配置:8g,16g

3、挂了及优化

source和sink有事务机制,不会丢失数据

channel如果是memory channel,有丢失数据的风险

小文件相关优化

增加flume内存(flume-env.sh4-6g),增加flume台数

六、kafka(重点:hive,kafka,spark,flink ,ck)

1、组成:生产者,broker,消费者,zk

2、安装多少台:2*(生产者峰值生产速率*副本数/100)+1 =3台

3、压测:得到生产者峰值生产速率,生产者峰值消费速率

4、副本:生产环境一般两个副本

副本多的好处:可靠性高,坏处:占用存储空间,影响通信效率

5、传输速率:100万日活*100条日志=1亿条数据

1亿/(24小时*3600s)= 1150条/s

一条日志(0.5k-2k) ->1k    1m/s

小峰值:中午,大峰值,晚上,是平时的20倍:20-30m/s

6:选择服务器:硬盘(固态,机械):kafka底层是顺序读写,两者顺序读写速度几乎一样,600m/s,所以选择机械硬盘

7、网络带宽:20-30m/s:千兆带宽:125m/s

8、cpu选择:越多越好,20核40线程的服务器,单独部署

9、内存:启动脚本里面可以调整内存:默认1g,生产环境调整为10-15g

10、分区数:增加分区可以增加并行度,峰值生产速率:20m/s,消费速率:40m/s

期望达到:100m/s,分区数= 100/(min(20,40)) = 5个分区

企业中一般设置3-10个分区,**只能增加,不能减少**

11、kafka是否做了监控:kafka eagle (manager,montor)

12、分区器:如果制定了分区,发送到指定分区,没有指定分区,制定了key,按照key的hashcode值%分区数进行分区,既没有指定分区,也没有 指定key,按照粘性分区

13、生产者如何提高吞吐量:

32m缓存 ==》64m

16k批次大小 ==》 32k

linger.ms ==》 0 =》 5-100ms

压缩:snappy,zstd,gzip

14、如何保证数据不丢:

acks:-1+ 副本数大于等于2+isr里面最小副本数大于等于2

15、保证数据不重复:

幂等性(pid,分区,序列号)+事务

acks:-1+ 副本数大于等于2+isr里面最小副本数大于等于2

16、保证数据有序:单分区数据有序

17、会不会乱序:inflight默认=5,缓存5个元数据

如果没有幂等性,设置inflight =1,如果开启了幂等性,inflight<=5 ,乱序的元数据不会落盘

18、kafka底层怎么高效读写:

1)kafka本身是集群,并行度高,可以增加分区

2)index稀疏索引,4k数据做一个索引

3)顺序读写600m/s

4)零拷贝+页缓存技术(重点)

19、删除数据策略:

delete(常用),压缩(保存最新)

20、消费者:主动拉取数据

21、消费策略:range(每个topic消费策略相同)

roundin(大的轮询,每个topic消费策略不同,避免数据倾斜)

粘性:出现故障后保证原先分区不动

topic数较少:粘性+range

topic数较大:粘性+roundin

22、触发再平衡条件

消费者会每隔3s和消费者组协调器通讯一次,如果通讯时间超过45s,会认为消费者挂掉了,就会把他的任务分配给别的消费者,

另一点:消费者消费一批数据超过5分钟还没消费完,也会认为挂掉了,触发再平衡

23、可以指定消费者消费位置:seek

24、可以按照时间指定消费位置

25、如何提高整个kafka的吞吐量

生产者:

32m缓存 ==》64m

16k批次大小 ==》 32k

linger.ms ==》 0 =》 5-100ms

压缩:snappy,zstd,gzip

broker:增加分区 ,对应的要增加消费者cpu核数

消费者:增加每批次处理的数据量,默认500 =》 1000-5000

最大数据量 默认50m =》 60m

26、kafka topic设置多少个合适

满足下一级消费者所有需求,同时也要适当聚合

27、传输大于1m的日志,会出现什么情况(重点)

kafka会卡住

kafka处理单条日志的上限:1m

28、默认保存时间:7天。生产环境:3天

29、kafka挂了:

1)重启(内存,磁盘,网络带宽)

2)误删:采用服役流程,先退役,再服役

Hadoop+Kafka相关重点复习相关推荐

  1. Hadoop/Spark相关面试问题总结

    Hadoop/Spark相关面试问题总结 面试回来之后把当中比較重要的问题记了下来写了个总结: (答案在后面) 1.简答说一下hadoop的map-reduce编程模型 2.hadoop的TextIn ...

  2. Hadoop大数据技术复习资料

    Hadoop大数据技术复习资料 ​ 钟兴宇 1.选择题15空,共30分. Hadoop以HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统)和MapR ...

  3. 《计算机组成原理》期末习题讲解和重点复习内容

    文章目录 计算机组成原理重点复习内容 一.I/O部分 1.中断系统流程图与结构图 2.DMA系统的流程图与结构图 二.CPU的数据通路 1.基础知识部分 2.大题部分 三.Cache的映射问题 四.磁 ...

  4. c语言规定变量有三种属性分别是,C++面向对象程序设计重点复习资料

    <C++面向对象程序设计重点复习资料>由会员分享,可在线阅读,更多相关<C++面向对象程序设计重点复习资料(7页珍藏版)>请在人人文库网上搜索. 1.面向对象程序设计复习题一. ...

  5. 【计算机图形学】期末考试课后习题重点复习(第5-8章)

    文章目录 第五章 5.1名词解释: 5.12简述边缘填充算法, 图示其填充过程. 5.13简述栅栏填充算法, 图示其填充过程. 5.20多边形填充算法中如何进行内-外测试?图示奇-偶规则和非零环绕数规 ...

  6. Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据 输入是GBK文件, 输出也 ...

  7. Interview:算法岗位面试—10.11下午—上海某公司算法岗位(偏数据分析,证券金融行业)技术面试考点之sqlserver语言相关考察点复习

    Interview:算法岗位面试-10.11下午-上海某公司算法岗位(偏数据分析,证券金融行业)技术面试考点之sqlserver语言相关考察点复习 导读:其实,考察的知识点,博主都做过, 还包括sql ...

  8. 计算机应用基础期末考试电大,(电大)期末考试2017年广播电视大学网考《计算机应用基础》重点复习题目汇总版(理论题及操作题)...

    2017年度最新广播电视大学(电大)期末考试网考<计算机应用基础>重点复习题目整理汇总版(理论题及操作题) 1.一般认为,世界上第一台电子数字计算机诞生于1946年. 2.计算机当前已应用 ...

  9. 风险管理6个过程及相关重点

    概述 风险既有威胁也有机会. 风险管理规划:决定如何进行规划和实施项目风险管理活动. 风险识别:判断哪些风险会影响项目,并以书面形式记录其特点. 定性风险分析:对风险概率和影响进行评估和汇总,进行对风 ...

最新文章

  1. SpringMVC 静态资源CSS,JS访问不了 解决方法
  2. 判断一个路径串是否为有效目录
  3. 设计一个程序实现两个任意长的整数的求和运算_深入 Python (7) Karatsuba 实现长整数乘法...
  4. C#刷剑指Offer | 在O(1)时间删除链表节点
  5. 搭建MSSM框架(Maven+Spring+Spring MVC+MyBatis)
  6. C/C++——C风格的字符串的指针指向的内存位置问题(易错)
  7. 工程之道 | CPU推理性能提高数十倍,MegEngine计算图、MatMul优化解析
  8. 【转】C/C++的64位整型 不同编译器间的比较
  9. python 机器学习第一章
  10. python不相等的两个字符串的 if 条件判断为True
  11. HDU2191——悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
  12. MongoDB在本地安装与启动
  13. 如何在 Mac 上重置网络设置?
  14. 清空表与删除表mysql
  15. mybatis的javaType和ofType
  16. DBeaver执行SQL脚本文件
  17. FPGA图像处理基础----直方图均衡化
  18. js监听鼠标的滚轮滚动事件
  19. 小卡要民主(卡雷尔机器人)
  20. CC1310架构及工作原理

热门文章

  1. android隐私设置
  2. 麦当劳中国发布首个NFT创意作品“巨无霸魔方”
  3. 怎么调出全局搜索_以前需要找手机里的某个软件的时候欢太科技运营全局搜索功能强大...
  4. 【视频算法解析二】I3D
  5. email英文计算机求职信,计算机英文求职信范文
  6. 四川音乐学院计算机音乐创作,四川音乐学院本科录音艺术与计算机音乐_四川音乐学院本科录音艺术与计算机音乐简介-查字典学校网...
  7. 我的Redhat RHCSA/RHCE考试历程(心得)
  8. 猴子选大王问题(用最简单的思想)
  9. 测试矩阵是什么,小孩子都懂的,你该不会不知道吧
  10. clickonce msdn 部署