note2

news/2024/10/6 4:26:26/文章来源:https://www.cnblogs.com/siyenvwang/p/18288952

一、Linux
1、常用的高级命令
ps -ef top iotop netstat df -h free tar rpm
2、查看磁盘使用情况 查看内存 查看端口号
df -h top jmap -heap 进程号 netstat
二、Shell
1、常用工具
awk sed sort cut 知道对应名称 =》 python
关注尚硅谷教育公众号 回复 python 前端 java
区块链 安卓 运维 ui
大数据
2、手写过哪些脚本
1)分发
2)启动停止
#!/bin/bash

        case $1 in "start")for i in  hadoop102 hadoop103 hadoop104dossh $i "绝对路径"done;;"stop");;esac3)与mysql的导入导出  datax 4)数据层级内部 ods  => ads #!/bin/bash定义变量 (app= gmall)x获取时间 (如果输入时间,按照输入时间走;如果没有输入时间,T+1)sql ="具体逻辑   遇到时间换成$do_date  遇到表 库名.表   自定义函数 库名.自定义函数"执行sql
3、''  "" ''  不解析里面变量的值"" 解析里面变量的值嵌套:看谁在最外层。

三、Hadoop
1、入门
1)常用的端口号
2.x 50070 8088 19888 9000/8020
3.x 9870 8088 19888 9820/9000/8020

    2)常用配置2.x  core-site.xml  hdfs-site.xml  mapred-site.xml  yarn-site.xml slaves 3.x  core-site.xml  hdfs-site.xml  mapred-site.xml  yarn-site.xml workers 2、HDFS 1)HDFS读写流程  笔试题里面出现   有没有朋友2)小文件的危害(1)存储默认情况 一个文件块 不管多小都会占用NN  150字节左右。128m  一个文件块 =》  150字节1字节  =》  150字节小文件过多 浪费 NN的存储内存128g的内存 能存储多少文件块128g * 1024m * 1024k * 1024 字节 / 150字节 = 9.1亿 (2)计算默认情况的切分规则 ,每个文件单独切片。1字节 =》 1个maptask  => 1g内存128m => 1个maptask => 1g内存3)小文件怎么解决(1)har归档   本质减少 NN的存储压力(2)JVM重用(10次)开始   3s 干活    2s .......干活    2s 结束   3s (3)combineTextinputformat   解决计算问题将多个文件放到一起统一切片,减少了maptask的个数,进而减少了集群内存(10个小文件)4)默认副本数3个 5)块大小1.x         64m2.x 3.x     128m本地          32m   1.1 倍企业        128m   256m  512m 块大小取决于什么?磁盘的读写速度  普通的机械硬盘  100m/s 左右 =》 128m普通的固态硬盘   200-300m/s  => 256m高级的固态硬盘   500-600m/s =>  512m3、mr shffle  及其优化map方法之后,reduce方法之前 ,混洗的过程 叫shuffle 4、yarn1)yarn的工作机制2)调度器(1)FIFO 、容量、公平(2)FIFO特点支持单队列   任务执行顺序  先进先出   在企业中几乎不用(3)容量特点支持多队列  资源不够的时候可以借资源  执行任务的顺序,优先满足先进入任务的资源(4)公平特点支持多队列  资源不够的时候可以借资源    执行任务的顺序,每个任务公平享有队列资源按照缺额分配。(5)在生产环境中应该怎么选择如果对并发度要求比较高 ,选择公平   中大型公司 如果对并发度要求比较低,选择容量   中小型公司   我们的公司。(6)默认的队列有几个默认就一个default 按照框架引擎:hive  spark flink  mr  用的不多部门 =》 业务线 用户域  √流量域  x交易域  x互动域  x工具域  x一个队列  公司来了一个菜鸟  写了一个递归死循环   整个数仓全部瘫痪11.11  6.18  

四、zookeeper
1、选举机制 半数机制
2、安装什么数台 安装奇数台
3、经验值:
10台服务器安装多少zk 3台
20台服务器安装多少zk 5台
50台服务器安装多少zk 7台
100台服务器安装多少zk 11台
100台服务器安装多少zk 11台

    zk台数越多好处:可靠性高;  坏处  效率低
4、常用命令create  get   ls   delete  deleteall

五、flume (三件事)
1、组成
1)taildir source
(1)断点续传、多目录
(2)CDH1.6 apache 1.7 => 自定义source 实现断点续传
(3)重复:
自身想方法 自己采用事务
兄弟帮忙:下游处理 hive dwd spark flink redis 建议采用

    2)channel(1)file channel     磁盘   可靠性高   效率低 (2)memory  channel  内存   可靠性低   效率高(3)kafka channel    kafka (磁盘)  可靠性高  效率 高 kafka channel 》 memory  channel  + kafka sink apache 1.6版本产生的 当时没有火  1.7之后火了event(header ,body )在生产环境中怎么选择: 如果下游是kafka ,优先选择 kafka channel 如果下游不是kafka ,如果追求可靠性 选择flie channel   和钱相关的如果追求效率,选择memory channel  普通的日志3)hdfs sink小文件 :  控制大小  128m 控制时间 30分钟2、三个器1)拦截器ETL拦截器。判断json是否完整可以不要,下游解析就可以。时间戳拦截器:解决零点漂移问题。自定义拦截器步骤:定义类 实现interceptor  重写四个方法  初始化、关闭、单event、多event静态内部类 builder 打包 上传到flume/lib  在配置文件中 全类名$builder2)选择器replicating  默认   把数据发往下一级所有通道mul ...  把数据选择性发往指定通道3)监控器g   如果发现 尝试提交的次数 远远的大于最终 成功的次数。  说明发生了回滚。增加flume内存flume-env.sh      4-6g   默认内存非常小找兄弟帮忙增加flume台数  日志服务器配置  8g  16g   32g 3、挂了 及其优化挂了:如果是memory channel 有可能丢失数据  100个event优化:1)hdfs sink小文件 :  控制大小  128m 控制时间 30分钟2)增加flume内存flume-env.sh      4-6g   默认内存非常小找兄弟帮忙增加flume台数  

六、Hive(10件事)
1、组成

2、与mysql 等关系数据库的区别mysql          hive 
数据量     小              大 
速度      小   增删改查    大   查询
除了语法接近以外,其他都不一样3、内部表和外部表区别元数据   原始数据删除内部表:元数据   原始数据删除外部表:元数据   在企业中 绝大多数情况创建外部表;只有自己使用的临时表,会创建内部表。4、4个byorder by   全局排序  容易OOMsort  by   排序d  by    分区     sort  by  + d  by  => 分区内有序c by    用的比较少5、系统函数date_add  date_sub  next_day  dateformat lastdayget_json_object split   substring explode   concat   concat_ws  collect_list collect_set map   array   string 6、自定义函数1)UDF   一进一出  map  定义类  继承G..UDF   重写里面核心方法  evaluate2)UDTF   一进多出  flatmap定义类  继承G..UDTF  重写里面三个方法  初始化(校验返回值类型及名称)  关闭  process (核心逻辑)3)UDAF   多进一出  sum打包  上传到 HDFS路径 在hive客户端注册  如果自定义函数在脚本中出现,需要在自定义函数前面加上库名7、窗口函数over ()rank手写代码  =》 http://139.198.163.91:8083/#/list8、优化1)mapjoin默认打开不用关闭  大小表join 2)提前进行行列过滤 (谓词下推)join  where  =>  where  join 3)创建分区表,防止后续全表扫描创建分桶表,不是必须的。   是在 对海量未知的数据,提前采样,主要用来防止数据倾斜4)小文件处理(1)Combinehiveinputformat   => combinetextinputformat  将多个文件放到一起统一切片,减少了maptask的个数,进而减少了集群内存(2)JVM重用 =》 mr中 jvm重用 道理一致  本周减少JVM开关的时间(3)merge 如果maponly 任务默认打开,如果是mr任务需要手动打开。单独开启一个mr,将小于16m的文件合并到256m  5)采用压缩map (压缩 快  snappy)   reduce   减少磁盘IO6)列式存储id   name  age 1    zs    182    lishi  19行:1    zs    18  2    lishi  19列:1  2   zs  lishi   18  19select  name from user 7)可以提前进行 combiner  at,1  at,1  => at,28)合理的设置map个数和reduce个数 128m  数据 =》  1g内存    1CU   1CPU =》 4G内存map个数  =  切片个数   切片 =max (0, min(块大小,long的最大值))reduce个数   直接设置 9)更换引擎mr  => spark 9、数据倾斜1)groupby   (1)map-side  开启  相当于在map阶段提前预聚合(2)开启 skewindata  在reduce阶段自动帮你 底层二次聚合(先加随机数 之后 将随机数去掉 再聚合)2)join  (1)如果是 大表 和小表join  =>mapjoin  (2)大表  大表 => skewjoin =true   默认 10万个相同key进入一个reduce (3)大表  大表 =》 SMBjoin  要求两张表必须是 分桶 且有序的表(4)大表  大表 =》 不是分桶表   左表随机  右表扩容累积型快照事实表10、杂七杂八

七、Kafka 33件事
1、组成 生产者 broker 消费者 zk 4张图
2、分区器分配策略:
1)如果指定了分区,那就把数据发送到指定的分区
2)如果没有指定分区,指定了key,按照key的hashcode值%分区数
3)如果没有指定分区,也没有指定key ,按照粘性分区处理
底层采用的是随机
3、acks 应答
1)0 生产者发送过来的数据,不需要应答,一直发送。在生产环境中几乎不用
2)1 生产者发送过来的数据 ,Leader收到后,进行应答
3)-1 生产者发送过来的数据,Leader和isr里面所有的Follower都收到后,应答。

4、isr follower和Leader如果在规定的时间30s 能够正常通信一次,该follower就会加到isr里面超过30s,该follower会进入到osr 5、如何保证数据可靠        acks = -1  + isr里面最小副本数 》=2  + 副本数大于等于2isr (Leader   follower) 有退化为acks=16、如何提高吞吐量1)32m缓存 =》 64m 2)批次大小默认16k => 32k 3)linger.ms  默认是0ms =>  5-100ms4)采用压缩  snappy   zstd
7、如何保证数据有序单分区内有序我希望 将mysql中某张表 发送到指定分区  key=表名
8、乱序问题inflightrequest = 1 幂等性 + inflightrequest 《=5 9、重复数据处理幂等性  +  事务幂等性(《pid,分区号,序列号》)pid每次kafka重启后都会重新分配pid,  那也就是一旦kafka重启后,就不能保证数据不重复了幂等性只能保证  单会话内数据不重复。事务 (事务开启的前提是幂等性开启)  5个api 初始化事务、启动事务  、提交事务、事务终止、offset相关10、Leader选举规则在isr里面活着,按照ar的顺序进行分配11、Kafka底层怎么存储数据的1)segment 1g .log  .index (稀疏索引  每4kb数据记录一条索引) .time ...12、删除策略数据默认保存时间 7天1)delete 超期删除(segment中所有数据全部过期 删除)2)压缩  key v1 v2 v3  .... =>  key v1 13、kafka如何做到高效读写的1)kafka本身是集群   同时支持分区2)采用稀疏索引   每4kb数据记录一条索引3)底层采用顺序读写  能达到  600m/s  4)零拷贝和页缓存14、消费策略7个分区 3个消费者1)range针对某一个topic   如果topic数比较多 容易产生数据倾斜2)roundbin针对所有的topic 采用轮询的方式, 能够减少数据倾斜3)粘性 (协作者粘性)在企业中  range + 粘性roundbin + 粘性在触发再平衡后,粘性策略可以保证 不改变原来的消费分区。 性能要好一些15、再平衡条件1)如果消费者 和消费者组协调器 通信时间超过 45s  会触发再平衡2)如果消费者 消费谋批数据的时间超过了  5分钟,会触发再平衡
16、每批次最大拉取的数据量 50m处理数据,一次最大处理500条
17、Kafka里面数据积压了怎么办1)增加分区数  同时要求消费者 增加 对应的CPU核数2)增加消费者  50m => 60m 每批次处理的条数   500条  =》 1000 -3000条
18、如何提高Kafka吞吐量1)32m缓存 =》 64m 2)批次大小默认16k => 32k 3)linger.ms  默认是0ms =>  5-100ms4)采用压缩  snappy   zstd1)增加分区数  同时要求消费者 增加 对应的CPU核数2)增加消费者  50m => 60m 每批次处理的条数   500条  =》 1000 -3000条19、kafka消费数据时从头消费  --from-beginnging从当前最新位置消费  默认 我想从任意位置消费seek(offset 50)
20、可以按照时间进行消费可以将时间转换为offset    再调用 seek(offset 50)21、安装多少台2 * (生产者峰值生产速率  * 副本 / 100)  + 1  =  3台22、压测:生产者峰值生产速率、消费者峰值消费速率  
23、副本:默认副本 1个  =》  生产环境中 2-3 个   2个居多副本多 好处: 可靠性高   坏处:存储资源增加了  降到传输效率
24、速率 100万日活  每人每天产生  100条左右日志100万日活 * 100条 = 1亿条1亿条 / (24小时  *  3600s) = 1150条/s  1条日志多大   0.5k -2k  1k 1m/s    峰值速率    20m -30m/s 中午小高峰   7-12点
26、Kafka 默认保存 7天 =》  3天       1天 -》  3年27、Kafka是否做了监控 kafka eagle   manager  montor 28、kafka挂了怎么办?1)重启  zk 是否启动2)查看日志  磁盘不够(df -h )  查看内存 (jmap -heap )查看端口号(netstat )  查看CPU(top)3)如果是某个节点误删 了可以重写服役29、硬盘选择选择机械硬盘  底层是顺序读写 可以 600m/s '30、内存选择kafka 默认内存 1g  =》 10g -15glinux系统要留一部分内存 (页缓存)
31、网络带宽20m -30m/s 100m带宽  =》 12.5m/s 需要买千兆带宽
32、CPU核数选择建议 购买 32核 及以上的服务器
33、分区设置多少期望吞吐量  100m/s  t生产者峰值生产速率  20m/s tp消费者峰值消费速率  40m/s tc分区数 = t / min(tp, tc) = 100/ 20 = 5个分区企业中通常 3-10个分区
34、设置topic 进可能满足所有消费者    也要用适当的聚合操作35、自动创建主题36、Kafka单条日志传输大小 传输超过1m大小的日志  会卡住调整三个值大小 大于1m   2-10m 

八、maxwell
同步数据:
实时同步 : maxwell canal flink cdc ogg d...
批量同步 : datax sqoop
mysql =》 hdfs / kafka

1、为什么选择 maxwell 1)支持断点续传2、 为什么不选择flink cdc flink cdc 1.0  有bug   锁表  =》 2.0以上解决了这个问题  2022年初 才升级完毕。3、maxwell 底层原理mysql 的主从复制   模拟的从表

九、datax
批量同步 : datax sqoop
1、为什么选择datax 阿里开源的一个版本
datax 底层: 一个进程 多个线程 单节点
datax处理的数据量 相对来说要小一些

    sqoop底层:4个map   分布式框架 sqoop 处理的数据量,相对来说要大一些sqoop  在apache中已经不在维护了。咱们属于中小公司,数据量不是很大 业务数据每天1-2g 2、在使用datax过程中遇到哪些问题  怎么解决的空值问题mysql              hdfs/hive null                \N   datax :改源码让hive建表时候处理sqoop: 直接配置参数hive             mysql \N                  null datax :配置参数sqoop:配置参数3、datax怎么调优的增加内存   增加线程数4、datax每天同步多少数据业务数据:100万日活   =》 10万人下单(50-100元)   10万  *  10-20条日志 * 1k  = 1-2g  加购、下单、支付、物流、每天同步时间:业务数据:00:10    同步   10-20分钟就结束了。

十、ds 海豚调度器
目前非常火(中国人参与的多一些) 当前最新版本 3.x (数据质量监控) 咱们上课用的 2.x

1、什么实时执行业务数据:00:10分  开始执行用户行为数据:00:30分 开始执行2、调度器里面的指标挂了怎么办?集成故障报警:邮件、钉钉、微信、电话    睿象云(第三方报警平台)起床  =》  打开电脑 =》 远程连接公司服务器  =》  看一下任务  以及挂的日志=》 手动重写执行该任务  =》  是否有小文件、是否有数据倾斜。=》 如果短时间内不好解决,可以把该任务停止掉。 =》 第二天解决
3、调度器 自身挂了 重启 查看日志:检查磁盘、CPU、内存、。。。4、调度器里面每天执行多少任务平时 不搞活动 100个左右如果搞活动  150-200之间 元旦、春节、元宵节、情人节(365天)、3.8、清明节、端午节、中秋节、5.1 6.1  7.1  8.1 10.1 1024  11.11  6.18   12.12   星期四   星期五  周末 

十一、spark
1、入门
1)spark是解决什么问题的? 海量数据的 计算问题
hadoop是解决海量数据的存储和计算

    2)spark为什么有自己的调度器  yarn  产生的比spark晚 3)spark的运行模式(1)local        本地调试  测试(2)standalone   在国内用的少  一般对效率要求比较高的场景(3)yarn         国内大量使用(4)m            不会 (5)k8s          是趋势  只不过目前bug非常多,不建议使用。4)常用端口号(1)4040  spark shell(2)7077   内部通信端口 8020/9000/9820(3)8080  8088任务调度(4)18080  19888 历史服务器5)手写spark wordcount   =》 flink wordcount 2、sparkcore 1)代码是在哪运行的  D     E (和算子紧密相关的)2)rdd五大属性 一般在笔试题中出现(1)标记数据是哪个分区的(2)对数据计算  (3)分区器(4)血缘依赖(5)移动数据不如移动计算3)转换算子(1)单valuemapmappmappwflatmap filter c            true   执行shuffle   false  不执行shffle   缩减分区repartition  true 执行shuffle  重新分区(2)双value交并差   zip  拉链(3)key value partitionby groupbykey      没有预聚合reducebykey     有预聚合reducebykey     没有初始值  分区内和分区间逻辑相同foldbykey       有初始值  分区内和分区间逻辑相同agg..bykey      有初始值  分区内和分区间逻辑可以不相同combinebykey    有初始值(可以变换结构)  分区内和分区间逻辑可以不相同sortbykey mapvalues 4)行动算子take first collect foreach foreachp5)序列化KRYO6)血缘依赖有shuffle  宽依赖没有shuffle  窄依赖7)cache     不改变血缘     数据存储在内存 或者  磁盘中checkpoint  改变血缘   数据存储在 第三方数据库cache  + checkpoint 8)任务怎么切分的(1)app  spark context (2)job   行动算子个数(3)stage   宽依赖个数 + 1 (4)task   每个阶段 最后一个算子对应的分区数9)广播变量10)累加器3、sparkSQL1)rdd  df   ds  2)               元数据     计算引擎   语法hive on  spark   mysql        rdd        hivespark on hive   mysql       df  ds     spark      内置hive         derby  外置hive          mysql4、sparkstreaming(1)SparkStreaming是纯流式处理框架吗? 他的抽象是谁?(2)背压机制原理(3)Receiver和Direct模式原理(4)kafka的offset维护在什么位置( 0.10)__consumeroffset(5)transform算子里面的代码都在什么端执行(6)UpdateStateByKey状态保存在什么位置?  有什么缺点(7)window有三个概念  用wordcount案例画图说明5、内核 6、优化hive on spark  数据倾斜:1)group by (1)map-side (2)skewindate2)join (1)大小表  join  => mapjoin (2)大表大表  skewjoin (3)smbjoin (有条件:分桶有序表)(4)左表随机  右表扩容 (5)建模上 采用累积快照事实表小文件:1)combinehiveinputformat 2)merge  谓词下推CBO

十二、从0到1
现在我是项目经理 兼 产品经理 不懂大数据

招聘你来 负责大数据相关任务。你给我出一套详细的解决方案。出计划的周期 3天。1、具体需求统计日活、新增、留存 等需求   2、数据 业务数据mysql用户行为数据  文件 日志服务器 3、目前就你1个 你可以招聘
4、预算  50万元5、前期离线 兼顾实时6、平时每天  100g左右数据7、项目周期   1个月(3个月 -6个月)  建模(2周的数据调研  搭建  2-3天  =》  2-3天写sql =>  其他预留时间)8、数据保存多久  3年苟富贵勿相忘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739966.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

按指定日期重复

问题:根据D1指定的日期将A2:C8区域进行重复公式1(姓名)右拉下拉完成 =INDEX(A:A,MOD(ROW(A1)+COUNTA(A:A)-2,COUNTA(A:A)-1)+2) 公式2(日期)下拉完成 =SUBSTITUTE(LEFT(D$1,FIND("-",D$1)-1),".","/")+(ROW(A1)-1)/(COUNTA(A:A)-1) 公式3(…

语法2-运算符、包机制、JavaDoc

语法 运算符 运算符具有优先级-网上查(一般使用括号保证)/-除,%-取余符号-21/10二十一除十取余数,幂运算使用工具类表示Math.pow(2,3)-2的3次方 ++自加,--自减 int a =3 ; int b =a++;//输出a=4,b=3 int b =++a;//输出a=4,b=4==-等于,!=-instanceof-不等于逻辑运算符-与或…

厦门福州七日游

厦门福州七日游2024-06-30 上午被发短信告知航班延误两个半小时。 晚上八点多九点才到了厦门,湘妹 yhp yzf 已经在酒店了。厦门机场不通地铁?????于是打了个车去地铁站。 酒店就在中山路步行街上,有各种店铺。点了一份外卖,和大伙打了一会三国杀,输了几局 2024-07-01 …

SumIf的问题

问题:进销存表数据等于同货号入库表中数据 函数公式解决:=SUMIF(入库!A:A,B3,入库!C:C)

7/8死神永生服周报第七期

1. 死神永生新闻 2. 死神永生服TNT军事基地[三] 3. 死神永生服的古代建筑之自然选择号目录死神永生新闻 死神永生服TNT军事基地[三] 死神永生服的古代建筑之自然选择号这几天又没上死神永生,主要是期末比较繁忙,因此又停了一期。。真的很抱歉。死神永生新闻前一周的治理新闻时…

两个全开源的3D模型素材下载网站源码 3D图纸模型素材 三维图形素材会员下载站源码

今天推荐两个全开源的3D模型素材下载网站源码 3D图纸模型素材 三维图形素材会员下载站源码,这两个源码完整,都是基于thinkphp内核开发的,框架稳定,带数据库,源码文件,可以直接部署使用。第一个:3D模型 图纸模型 机械模型(图纸)下载资源网站源码 thinkphp5开发原创模型(图…

win 10 使用SSH 连接

本教程建议使用win 10 、win 11 非家庭版使用 首先安装 ssh 服务端 Get-Service -Name *ssh* #查看服务ssh -V #查看ssh 版本 netstat -an |findstr :22 # 查看端口是否被监听 ipconfig # 查看本机IP ssh administrator@IP 在用户/.ssh 目录下创建文件 authorized_keys 将…

音视频录制与播放原理

图片来源于网上学习资料,零声学院!

2.基于Containerd运行时搭建Kubernetes多控制平面集群实践-腾讯云开发者社区-腾讯云

https://cloud.tencent.com/developer/article/21298462.基于Containerd运行时搭建Kubernetes多控制平面集群实践发布于 2022-09-29 19:27:531K0 举报文章被收录于专栏:全栈工程师修炼之路[TOC]0x00 前言简述 本章主要讲述,如果使用kubeadm进行安装配置K8S集群,并指定使用co…

【寻迹】二分与三分

二分与三分 二分是一种常用且非常精妙的算法。(英才计划甚至还水了一篇文章)三分法则可以用来解决单峰函数的极值以及相关问题 一、二分 二分法,在一个单调有序的集合或函数中查找一个解,每次均分为左右两部分,判断解在哪一个部分后调整上下界。每次二分都会舍弃一半区间,…

xftp实现linux服务器传输文件

1.xftp下载网址:https://www.xshell.com/zh/free-for-home-school/,下载后下一步安装即可 2.ip addr show查看ip地址,配置xftp连接服务器,找到对应路径传输文件 以上仅供参考,如有疑问,留言联系

markdowm语法Typora练习草稿

目录这是一级标题 这是一级标题 【Typora 教程】手把手教你如何用Typora撰写笔记_哔哩哔哩_bilibili 这是第一行 这是第二行 这是一个段落 这是一个段落这是粗体 这是斜体 这是删除线 这是下划线 这是高亮 格式里面有快捷键 1*2*3*4*5 x2 H2O一级分类二级分类三级分类tab 键 升…