大数据重点

一、Linux


    1、常用高级命令列出5个
        ps -ef  top  df -h  io top  xargs  tail  uptime  netstat
        cd  ls   mkdir
    2、查看磁盘使用情况、查看进程、查看端口号
        df -h    top ps     netstat

二、Shell


    1、常用工具  (只需要知道名称)
        awk、sed 、cut   sort  京东 遍历文件夹,读取文件,读取哪行 截取相应内容
    2、用shell写过哪些脚本
        1)集群启动 分发脚本
            #!/bin/bash
            
            case $1 in
            "start"){
                for i in hadoop102 hadoop103 hadoop104
                do
                    ssh $i ""
                done
            };;
            "stop"){
            
            };;
            esac       
        2)数仓与mysql的导入导出
            sqoop  --连接mysql hadoop102:3306  root  password
                   --hdfs 路径  路径存在要删除
                   --quary "select id ,name from 表  创建时间、操作时间"  and 命令
                    全量:where 1 =1 增量 :创建时间  
                    新增和变化:创建时间 or 操作时间
                    -- 空值处理
                    --一致性
                 
        3)数仓层级内部的导入  ods ->dwd  5步骤
        #!/bin/bash
        
        #2定义变量
        hive=/opt/module/hive/bin/hive
        APP=gmall
        
        #3获取时间
        if [ -n "$1" ]; then
            do_date=$1
        else
            do_date=`date -d "-1 day" +%F`
        fi
        
        #4 sql
        sql="
            先写1天 2020-03-10
            遇到表,在表前面加上 {$APP}.表名
            遇到时间,把时间替换 $do_date
        "
        
        # 5 执行sql
        $hive -e "$sql"


三、hadoop


    1、入门
        1)常用端口
            hadoop2.x  50070 8088    19888  9000
        2)安装hadoop过程中的配置文件
            hadoop2.x 8个
            core-site.xml hdfs-site.xml  yarn-site.xml mapred-site.xml
            hadoop-env.sh yarn-env.sh  mapred-env.sh  
            slaves(服务器节点、不能有空行、不能有空格)
    2、HDFS    
        1)HDFS的读写流程 笔试题  (有没有朋友) 每组有自己的小群,都是好哥们=》
            哥们也不会=》班长、我、其他老师
            10亿条join 10条  怎么优化
        2)小文件问题
            (1)会影响什么
                nn内存=》1个文件块,占用namenode多大内存150字节
                    1亿个小文件*150字节 = 
                    1 个文件块 * 150字节
                128G能存储多少文件块?
                128 * 1024*1024*1024byte/150字节 = 9亿
                
                分片=》maptask
                    默认1个文件一个切片

            (2)怎么解决
                采用har归档方式,将小文件归档 + 自定义Inputformat把数据放入sequence
                采用combineFileInputforamt
                JVM 重用 ,如果没有小文件,不要开启JVM
                开始
                    执行任务 3s

                    执行任务 1s
                结束
    3、MapReduce    
        shuffle及其优化
        shulle   map方法之后,reduce方法之前,混洗的过程
    
        default=>site.xml=》idea的配置文件=》代码
        wordcount
        
    4、YARN    
        1)工作机制 笔试题

        2)调度器
            FIFO 容量、 公平
            默认调度器是哪个:Apache是容量、CDH是公平
            (1)FIFO:支持单队列 、先进先出   生产环境不会用
            (2)容量调度:支持多队列,优先保证先进入的任务资源执行 
            (3)公平调度器:支持多队列,保证每个任务公平享有队列资源
            (4)在生产环境下怎么选择?
                大厂:如果对并发度要求比较高,选择公平,要求服务器性能必须OK;
                中小公司,集群服务器资源不太充裕选择容量。
            (5)容量调度器默认几个队列
                就1个default
            (6)在生产环境会怎么创建队列?
                按照框架:hive /spark/ flink 每个框架的任务放入指定的队列(企业用的不是特别多)
                按照业务模块:登录注册、购物车、下单、业务部门1、业务部门2、
                因为怕新员工进来,写递归死循环代码,把所有资源全部耗尽。
                rm -rf /*   5个  上个月 rm -rf /*  廊坊  5s =》已经转正
                新浪  dwd层  话说话费劲  站不起来  =》成功转正
                
                任务的级别  降级使用
                业务部门1
                    业务部门2
                        下单
                            购物车
                                登录注册
                


四、Zookeeper


    1、半数机制,安装奇数台

    2、常用命令 
        ls get  create

    3、paxos算法  今日头条
    
    4、安装台数
        10台服务器安装多少zk   3台  
        20台服务器安装多少zk   5台
        50台服务器安装多少zk   7台
        100台服务器安装多少zk   11台
        Zookeeper越多好还是越少好?
        台数多,好处:提高可靠性;坏处:影响通信延时


五、flume 三件事


    1、组成source channel sink 事务(put/take)
        1)taildir source 
            (1)断点续传、多目录
            (2)哪个flume版本产生的?Apache1.7  cdh1.6
            (3)没有断点续传功能时怎么做的?
                自定义
            (4)taildir挂了怎么办?
                不会丢数:断点续传
                重复数据:
            (5)怎么处理重复数据?
                不处理:生产环境通常不处理
                
                处理
                    自身:在taildirsource里面增加自定义事务
                    找兄弟:下一级处理(hive dwd sparkstreaming flink布隆)
                        去重手段(groupby、开窗取窗口第一条、redis)
            (6)taildir source 是否支持递归遍历文件夹读取文件?
                不支持。  自定义  递归遍历文件夹 +读取文件
        2)file channel /memory channel/kafka channel  
            (1)file channel 
                数据存储于磁盘,优势:可靠性高;劣势:传输速度低
                默认容量:100万event
                
            (2)memory channel
                数据存储于内存,优势:传输速度快;劣势:可靠性差
                默认容量:100个event
                
            (3)kafka channel
                数据存储于Kafka,基于磁盘;
                优势:可靠性高;
                传输速度快 kafka channel》memory channel+kafka sink  原因省去了sink阶段
            (4)kafka channel哪个版本产生的?
                flume1.6 版本产生=》并没有火;因为有bug
                topic-start 数据内容
                topic-event 数据内容    ture  和false 很遗憾,都不起作用。
                增加了额外清洗的工作量。
                flume1.7解决了这个问题,开始火了。
            (5)生产环境如何选择
                如果下一级是kafka,优先选择kafka channel
                如果是金融、对钱要求准确的公司,选择file channel 
                如果就是普通的日志,通常可以选择memory channel
                每天丢几百万数据   pb级   亿万富翁,掉1块钱会捡?
        3)HDFS sink    
            (1)时间(1小时-2小时) or 大小128m、event个数(0禁止)
    
    2、三个器(拦截器、选择器、监控器)
        1)拦截器 
            (1)ETL  
                数据清洗:轻度清洗{} =》保证传输效率
                服务器时间:13位 必须全部是数字
            (2)分类型
                start 启动
                event 
                (商品列表、商品详情、点击、
                  广告
                  点赞、评论、收藏
                  故障
                  后台活跃、通知
                )
                一个表一个topic,一定能满足下一级所有消费者;
                可以做适当的轻度聚合
            (3)自定义拦截器的步骤
                定义一类,实现interceptor接口,重写里面4个方法
                (初始化、关闭、单event、多event,创建一个静态内部类Builder)
                打包=》上传到flume的lib包下=》在配置文件中管理拦截器   
            (4)拦截器可以不用吗?
                可以器可以不用;需要在下一级hive的dwd层和sparksteaming里面处理
                优势:只处理一次,轻度处理,     
                劣势:影响性能,不适合做实时推荐这种对实时要求比较高的场景
        2)选择器
            rep(默认,发往下一级所有通道)  
            m(选择性发往对应通道)
            ReplicatingChannelSelector 
            MultiPlexingChannelSelector
            本次项目用m,根据flume头发往对应的topic
            start-topic  event-topic
        3)监控器
            g
            尝试提交的次数远远大于最终成功的次数。
            自身:增加内存flume-env.sh   4-6g
            找朋友:增加服务器台数
            
            搞活动 618  =》增加服务器=》用完在退出
            日志服务器配置:8-16g内存、磁盘8T 
            
   3、优化
        1)file channel 可以配置多目录(多磁盘)提高吞吐量
        2)HDFS sink   小文件 
            (1)时间(1小时-2小时) or 大小128m、event个数(0禁止) 
        3)监控器
            调整内存
                自身  提高自己内存
                找朋友  增加flume台数
        4)flume挂了怎么办?


六、Kafka 24件


    1、基本信息


        1)组成   (四块)  生产者 blocker consumer zookeeper(存储blocker,consumer信息等不存储blocker信息)
        2)需要安装多少台?
            2 *(生产者峰值生产速率 * 副本 /100) + 1 = 3台
            2 * (n*2 /100)+1 = 3   n=50 m/s

            2 * n + 1   一般3太就够了
            
        3)副本2-3个,2个居多 
            副本的优势:提高可靠性; 
            副本劣势:增加了网络IO传输


        4)生产者峰值生产速率  ? 压测 必须进行  100亿数据什么时候能   迭代过程  和台数 迭代压测
            百兆/s 消费速率  百兆/s 


        5)监控器用的什么?
            kafkamanager managermonitor   egale  都是开源
            我们都是自己研发的。  仰视大佬    (如果面试官说 我们都是自己研发的)


        6)Kafka数据保存多久
            默认保存7天;生产环境建议3天  (底气在于日志服务器默认保存30天,不怕丢失 flume当天要消费完前一天的数据 所以3天就够了)


        7)数据量 
            条/s   m/s
            日活 100万(用户数)  1人1天100条(中间值) 一天多少条日志=100万*100条=1亿 
            1亿/(24*3600s) = 1150条/s
            1条日志1k (0.5k-2k)
            1m/s
            什么时间点数量最大,能达到多少?
            晚上7-10点  =》  20m/s -30m/s   不要超过50m/s
            100g


        8)给Kafka磁盘预留多大空间
            100g * 2个副本* 3天 /0.7  zabbix

            留30%的空间  一般来说


        9)设置多少个分区
            3-10个
            (1)设置1个分区
            (2)压测:生产者峰值生产速率tp ,消费者峰值消费峰值速率tc
            (3)有个预期的吞吐量t
            (4)分区数=t /min(tp,tc)
            tp = 20m/s  tc=50m/s  t =100m/s
            分区数=100 /20  =5个
            分区数影响了并发度


        10)isr  解决leader挂了谁当老大;谁在isr队列,就有机会;
            旧版:延迟时间、延迟条数;  新版:延迟时间 


        11)分区分配策略
            range(默认)  
                10个线程  3个分区
                1  2  3  4
                5 6 7
                8 9 10
                容易产生数据倾斜
            roundRobin
                hash 随机打散,再采用轮询,尽量减少数据倾斜。
        
    2、挂了
        短时间数据进入到flume channel 
        长时间有日志服务器30天数据
    
    
    3、丢失数据
        ack 
        0   发送过去就不管了 ,      可靠性最差  传输效率最高
        1   发送过去,leader应答;  可靠性一般   传输效率一般
        -1  发送过去leader和follower,共同应答;可靠性最高;传输效率最低
        
        在生产环境怎么选?
        0是没人选的。
        如果是普通日志,通常选择1  最求效率
        如果是金融和钱相关的,通常选择-1  上海

    4、重复数据
        1)不处理
        2)处理
            幂等性+事务+  ack=-1
            下一级处理
                hive dwd  sparkstreaming  (groupby、开窗取窗口第一条、redis)
            精确一次消费
            
    
    5、数据积压了
        自身  :增加分区  消费者也要增加消费线程(sparkstreaming CPU核数)
                5个分区   CPU核数5 个
                128m      1g内存  
        找兄弟: 提高下一级消费者的消费能力  batchsize(1000/s =》2000-3000)
    
    
    6、优化
        num.network.threads=3  计算线程  线程数=CPU核数+1  =9 
        num.io.threads=8    IO线程        线程数=CPU核数*2 = 16
        CPU核数为8 
        压缩:优势:减少磁盘空间、提高网络传输效率;  劣势: 频繁计算场景,就不要采用
        kafka内存调整到4-6g,不要超过6g。6g还不行,增加kafka台数
    
    7、其他
        1) 为什么kafka传输效率快?
            分布式集群、采用分区
            顺序读写 600m/s   随机读写 100m/s
            0拷贝技术、压缩
        2)如果传输的日志文件2m,会有什么问题?
            kafka不能生产、也不能消费
        3)Kafka过期数据清理
 
七、Hive
    1、组成
        mr /tez  /spark/
        
        mr引擎:基于磁盘,计算时间比较长,但是能算出结果(周指标、月指标、年指标)
            
        tez引擎:基于内存,计算速度快,如果宕机,数据直接丢(临时调试,容易OOM)
        spark引擎:基于磁盘和内存(每天的定时任务)
    
    2、与mysql区别/hbase
                        hive        mysql
       数据量大小      大             小
       速度           数据量大/快  数据量小/快
                    查询          增删查改
    
    
    3、内部表和外部表区别
        元数据、原始数据
        删除数据时:
            内部表:元数据、原始数据 全删除
            外部表:元数据 只删除
        在公司生产环境下,什么时候创建内部表,什么时候创建外部表?
            在公司中绝大多数场景都是外部表。
            自己使用的临时表,才会创建内部表;

    4、4个by
        o   全局排序
        s   排序
        d   分区 
        c   排序和分区字段相同时使用
        在生产环境order by用的多吗?  京东 oom  40-50t内存
        s+d  在生产环境用的最多。分区内排序
        c 比较少
 
    5、函数:
        1)系统函数
            日 date_add  date_sub
            周 next_day
            月 date_format last_day
            解析json get_json_object
        2)自定义函数
            UDF/UDTF(hive)、UDAF(spark)
            在项目中用UDF解析公共字段
            在项目中使用UDTF解析的是事件字段
            如果项目中不用自定义UDF、UDTF能解析吗?
                可以用系统函数get_json_object
            用系统函数能解决,为什么还要自定义?
                自定义函数更灵活,方便调试bug
            自定义UDF步骤?
                定义类,继承UDF,重新里面evaluate方法
            自定义UDTF步骤
                定义类,继承G...UDTF ,重写3个方法 初始化、process、关闭
            打包=》上传到集群=》在hive里面创建永久函数   
            
        3)窗口函数
            rank
            over
            手写topn
    6、优化
        1)mapjoin默认打开,不要关闭;
        2)行列过滤   join  where =>where  join  
        3)创建分区表; 分桶(对数据不太清楚 ,采样)
        4)小文件 
            CombineHiveInputformart 减少切片,进而减少Maptask
            开启JVM重用 
            merge maponly任务,默认功能打开
            MapReduce任务,需要打开merge功能。
            执行完任务之后,会将小于16m的文件,合并到256m(hive的块大小)
        5)合理设置map个数和reduce个数;
            map个数怎么设置?  切片  max(0,min(块大小,Long的最大值))
            
            128m数据对应1g内存
            
        6)压缩 好处:减少磁盘空间,减少网络传输;  坏处:增加了解压缩计算
        7)采用列式存储orc、parquet   提高查询效率;提高压缩的比例 100g=>10g  5-6g
            id  name   age
            1    zs    18
            2    lisi   19
            3    wangwu  20
        行    1    zs    18   2    lisi   19   3    wangwu  20
        select age from user   随机读写
        列  1  2 3  zs  lisi wangwu  18 19 20
        select age from user   顺序读写:18 19 20
        8)在map端开启combiner
        
    
    7、数据倾斜
    
        静态分区
        insert overwrite table1 partition(dt="2020-03-10")
        select 
        
            age,
            name
        from user 
        
        // 动态分区
        insert overwrite table1 partition(dt)
        select 
        
            age,
            name,
            dt
        from user
 
    8、hql练习
 
八、sqoop
    1、遇到过哪些问题?怎么解决的
        1)空值问题  2个  2个
            hive        mysql
            \N          null
        2)数据一致性问题
            hive   =》       mysql导出
                   4个map
                   2个成功、2个失败
            gmv 1亿        1万   跳楼
                1万        1亿   疯了
            原则:数据可以没有,但是不能错(决策)
            --staging
        3)ads层是parquet/orc =》mysql    
            不能成功;
            推荐:ads层就不要建列式存储的表
            ads parquet/orc=》临时表textfile=》mysql
            ads parquet/orc +加参数 =》mysql
        4)sqoop每天向HDFS导入多少数据?
            100万日活、业务数据
            普通的日常消费品电商:10万   
            每人每天多少条  10条
            10万  * 10条 = 1g数据量
            
            1g
        5)面试官公司,数据量比较大,发生了数据倾斜?怎么办?
            
九、数据项目架构
    1、质疑项目
    2、数据仓库的输入数据源和输出系统分别是什么?
        输入:用户行为数据、业务数据、爬虫(灰色地带)
        输出:报表  (用户画像、推荐)
            高数、线性代数、概率(考过研究生 )
    3、 版本选型
        Apache:开源、免费、 需要自己解决兼容性问题;大厂和比较有实力的公司
        hadoop3.1.3 spark2.4.5 hive3.1.0  2天  尚大
        
        CDH :不开源,不能编译源码; 收费(7.0以后)  
        5.12.1  5.16   6.2.0  6.3.0 =》CDH市场上最多;大家也知道要收费;
        java程序员,
        
        HDP:可以重新编译源码;已经被CDH 收购了
        
        CDP:(7.0以后)  10000美金  6万   100台  
        
        建议公司,赶紧备用一套Apache;  只有你会。再也不敢开除你;
        
    4、物理机、云主机    
        (1)一共4万   用5年
        (2)云主机,以阿里云为例,差不多相同配置,每年5W
     
        (1)物理机:需要有专业的运维人员(1万*13)、电费(商业用户)、安装空调
        (2)云主机:很多运维工作都由阿里云已经完成,运维相对较轻松
      
        生产环境怎么选择?
        
        金融公司(着急),和阿里没有直接冲突的公司,一般选择阿里云;
        小公司,需要融资上市的,先用阿里云搭建一个效果;
        如果能拉到融资,后续会买物理机;如果拉不到,那就凉凉;
        中型上市公司、传统行业的公司;资金比较充足;有长期打算的。运维技术实力比较强  选择物理机

    5、三年的数据都会保存吗?
        生产环境有的公司
        1)保留半年
        2)保留1年
        3)保留2年
        4)保留3年
        非保留的数据,不是删除;
        不是删除,只是永久备份;
        公司稍微有点钱的话,保留数据。他会把数据备份。
    6、用户行为数据中,哪张表的数量最多,是多少?
        商品列表、商品详情、点击、广告、点赞、评论、收藏、故障、启动、通知、后台活跃
        100g  =>点击?
        平均值:100g/11 = 10g
        点击表的数量是平均值的2-3倍
    
    7、业务数据中,哪张表的数据量最多,是多少?
        订单、用户、支付、订单详情、商品表、三级分类、二级分类、一级分类
        30张
        平均值:1g/30张=34m
        订单详情:100m 
        
    
    
        
    刚毕业去哪种公司比较好?
    小型公司;
    中型公司;
    大型公司;
    大厂公司;
    
    互联网公司、传统公司
    
    能进大厂肯定要进;只会一项技术;(sql/实时) =》1-2年=》再出来还得跳大厂
    中小公司,从0-1的比较多  把系统搭建完就可以了。 什么时候搭建完,什么时候走
    
    不要被温水煮青蛙
    
    外包分两种:
        一种,把活接到外包公司,政府项目,追求的是快,不重视质量。内部有成熟的解决方案;比较累。
        另一种,外包到大厂;驻场;  平安、华为、阿里、腾讯  建议去。 长见识。
        
    去一个比较优秀的团队;最好有大厂出来的,技术水平比较高。团队氛围比较好。
    
    技术到位、钱到位;人是否顺眼
    

十、数仓项目
    1、ods
        1)保持数据原貌不做任何修改
        2)数据压缩;LZO。减少磁盘空间;100g=>10g
        3)分区表,防止后续的全表扫描
            用户行为: string line  dt
            ods_start 启动;
            ods_event(商品列表、商品详情、点击、
            广告、
            点赞、评论、收藏
            故障
             后台活跃、通知
            )
            
            业务数据:8张表(订单表、用户、支付、订单详情、商品表、三级分类、二级分类、一级分类)
    2、dwd
        1)ETL :核心字段有意义,去重、去null
        2)ETL的工具是什么?hive hql 、spark sql 、mr、Python、kettle
        3)清洗掉多少算正常?1/万 
        4)维度退化
            商品表、三级分类、二级分类、一级分类=》商品表
            省份+地区=>省份
            维度建模:星型模型(选择)、雪花模型、星座
                        减少重复join操作
        5)脱敏:身份证号、手机号、个人信息 135*****0013
        6)压缩:优势:减少磁盘空间
        7)列式存储,parquet,提高查询效率; 
        8)分区表
            用户行为
            ods_start;  =》get_json_object
            ods_event; =>UDF /UDF/UDTF=>get_json_object
            业务数据:8张表(订单表、用户、支付、订单详情、商品表)
  
    3、dws
        用户行为宽表、商品宽表、设备行为宽表
        1)哪张宽表最宽?
            用户行为宽表
        2)这个宽表有多少个字段?
            60-100个
        3)哪100个字段?
            一口气说出30个字段就行
            今天登陆次数;点赞次数、评论次数、收藏次数、取消点赞次数、
            加入购物车次数、下单次数、取消下单次数、取消收藏次数、追加评论次数、
            支付次数、支付金额、下单金额、取消订单的商品数据、取消订单的商品金额、
            发货次数、退款次数、退款的金额;
        4)留转G复活
               日活:100万 
               月活:是日活的2-3倍  300万
               总注册的用户多少?1000万-3000万之前
               
            GMV:每天 10万订单 (50 - 100) 500万-1000万
                10%-20%  100万-200万(人员:程序员)
            
            复购率 某日常商品复购;(手纸、面膜、牙膏)10%-20%
                电脑、显示器、手表  1%
            转化率:  商品详情  =》  加购物车  =》下单   =》  支付
                             5%-10%          60-70%     90%-95%  
            留存率: 1/2/3、周留存、月留存
                搞活动:  10-20%
    4、ads 100-200个指标
        分析指标;
        一口气30个指标;
        日活、新增、留存、转化率、流失、回流、连续三周活跃、
        7天内连续三天登录;GMV、复购率;复购率排行;
        要求可以现场手写;
 
    新增
    新增和变化
    全量 
    新增:--quary "select * from  表  where createtime=今天" and 命令
    新增和变化:--quary "select * from  表  where createtime=今天 or operatetime =今天" and 命令
    全量:--quary "select * from  表  where 1=1" and 命令
 
    作为架构师的技术选型
    clickhouse:可以支持多表
    druid:支持实时、和批处理;处理速度快;但是只支持单表;为啥快? 
        行:按照时间预聚合,列:采用列式存储,查询速度快
    kylin:预计算:结果算好,写入hbase;
    presto:基于内存;速度很快;容易出现OOM  支持的数据源比较多
    impala:基于内存;速度很快;容易出现OOM  支持的数据相对少     性能比presto更优秀一些。
            在生产环境:如果是CDH框架选择impala ;如果Apache选择presto
    spark:基于和内存和磁盘;主要跑每天的定时任务;
    es : 主要用于存储和查询;一般用在没有大数据集群场景;  一般用于存储用户画像标签
    标签:喜欢晚上工作、喜欢晚上买手纸、喜欢晚上运动、
    
 
 50m/s  60s   3000m/s *30  = 90g  100g  40分钟  120g
 
 azkaban
    1)每天里面跑多少指标?
        100-200个离线指标
        普通没有活动时,100个 
        搞活动:200个 
        元旦、春节、情人节、3.8  、端午节、清明节、6.18、中秋节、国庆节
        劳动节、54青年节、植树节、11。11 12.12  1024
        周末
        新产品上线、新市场的开拓
    2)任务挂了怎么办?
        00:30 发个邮件(普通)、打电话(重要)
        打开电脑,vpn远程连接公司电脑,重新执行该任务
        yarn(任务队列分等级:新产品、新市场、6.18重要活动) (购物车、日活)
        
    3)数据仓库每天跑多少张表,大概什么时候运行,运行多久?   
        70-100    00:30   6-7小时    8点
    
            用户行为            业务数仓
    ods     6张                  27张表    
        
    dwd    11张                  20          


    dws    6            
    
    
    dwt    6
    
    
    ads     20
    
    age   1-150   边界值  1   150  -1  151
                  等价类: 50   100

    瀑布式开发 V字形开发1年-3年
    需求                                              需求测试
        总体设计                                系统集成测试
            软件概要设计                  软件集成测试
                软件详细设计          单元测试
                    代码        代码走查
 
    敏捷式开发  小步快跑
    需求 10
    代码
    测试    
    需求 10
    代码
    测试
    需求 10
    代码
    测试
 
 
    实时数仓
    实时项目
    flink项目
    数据湖
    ranger  azkaban打电话
    数量质量
 
 
    在线教育:  卖课
    电商:日用品、卖书、卖医疗设备
    小说:卖小小说
    医疗:卖医疗设备、卖的医生咨询服务
    旅游:卖车票、旅游路线、房间预订
    
    
    
    15  20  学历、年龄、java开发
    30k 拼多多 
 
 
 
 
 
 
 
回顾:
一、Linux:
    常用高级命令5个 :查看端口号、查看进程、查看磁盘使用情况 
二、Shell
    1、shell工具
        awk /sed sort cut 
    2、写过哪些脚本
        1)启动停止
        2)数仓与mysql的导入导出
        3)数仓层级内部的导入
三、hadoop
    1、入门
        1)常用端口号
        2)8个安装配置文件
        3)1.x和2.x区别
    2、HDFS
        1)HDFS读写流程
        2)小文件
        3)有多少个副本
        4)块大小多大

    3、mapreduce
        1)Shuffle 及其优化、压缩 

    4、yarn
        1)yarn工作机制
        2)调度器 
    
四、Zookeeper
    1、选举机制
    2、常用命令
    3、安装多少台
五、flume  三件事
    1、Flume的组成
        1)taildir source
            为什么选他?
            哪个版本产生的?
            没产生这个source之前,怎么实现的断点续传?
            挂了怎么办?
            数据重复了怎么办?
            是否支持递归遍历文件夹读取文件?
        2)channel 
            几种channel?各自的优缺点?什么场景下使用
        
        3)hdfs sink
            有什么问题?怎么解决
        4)事务 put  take 
            
    2、三个器(拦截器、选择器、监控器)
        1)拦截器 
            ETL 做什么事? 为什么这样做?
            分类型
            分了几类?为什么这么分?
            自定义拦截器步骤?
            拦截器是否可以取消?  好处和坏处
        2)选择器  有几种  项目中用的那种
        3)监控器  监控了什么?出现性能问题怎么处理?
    3、优化 
        1)file channel 
        2)hdfs sink
        3)3)监控器
        4)flume挂了怎么办?
六、Kafka
    1、基本信息
        1)组成  p  b   c  zk
        2)安装多少台 2(生产者峰值生产速率*副本/100) +1 = 3
        3)压测
        4)副本  好处和坏处
        5)保存多少
        6)数据量?100万    1150条/s  1m/s
        7)分区数 总吞吐量/min(tp,tc)  3-10
        8)分区分配策略
        9)isr
        10)多少个topic
        11)是否做监控器
    2、挂了
    
    3、丢失数据
    
    4、重复数据

    5、数据积压了
   
    6、优化
        副本、保存时间
        压缩 
        kafka内存默认1g   生产环境调整到4-6g

    7、其他 
        为什么读写效率比较高
         1m  
        
        
        


 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值