首页 > 技术,让世界更美好。 > 【知识管理】个人知识树【施工中】

【知识管理】个人知识树【施工中】

2018年3月7日
      • logic
        • 语言
          • java
            • Jvm
              • 加载机制
                • 类的生命周期
                  • 加载:加载二进制字节流
                  • 验证:对class的字节流进行文件格式、元数据(是否符合java语言规范)、字节码、符号引用验证
                  • 准备:为静态变量分配内存,初始化为默认值
                  • 解析:把类中的符号引用(类、接口、字段等)转换为直接引用(指针、偏移量、句柄)
                  • 初始化:为静态变量赋予正确的初始值,类初始化(主要初始化变量,通过声明和静态代码块初始类变量)
                  • 使用
                  • 卸载:执行System.exit()、正常结束、异常错误、jvm错误
                • 类加载器
                  • Bootstrap ClassLoader:启动(根)类加载器,加载JDK\jre\lib的类库
                  • Extension ClassLoader:扩展类加载器,加载JDK\jre\lib\ext的类库
                  • Application ClassLoader:应用程序加载器,加载classpath的类库
                  • 全盘负责:同时加载类和其引用
                  • 父类委托:先让父类加载目标类,无法加载才尝试亲自加载
                  • 缓存机制:先用缓存,没有目标类才读取二进制数据
                • 加载方式
                  • JVM初始化
                  • Class.forName():将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块;
                  • ClassLoader.loadClass():只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。
              • 内存管理
                • 内存结构(方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。)
                  • 堆内存(Heap):JVM管理的最大的一块内存,用于存放对象实例,由年轻代(young)和老年代(old)组成,由-XMX和-Xms控制
                  • 方法区(Method Area):类信息、常量、静态变量等,因为HotSpot把gc的范围扩展到方法区,又称为永久代(Tenured)
                  • 程序计数器(Program Counter Register):线程的执行的字节码的行号指示器
                  • JVM栈(JVM Stacks):方法执行创建栈帧,存储局部变量、操作栈、动态链接、方法出口等信息,方法执行对应栈帧入栈到出栈
                  • 本地方法栈(Native Method Stacks):和JVM栈功能相同,但只提供Native方法服务
                • 内存分配原则
                  • 对象优先在Eden区,如果空间不够触发Minor GC
                  • 大对象进入老年代,避免大量内存拷贝
                  • 长期存活的对象进入老年代(存活指经过的Minnor GC轮数超过阈值)
                  • 动态判断对象年龄,Survivor区相同年龄的对象大小超过一半,年龄大于这个年龄的进入老年代
                  • 如果Minor GC中survivor移动到老年代的对象大小超过老年代剩余值,则进行Full GC
                • GC
                  • 存活判断:引用计数为0的时候死亡,可达性分析中没有与引用链项链的死亡
                  • GC算法
                    • 标记-清除算法:先标记需要回收的,然后一次性回收
                    • 复制算法:把内存分两块,只用一块,满的时候把还存活的复制到另一块,然后清空
                    • 标记-整理算法:标记需要回收的,然后把剩下的对象往前移动,最后清除尾端之后的
                    • 分代搜集算法:把Java堆分成新生代和老年代,然后根据年代特点采用收集算法
                  • GC回收器
                    • Serial收集器
                      • 单线程稳定高效的串行收集器,
                      • 新生代复制算法、老年代标记-压缩;
                      • 垃圾回收的过程中会服务暂停
                      • -XX:+UseSerialGC
                    • ParNew收集器
                      • Serial的多线程版本
                      • 新生代并行,老年代串行;
                      • 新生代复制算法、老年代标记-压缩
                      • -XX:+UseParNewGC -XX:ParallelGCThreads [线程数]
                    • Parallel收集器
                      • 类似于ParNew,但是更关注吞吐量
                      • 新生代复制算法、老年代标记-压缩
                      • -XX:+UseParallelGC  使用Parallel收集器+ 老年代串行
                    • Parallel old收集器
                      • Parallel的老年代版本
                      • 使用多线程和“标记-整理”算法
                      •  -XX:+UseParallelOldGC 使用Parallel收集器+ 老年代并行
                    • CMS收集器
                      • 并发收集、低停顿
                      • 产生大量空间碎片、并发阶段会降低吞吐量
                      • “标记-清除”算法,运行在老年代中
                      • -XX:+UseConcMarkSweepGC  使用CMS收集器
                      • -XX:+ UseCMSCompactAtFullCollection Full GC后,进行一次碎片整理;整理过程是独占的,会引起停顿时间变长
                      • -XX:+CMSFullGCsBeforeCompaction  设置进行几次Full GC后,进行一次碎片整理
                      • -XX:ParallelCMSThreads  设定CMS的线程数量(一般情况约等于可用CPU数量)
                    • G1收集器
                      • 面向服务器的垃圾收集器,针对多颗处理器和大内存的机器,高吞吐量
                      • 标记-整理算法,可预测停顿
                  • 调优
            • 基本语法
            • 集合
              • Iterator
                • Map
                  • 键值对,键唯一
                  • HashMap(HashTable)
                    • 根据键的HashCode存储
                    • LinkedHashMap
                      • 保留插入顺序
                  • TreeMap
                    • 通过排序器实现升序降序
                • Collection
                  • Set
                    • 无序,不重复
                    • HashSet

 

    • TreeSet
      • 二叉排序树
    • List
      • 有序,可重复
      • ArrayList:顺序表
      • LinkedList:链表
    • 面向对象编程
    • scala
      • 函数式编程
      • 基本语法
    • python
      • 基本语法
    • 技术理论
      • 面向函数式编程(scala)
        • 尾递归
        • 柯里化
        • 模式匹配
        • 异常处理
          • Option
          • Either
      • 面向对象编程
      • 分布式理论
      • 数据结构
        • 排序
          • N*N
            • 冒泡:相邻两个比较,大的往后,每轮排出最大那个(稳定)
            • 选择:每次迭代把最大或最小的挑出来,放到有序序列中,(不稳定)
            • 插入:把数组分为有序和无序两部分,循环把无序的元素插入到有序中,(稳定)
          • nlgn
            • 快排:随机选着一个,其他大的放右边,小的左边,然后左右两个数组再循环(不稳定)
            • 归并:把数组对半分,然后对子数组再分,分到两个的时候排序,然后组合有序数组(稳定,外排)
            • 堆排:构造大顶堆,将栈顶元素与末尾元素交互,将最大元素沉到最后,反复执行以上步骤(不稳定)
        • 查找
          • 顺序查找
          • 有序表查找
            • 二分查找
            • 插值查找
            • 斐波那契查找
          • 二叉排序树
          • 多路查找
          • 散列查找
        • 线性结构
          • 链表
            • 单链表
            • 双链表
            • 循环链表
            • 先进后出
          • 队列
            • 先进先出
            • 元素是字符
          • 一维数组
        • 树形结构
          • 二叉树
            • 遍历
              • 深度遍历
              • 广度遍历
            • 种类
              • 二叉查找树
                • 左叶子小于父,父小于右叶子
                • 平衡二叉树
                  • 左右子树的高度差不超过1的二叉查找树
                  • 红黑树
                    • 自动平衡
              • 完全二叉树
                • 叶子只在最后两层,最后一层只允许右叶子缺失
              • 线索二叉树
              • 哈夫曼树
                • 带权路径最短的树,用于哈夫曼编码,左零右一
              • B树
        • 图形结构
      • 机器学习
      • 神经网络
    • 开源框架
      • hadoop
        • hdfs
          • 主从结构
          • 数据组织
          • 部署维护
          • 接口使用
          • 高可用
        • yarn
          • 运行原理、部署、维护、熟练使用
      • spark
        • Spark Core
          • RDD
            • Create
              • parallelize从集合创建
              • hadoop支持的源创建
            • Transformation
              • map、mapPartition、distinct、flatmap
              • repartition、randomSplit、glom
              • union、intersection、subtract、zip
              • partitionBy、mapValues、flatMapValues
              • combineBykey、flodByKey……
            • control
              • catch、persist
            • action
              • first、count、reduce、collect
              • take、top、aggregate、lookup、countByKey
              • foreach、sortBy
              • saveAsTextFile
            • 血统、DAG、检查点
            • 宽依赖、窄依赖
            • 分区计算、分区函数
          • Application
            • driver代码
            • executor代码
          • Driver
            • 创建和关闭SparkContext(等同)
            • 资源申请、任务分配、监控
          • Cluster Manager
            • standalone
            • Yarn
            • Mesos
            • Worker
            • Master
            • Executor
          • 作业执行原理
            • 术语
              • 作业(Job)
                • RDD的Action产生的一个或者多个调度阶段
              • 调度阶段(Stage)
                • 每个作业因为RDD之间的依赖关系由DAGscheduler拆分成多组任务集合,也叫TaskSet。
              • 任务(Task)
                • 分发到Executor上的任务,是执行应用的最小单元
              • DAGScheduler
                • 面向调度阶段的任务调度器,负责根据提交的作业和RDD依赖关系划分调度阶段,并提交到TaskScheduler
              • TaskScheduler
                • TaskScheduler是面向任务的调度器,负责把任务发送到Executor上执行
            • 执行顺序
              1. 应用程序进行各种transform操作,通过action出发作业运行,构建DAG图
              2. DAGScheduler根据DAG图拆分成stage,遇到宽依赖就划分为新的stage,每个stage成为一个TaskSet
              3. TaskSchduler根据TaskSet发送Task到Executor执行
              4. Executor执行任务
          • 调度算法
            • 应用之间
              • 根据运行平台决定
            • 作业和stage之间
              • FIFO、FAIR
            • task之间
              • 数据的计算尽可能再数据所在的节点上
          • 容错和HA
            • Executor异常
              • Master尝试使用其他Executor,失败超过阈值,则应用失败
            • Worker异常
              • 根据是否是Driver,是的话,根据配置是否重新启动来决定是否重启Driver。否则,同Executor异常
            • Master异常
              • 选举备份Master,恢复集群
          • 监控
          • 存储原理
        • Spark SQL
        • Spark Streaming
          • 熟练编码、阅读源码
        • Spark Mllib
          • 基础
            • 数据类型
            • 统计方法
            • 预言模型标记语言
          • 线性模型
            • 数学公式
            • 线性回归
            • 线性支持向量积
            • 逻辑回归
            • 线性最小二乘、lasso和岭回归
            • 流式线性回归
          • 决策树
          • 决策模型组合
            • 随机森林
            • 梯度提升决策树
          • 朴素贝叶斯
          • 聚类
            • K-means
            • 高斯混合
            • 快速迭代聚类
            • LDA
            • 二分K-means
            • 流式K-means
          • 降维
            • 奇异值分解
            • 主成分分析
          • 特征提取和变换
            • TF-IDF
            • 词向量
            • 标准化
            • 范数化
          • 频繁模式挖掘
            • 频繁模式增长
            • 关联规则挖掘
            • PrefixSpan
      • hive
      • Hbase
        • 数据模型
          • rowKey
          • 列族
          • 时间戳
          • 版本
          • 单元格
        • 体系结构
          • Client
          • Zookeeper
            • master选举
            • region入口
            • 监控region
            • hbase的schema和table元数据
          • Master
            • 为region server分配region
            • 负责region server均衡
            • 管理tables和数据安全
          • HLog
            • 操作的序列文件
          • Region
            • 表分为多个region
          • Memstore和storefile
            • 一个region又多个store组成,一个store对应一个列族
            • store包括memstore和storefile,内存满了写入文件
            • storefile多了会触发合并,大了会触发分割
        • 优化
          • 预分区
          • rowkey优化
          • 减少列族数量
          • 缓存策略
          • 数据生命周期
          • 批量写
          • 批量拉取
          • region大小设置
      • oozie
      • Kafka
        • Broker
        • Topic
        • Partition
        • Producer
        • Consumer
        • Consumer group
        • 高可用
      • Zookeeper
      • TensorFlow
        • Tensor(张量)
          • 名字、维度、类型
          • 零阶张量等于标量
        • Session(会话)
        • 前向传播算法
          • 深层神经网络
          • 激活函数
            • ReLU:max(x,0)
            • Sigmoid:1/(1+e^-x)
            • tanh:(1-e^(-2x))/(1+e^(-2x))
          • 偏置项
          • 损失函数
            • 交叉熵
            • Softmax作为最后一层
        • 反向传播
          • 算出损失函数对每个参数的梯度
          • 随机梯度下降、梯度下降
          • 学习率优化
            • 指数衰减法
          • 正则化
            • L1:参数变稀疏
            • L2:简洁
          • 滑动平均模型
        • 卷积神经网络
          • 输入层:图片的像素矩阵,三通道
          • 卷积层:卷积核
          • 池化层:压缩图片
          • 全连接层
          • Lenet5、v3
          • 迁移学习
          • 图像处理
            • 大小调整
            • 图像翻转
            • 色彩调整
            • 标注框
        • 循环神经网络
          • LTSM
        • dropout

 

 

 

 

本文的评论功能被关闭了.