自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 多线程设计(linux c pthread_mutex_trylock和pthread_mutex_lock)

1.问题:理想情况下有两条线程,一条线程不断插入队列,一条线程不断取出队列,两条线程是并发执行的,但实验阶段的现象却是第一条线程全部插入队列后第二条线程才会开始取 (1)线程一: pthread_mutex_lock(&queue_mutex); insertSortedQueue(message); pthread_mutex_unlock(&queue_mutex);...

2018-09-13 14:01:05 3492 1

原创 大数据算法

前言 1.MapReduce计算框架流程 Mapper(映射器): 1)对数据进行分片,划分成多个Splits(每个Split按照块大小划分),每个Split都对应一个Mapper 2)Mapper对应的将Split中的数据进行映射成(key,value)Reducer(归约器) 对Mapper处理后的数据依次进行排序(默认按照字典排序),混洗,分组(Partitioner进行分区,...

2018-09-03 16:18:35 764

原创 深入浅出JVM

深入浅出JVM学习笔记 一.Java平台 大致分为编译时环境和运行时环境两部分 编译时环境:通过javac xxx.java命令启动java编译器,编译java源程序为xxx.class字节码 运行时环境:通过本地/网络传输xxx.class到java虚拟机,即jvm(这个过程是通过ClassLoader来完成的,ClassLoader会将xxx.class文件和Java API编译的yy...

2018-09-03 16:03:49 638

原创 MaximalRectangle

1.问题描述给定一个由'0'和'1'组成的2D空间,找到这个空间中只包含1的最大矩阵2.解题思路将此问题转换为求只包含'1'的左边界和右边界问题3.程序源码public int maximalRectangle(char[][] matrix) {            if(matrix==null || matrix.length

2017-12-20 10:42:24 409

原创 InterleavingString

1.问题描述给定字符串s1,s2,s3,判断由s1,s2是否可以构成s32.解题思路动态规划问题,由于返回值是boolean类型,因此假设有二维数组dp1)最优子问题描述:最优问题是s1,s2是否可构成s3,即0~s1.length-1和0~s2.length-1是否可构成i+js3最优子问题则可以理解为s1中0~i与s2中0~j是否可构成s32)递归表示最优子结构

2017-12-18 11:36:59 297

转载 Java设计模式简介

一.设计模式的六大原则:1.        开闭原则:即对扩展开放,对修改关闭,实现热插拔效果2.        里氏代换原则:是继承复用的基石,任何基类出现的地方都可以用衍生类替换,并增加新的功能3.        依赖倒转原则:依赖于抽象,面向接口编程4.        接口隔离原则:使用多个隔离的接库降低耦合性5.        迪米特法则:一个实体应尽量少的与其他实体发

2017-12-11 22:01:22 461

原创 ConvertSortedListToBinarySearchTree

1.问题描述根据给定的有序单链表,创建一个平衡二叉查找树(每个节点node的左子树node.left上的节点值都小于node.val,每个节点node的右子树node.right上的节点值都大于node.val)2.解题思路寻找head(开始节点),tail(结束节点)的中位节点,即采用fast指针和slow指针完成,其中fast指针遍历的速度是slow指针的两倍,这样每次遍历完slo

2017-12-11 16:51:58 298

原创 DistinctSubsequences

1.问题描述给定字符串S和T,求S中T的子串个数,T的子串为删除T的任意元素构成的新串2.解题思路DP问题,最优子结构dp[i][j]为S[0...i-1]中T[0...j-1]的子串数量若S.charAt(i-1)!=T.charAt(j-1)说明两个串的最后一个元素不相同,dp[i][j]=dp[i-1][j](S中T的子串数量与S的最后一个元素无关)若S.charAt(i

2017-12-11 14:07:36 272

原创 BestTimeToBuyAndSellStockIII

1.问题描述给定一个数组prices,其中prices[i]表示为第i天的股票价格,在保证最多两次交易的前提下且再次购买前必须先卖出,求最大收益2.解题思路1)由于最多两次交易,因此设置变量buy1,sell1,buy2,sell22)类似于四个数比较大小buy1=Math.max(buy1,-prices[i]) sell1=Math.max(sell1,buy1+pri

2017-12-09 21:47:47 296

原创 WordLadder

1.问题描述:给定一个开始单词,每次只允许经过一个字符的变化,且变化后的单词需要在给定的词典中(不可重复出现),最后变换到结束单词,在这个过程中一共需要变换的最少次数2.解题思路:1)每轮开始单词保存在beginSet集合中,每轮结束单词保存在endSet中,已访问过的单词保存在visitedSet中2)只要beginSet为空或者endSet为空,则不存在这种变换返回03)如

2017-12-09 16:22:26 296

转载 Apache Spark源码走读

ApacheSpark源码走读之3-Task运行期之函数调用关系分析一.Spark中间结果处理1.中间计算任务ShuffleMapTask执行完计算后会将计算状态封装为MapStatus并返回给DAGScheduler2.DAGScheduler将MapStatus保存到MapOutputTrackerMaster中3.ResultTask执行到ShuffleRDD(只要是shuf

2017-12-08 22:28:36 475

转载 Spark RDD源码剖析

1.    RDD是一个抽象类,需要实现两个抽象函数abstract class RDD[T: ClassTag](    @transientprivate var _sc: SparkContext,    @transientprivate var deps: Seq[Dependency[_]]  ) extendsSerializable with Logging {

2017-12-07 19:07:45 390

原创 SurroundedRegions

1.问题描述给定一个包含'X'和'O'的2D板,捕捉所有被'X'包围的区域。一个区域通过在所围绕的区域中将所有的'O'翻转成'X'来捕获。2.解题思路采用递归解决,若区域中某个位置的元素为'O'则对其元素转换为'*',则对其上下左右相邻元素进行处理3.程序源码public void DFS(char[][] board, int row, int col)    { 

2017-12-07 10:28:40 320

原创 HDFS概述

第6章HDFS概述6.1HDFS的主要特性1.HDFS的主要特征l  支持超大文件l  检测和快速应对硬件故障l  流式数据访问l  简化一致性模型(1次写多次读) 2.HDFS不适合的场景l  低延迟数据访问,可以考虑HBase或者Cassandral  大量小文件l  多用户写入文件、修改文件 3.HDFS体系结构(Master/Slave)

2017-12-07 10:14:09 416

原创 Spark快速大数据分析

第三章 RDD编程Driver(main函数):定义了RDD以及算子操作3.1 RDD基础transformation(转换)算子操作:RDD[A]->RDD[B]action(立即)算子操作:RDD[A]->result //立即提交job执行,并返回result的过程延迟执行:transformation算子操作不会立即执行,而是在需要的时候执行3.2基本RDD操作

2017-12-07 10:12:45 1692

原创 Spark机器学习

第二章 数据驱动的机器学习系统的组成1.    机器学习系统组成:数据收集->数据清洗与转换->模型训练->模型测试->模型部署与整合->模型监控与反馈(同时监控模型的准确度相关指标以及业务指标,模型反馈是指通过用户的行为来对模型的预测进行反馈)2.    数据预处理数据过滤(只需要部分原始数据或者满足条件的事件数据)处理数据丢失、不完整或者有缺陷(填充缺陷数据或者过滤)处

2017-12-07 10:11:23 4342

原创 深入浅出JVM

深入浅出JVM学习笔记一.Java平台 大致分为编译时环境和运行时环境两部分编译时环境:通过javac xxx.java命令启动java编译器,编译java源程序为xxx.class字节码运行时环境:通过本地/网络传输xxx.class到java虚拟机,即jvm(这个过程是通过ClassLoader来完成的,ClassLoader会将xxx.class文件和Java API编译

2017-12-07 10:07:40 384

原创 Scala基础语法

Scala学习教程1.Scala概述运行在JVM上的纯面向对象和函数式编程语言,能够兼容任何Java API,Kafka和Spark均由Scala编写 Scala特性:1)面向对象编程类的抽象机制包括子类继承,混入机制2)函数式编程函数可作为值使用,定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化,除此之外case模式匹配3)静态类型包括泛型类,协

2017-12-07 10:04:00 486

原创 Spark高级数据分析

第一章 大数据分析1.数据科学面临的挑战1)数据分析绝大部分工作是数据预处理包括清洗,处理,融合,挖掘以及其他操作,即使模型调优阶段,特征提取和选择上花费的时间比选择和实现算法时间更多2)迭代与数据科学紧密相关,比如模型优化时采用的随机梯度下降和最大似然估计,构建模型时需要选择正确特征,挑选合适算法,运行显著性测试,找到合适超参数3)构建完表现卓越的模型不等于大功告成,模型需要定期

2017-12-07 10:01:58 4019

原创 Spark知识体系

1.大数据的四大特征(4V):海量的数据规模,快速的数据流动和动态的数据体系,多样的数据类型,巨大的数据价值 2.RDD与DataFrame区别:RDD是一个抽象数据集,DataFrame则相当于一个二维表,带有schema元数据信息,更便于上层应用分析3.DataFrame和DataSet的区别:每个DataSet有一个被称为DataFrame的类型化视图,它只有在执行actio

2017-12-07 09:56:23 1041

转载 Spark RPC源码剖析

Spark RPC层是基于通信框架Netty开发的核心类:RpcEnv,RpcEndPoint,RpcEndPointRef比如Spark Master和Worker便是一个RpcEndPoint(通信端),只能通过RpcEnv获取与RpcEndPoint通信的对象RpcEndPointRef,Spark默认使用更高效的NettyRpcEnv客户端调用RpcEndPointRef发

2017-12-07 09:41:31 479

原创 MapReduce框架学习

1.贝叶斯分类器的MapReduce实现:训练样本可由三个MapReduce作业实现: 第一个作业( ExtractJob)抽取文档特征, 该作业只需要Map即可完成; 第二个作业( ClassPriorJob) 计算类别的先验概率, 即统计每个类别中文档的数目, 并计算类别概率; 第三个作业( ConditionalProbilityJob) 计算单词的条件概率, 即统计<label,

2017-12-06 14:21:46 846

原创 Hadoop Mahout学习

Mahout学习机器学习: 预测算法:平方损失函数代价函数: 分类算法:优化函数:梯度下降算法(斜率和步长)或者拟牛顿法损失函数-log(P(Y|X)) 求概率的事情代价函数 防止过拟合模型出现,避免震荡,增加推广能力,可采用L1范数和L2范数你如何构建训练集,你所训练的模型,就具备什么样的功能Python实现音乐分类器流程:(不是重点)

2017-12-06 14:19:00 389

原创 HDFS HA以及Federation,Zookeeper概述

HDFS HA策略(HighAvailability With QJM)每个NameNode启动时,由其ZKFC向Zookeeper注册(创建唯一的Znode);当某个NameNode崩溃后,其ZKFC向Zookeeper报告,由Zookeeper删除对应的Znode,然后通过Watch消息原子广播到其他的standby的ZKFC,standby之间开始选取新的active节点作为新的Name

2017-12-06 14:17:04 498

原创 HDFS机架感知策略,MapReduce的Shuffle过程

1.     HDFS机架放置策略(三副本如何放置)1)第一个副本放在上传文件的DataNode2)第二个副本放在不同机架上的任意节点3)第三副本放在与2)相同机架上的不同节点2.     MapReduce的Shuffle过程详解Map端Shuffle操作:1)  经过Map操作后,会得到多个key-value对,根据partition操作,由key-valu

2017-12-06 14:14:19 475

原创 Hive实战

1.     Hive基础解析器:把SQL映射成MapReduce作业ThriftServer通信工具,支持跨语言跨平台Hive工作原理:Hive作为SQL的解释器,编译器,优化器,用于数值分析Hive最小处理单元是操作符(作业)1)  Hive把SQL解释成多个操作符,形成抽象语法树2)  抽象语法树->查询块3)  查询块->逻辑查询计划

2017-12-06 14:10:09 388

原创 YARN框架解析

YARN框架Yarn是资源管理框架,其核心思想是把JobTracker的资源管理和作业调度分开,分别由ResourceManager和ApplicationMaster进程实现Yarn的4大核心组件分别为ResourceManager、NodeManager、ApplicationMaster和Container(1)     ResourceManager(RM):控制集群并管理

2017-12-06 14:08:00 496

原创 Pig实战

Pig基本数据结构     Pig Latin基本命令:1)  sh cmd:执行linux命令2)  grunt>records = load‘hdfs://localhost:9000/input/test’ as (value:int,age:int,apliy:chararray);加载HDFS中的源文件,并存储为records其中value,age,apliy均为

2017-12-06 14:06:53 321

原创 HBase实战

1.     HBase海量数据库(key-value)HBase逻辑视图行键+时间戳+列族=key字节码=value修改=新增;删除=标记(合并时删除)HBase的特点HBase相关术语:、 元素由行健+列族+时间戳唯一确定HLOG保存在HDFS中,因此自身具有一定的容错能力;一个RegionServer只有一个HLog

2017-12-06 14:05:38 3188

原创 Hadoop实战一

1.     三副本放置1)  第一个副本放在写入文件的DataNode上2)  第二个副本放在不同机架上的任意DataNode3)  第三个副本放在同一个NameNode管理的DataNode上(一个NameNode可管理4000个DataNode)2.     Block概述1)  默认是64MB2)  错误处理:l  每当DataNode读取Block时,会进行C

2017-12-06 14:03:04 801

原创 Hadoop基础

MapReduce的体系架构四个组建:Client:提交任务JobTraker:调度任务TaskTracker:map()和reduce() MapReduce的四个生命周期:提交作业1)  对作业进行配置2)  MapReduce程序3)  配置输入输出路径、输出是否压缩4)  配置完成后通过JobClient提交任务 作业调度策略包括:F

2017-12-06 14:00:52 282

原创 Scala基本语法

Java和Scala运行时都需要JRE,且Java和Scala都需要编译成字节码后才能在JVM上运行,实际工程中Scala一般会调用Java的API var :变量值可改变val :变量值不可改变 Object相当于java中的public static class修饰符(包含静态成员和方法),object不是对象,可以通过Object的apply方法控制对象的创建(单例模式,

2017-12-05 19:43:10 571

原创 Spark技术栈学习

1.Spark特点:Spark高效计算的原因是基于内存的计算(很快写,很快运行),高效DAG执行引擎,Spark比MapReduce快100倍,拥有Java,Scale,Python等API,且支持多种平台(Hadoop,Cloud,Mesos等),能够在一个应用中支持Spark Stream(流计算),Spark SQL(自查询),Spark Core(批处理),GraphX,MLLib等

2017-12-05 19:40:46 2517

原创 Storage模块详解

8.1 模块整体架构Storage模块采用Master/Slave架构,Master负责整个Application的Block元数据信息的管理和维护;Slave负责将Block的更新等状态上报到Master,Master和Slave之间通过AKKA消息传递机制通信,Master与Slave之间并没有心跳检测而是间接通过Driver与Executor之间的心跳检测而来Master的元数据信息

2017-12-05 19:34:24 1749

原创 Shuffle模块详解

Shuffle过程即把数据打乱后重新汇聚到不同节点的过程7.1 Hash Based Shuffle Write每个ShuffleMapTask根据key的哈希值计算出每个key需要写入的Partition,然后把数据单独写入一个文件,下游的ShuffleMapTask或者ResultTask便会读取此文件进行计算7.1.1 Basic Shuffle Write实现原理val m

2017-12-05 19:33:25 950

原创 Executor模块详解

Executor的功能:执行Task任务,并将计算结果传回给Driver(Task划分和调度) 6.1 Standalone模式的Executor分配详解SparkContext->TaskScheduler->SchedulerBackend->DAGScheduler->AppClient(注册Application)->Master(启动Executor)->Worker->Ex

2017-12-05 19:32:26 950

原创 Deploy模块

5.1 Spark运行模式Spark支持Standalone,Mesos,YARN,EC2,Local部署模式5.1.1 Local模式1)local使用单线程处理计算任务,不会重新计算失败的计算任务2)local[N]/local[*]前者使用N线程处理计算任务,后者工作线程数取决于CPU Cores,保证一个工作线程可以占有一个CPUCore,同样不会重新计算失败的任务

2017-12-05 19:29:53 544

原创 Scheduler模块详解

2.1整体架构:任务调度的两大模块:DAGScheduler(负责划分为不同阶段)和TaskScheduler(将不同阶段的TaskSet提交到集群中的Executor),Executor执行后的结果返回给Driver2.2Scheduler的实现:1)org.apache.spark.scheduler.DAGScheduler2)org.apache.spark.schedul

2017-12-05 19:27:42 4394

原创 RDD实现详解

1.RDD的三大特性自动容错:(基于Lineage血统,即会保存创建RDD的相关转换(算子操作))位置感知性调度:为了尽量满足数据本地性,Task调度会依次从以下位置查找是否有计算所需的数据:1)缓存,即待计算的数据RDD执行过cache()操作2)Checkpoint:即待计算的数据RDD是否执行过checkpoint()操作,数据检查点保存3)rdd.preferedLoc

2017-12-05 19:24:52 634

原创 PalindromePartitioningLi

1.问题描述:给定一个字符串s,进行最少的分割,使得每个分割的子串都是回文串2.解题思路:动态回归算法的最优问题是找到从0~n-1的最少分割1)最优子问题描述:找到从i~n-1的最少分割,用dp[i]表示2)递归表示最优子结构:dp[i]=min{dp[j+1]+1} i3)  自顶向下表示最优解即dp[0]for(int i=len-1;i>=0;i++){dp[

2017-12-05 16:18:08 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除