面试技术总结

1、spark

       

下面对RDD的五个特性进行解释:

1、有一个分片列表。就是能被切分,和hadoop一样的,能够切分的数据才能并行计算。 
2、有一个函数计算每一个分片,这里指的是下面会提到的compute函数。 
3、对其他的RDD的依赖列表,依赖还具体分为宽依赖和窄依赖,但并不是所有的RDD都有依赖。 
4、可选:key-value型的RDD是根据哈希来分区的,类似于mapreduce当中的Paritioner接口,控制key分到哪个reduce。 
5、可选:每一个分片的优先计算位置(preferred locations),比如HDFS的block的所在位置应该是优先计算的位置。(存储的是一个表,可以将处理的分区“本地化”)


transformation

action

广播

cache

依赖,然后通过这些进行进行提交计算可以进行map,reduce、group by 、join、等等。


spark有一个driver程序 然后有很多种模式

比如standalone  yarn -client  yarn-cluster  local messos 等模式

通过client提交程序后 driver 初始化一个sparkcontext,然后通过集群提交任务给datanode,datanode上面启动excutoe,

然后excutor 在内部启动线程执行task  ,然后task将任务返回给driver程序,这样进行计算,任务的提交

有tasksceduler

   jobsceduler

spark 内部io机制  序列化,压缩,快管理

rpc通信采用的是scala的 akka通信

容错机制:血统 也就是依赖,还有检查点机制,checkpoint机制来进行的

还有shuffler机制,这个是一个shuffler writer  写到buckter ,然后还有一个什么,一个shuffler fetch ,来进行数据的拉取工作。


================================

spark概述

spark安装

spark计算模型

spark工作机制

spark开发环境配置和流程

spark的编程(wordcount , topk,中位数,倒排索引,countonce ,倾斜链接、股票趋势预测

benchmark的使用 没有用过

bdas   spark sql  spark streaming就是一个窗口,需要等待这个窗口的数据到其了然后进行计算,速度比strom慢,strom是一个数据就发tuple就发送出去了,spark graphx  spark mlib

spark 的性能调优: 增加内存,增加并行度,增加分区,序列化,压缩,等等。


================================

2、maprduce

   首先由hdfs的写入

  然后又hdfs得读写

   然后是mapreduce的过程

   然后是mapreduce的job运行过程

   然后是mapreduce的调度器

    然后是mapreduce的 一些二次排序,多目录输出、等等机制。

    然后就一些业务知识,

    然后是一些调度程序。


================================

3、kafka

      topic  cusumer  producer  broker 

      分区消费,分组消费

      同步生产,异步生产

      python  java  线程

      1、kafka初始 

       2、生产者和消费者的实例代码

     3、消息处理过程还有集群维护(通过zookeeper 维护分区消息,还有副本,然后通过affset进行消息的传送,有.index  .log两种文件

      3、集群维护,增加节点,有监控工具,一个是一个java 包,另外一个是一个web工程,然后呢?然后有topic的一些什么啊, 

         topic 新建,修改,删除,分区,leader选举

       4、代码解析,有什么代码啊 ,consumer的代码,还有producer的代码,没有意思

================================

4、python

    其实没有什么难的,跟java差不多的,都是一些java基础啊,然后就是多线程,锁,网络编程,io啊,爬虫啊,web啊啊,等等,所以我们有信心的能做好的,是的,恩恩


================================

5、我们的实时计算有一条线,我们的离线计算有一条线,我们的全文索引有一条线

     flume->kafka->strom/spark streaming->hbase->redis


    离线计算

     hdfs->mapreduce->hive->mysql

  

     hbase

     有一个hmaster  可以通过 zookeeper进行选举产生ha

      有很多的regionserver  里面包含很多region

      每个regionserver 有一个whl   hlog,进行容错的文件,然后就是storfile  分为 memstore  还有 stroefile

      hbase的文件写入

      hbase的文件读取

      先写缓存,然后积累到了一定的量,则写入region中

      region  有comparct  合并,还有split 

      hbase  有rowkey,还有conlomefimaly  里面有comlome  很多列,可以很宽的,然后呢,

      然后有什么?各种api

      get  put    scan   等各种操作,  delete 等等, 


================================

5、strom

      有spout  还有bolt  还有touplogy 拓扑结构,

       接受kafka的数据,然后进行流式计算,

      是通过的tuple 发送一个元祖的结果,进行发送

      然后呢,有很多发送的 有shuffle发送,分组发送,还有很多全局发送。等等。

      其实这么多框架,我们都是需要做实验的,不能这么只是知道,而没有去做啊,哎,真是蛋疼的人生,每次到了我们的需要的时候,发现我们缺少了很多东西啊,哎

      有nubase   nimbus,还有多台superwaser     supervisor 

      然后superwaser 里面有多个worker    ,worker里面有很多的excuter ,然后执行task

      分组策略:

    shuffle grouping随机分组  随机分发tuple给bolt的各种task,每个bolt 实例接受到的相同数量的tuple

    fields grouping 按照字段分组  根据指定的子弹的值进行分组, 比如一个数据量根据word字段进行分组,所有具有相同wod字段值的tuple会路由到同一个bolt的task中

  all  grouping 全复制分组,将所有的tuple复制后分发给所有的bolt task ,每个订阅数据量的task都会接受到tuple的拷贝

   grouble grouping  :全局分组 这种分组方式将所有的tuples路由到唯一一个task上, strom按照最小的taskid来选取接受数据的task

  注意,当使用全局分组是, 设置bolt的task并发度是没有意义的, 因为所有tuple都转发到一同一个task上了, 使用全局分组的时候需要注意,

   因为所有的tuple都转发到了一个jvm实例,可能引起jvm的服务器性能崩溃

   none grouping  不分组

    direct grouping 指定型分组


   有page  boot  event exception的 一些spout ,然后shuffler的 相应的bolt上面

   然后在把etl逻辑之后的数据 插入了phoenix里面,最后通过 phoenix的sql语句进行统计和分析

这样就能达到 实时统计的效果。



=====================

6、flume   

    source  文件

    channel    内存

    sink   hdfs

   数据采集,各种数据源,各种数据输出

=====================

6、hbase

  1、简介

  2、安装

3、crud 操作

      put get 删除   批量处理  行锁,  扫描   

  4、高级特性

     过滤器, 比较过滤器, 计数器,

协处理器

5、客户端管理功能 

     表, 表的操作,hbase admin  基本操作,表操作,模式操作,集群管理,集群状态管理

    6、可以使用的客户端, 

7、于mapreduce 继承

  8、架构

  b+树木

   lsm树

 存储   写路径, 文件, hfile格式 keyvalue格式

 wal   water ahead  log

   hlog   hlogkey  waledit  logsyncer  logroller

 读路径 

region查找

region生命周期

zookerper

行健设计:

集群监控

垃圾回收。

 

管理拆分还有合并

负载均衡,

合并region 

集群管理

  运维任务

   数据任务










 










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值