- 博客(20)
- 问答 (1)
- 收藏
- 关注
原创 设计模式六大原则
设计模式六大原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则单一职责原则1.一个接口如果有两种类型的方法,一种是属性getset,一种是业务逻辑(行为)如process,run这种,要把这个接口拆成两个接口,再统一由一个接口实现2.对于接口一定要做到职责单一,类如果强制实行单一职责会导致类太多,但接口可以implement多个,所以不嫌多,而且职责单一维护也容易3.方...
2019-03-07 00:13:51 283 1
原创 airflow安装过程各种报错解决办法
在mac(10.14.3 ) +python3.6.5上安装airflow(注意不要用3.7,airflow initdb时会引入tenacity的包(from tenacity.async import AsyncRetrying)async在python3.7版本被加入了关键字,导致airflow无法在python3.7运行,https://github.com/jd/tenacity/iss...
2019-03-06 11:05:18 3640
原创 java使用链表实现栈(先进后出)
public class LinkStack <Item> implements Iterable<Item>{ private Node first;//栈顶 private int N;//元素数量 private Node temp;//遍历对象 public boolean isEmpty(){ return N==...
2018-04-10 16:46:28 1459
原创 java利用动态数组实现栈(先进后出)
public class ResizingArrayStack<Item> implements Iterable<Item>{ private Item[] a=(Item[]) new Object[1]; private int N=0; public boolean isEmpty(){return N==0;} public int...
2018-04-10 16:45:17 1914
原创 动态规划python实现
什么叫动态规划问题?考虑一个场景:当你有去沙漠旅行,你有一个背包和一些物品,背包有最大承受重量,物品也有重量和价值,而物品种类很多,不可能全都装在背包里,如何去选取价值总量最高的物品组合呢?物品价值表物品名价值water10book3food9jacket5camera6物品重量表物品名重量water3kgbook1kgfood2kgjacket2kgcamera1kg考虑使用贪婪算法,那就是什么...
2018-03-27 16:25:27 25243 4
原创 图,最短路径算法(广度优先搜索算法,狄克斯特拉算法)
(代码使用python3.6)1.广度优先搜索算法用途:求得通过节点最少的路径问题:找出名字以m结尾的人,并求出you到这个人的最短路径数据代码实现:from collections import deque#无权最短路径算法:广度优先搜索算法,求得通过点最少的路径graph={}graph["you"]=["alice","bob","claire"]graph["bob"]=["an.
2018-03-26 21:46:29 2045
原创 jackson对json转化技巧
好多框架都使用jackson工具进行json转化,现介绍一些使用技巧,本篇使用的jackson版本是2.4.2涉及到的jar包:cglib-nodep-2.2.jar,jackson-annotations-2.4.2.jar,jackson-core-2.4.2.jar,jackson-databind-2.4.2.jar本文以数据服务的角度针对后台ElasticSearch和客户需求的场景进行...
2018-03-23 15:40:33 1874
原创 二分查找算法原理与实现
应用场景:已知有序的数字型集合,给定一个数字,返回在集合中的位置时间:O(logN)算法流程图:注意要在递归的过程中记录集合的前后指针,以下是代码实现(基于python3):#_*_ coding:utf-8 _*_#二分查找 O(logN)def binary_search(list,target): #定义指针 low=0 high=len(list)-1 ...
2018-03-12 18:00:46 1835
原创 快速排序算法
快速排序原理与实现:data=[1,5,45,78,65,98,11,67,32,97,120,64]首先选定一个基线作为判断标准,最简单的就是取list[0],但这会影响效率,后面再说优化base=data[0]然后定义两个list,分别存储当前list中小于基线和大于基线的数据 small=[] #定义小于基线的集合 big=[] #定义大于基线的集合写个for循环把数据装进去 ...
2018-03-12 17:41:59 196 1
原创 感知机算法
感知机算法是一个比较基础的算法,应用于神经网络和支持向量机算法中,感知机默认数据是线性可分的,主要解决二分类问题公式: f(x)=sign(w∙x+b)f(x)=sign(w\bullet x+b) 其中x表示样本的特征向量,w和b为感知机模型参数(w也叫权值,b也叫偏置),f(x)是模型的预测结果,因为是分类问题,所以结果是[+1,-1] ,sign是符号函数(当x≥0时f(x)=
2017-11-07 00:00:48 670
原创 SparkGraphX加权最短路径算法实现
版本:spark 1.6 该版本自带的最短路径算法shortestPaths没办法自定义权重(默认每条边的权重都一样),不符合现实生活,比如在地图中计算两个位置的最短路线,要考虑线路的长度,线路的拥堵情况等多方面,所以写了个加权最短路径算法加入距离属性算法说明: 加权最短路径算法计算所有的顶点到特定点的距离: 1.初始化开始顶点的距离为0,所有其他节点距离设置为无穷大 2. 将当前顶点设为初
2016-10-14 13:57:02 3439 2
原创 MapReduce计数器计数
MapReduce框架自身就有计数机制跟中输入记录的数量,并且所有的计数器信息都存在JobTracker的内存中,在每个map任务中计数器被序列化,并通过状态更新同步到JobTracker,也就是说各节点的计数器结果会在JobTracker进行汇总适用场景:大数据集收集指定字符的出现次数运行环境:windows下VM虚拟机,centos系统,hadoop2.2.0,三节点 ,java 1.7 例子:
2015-11-13 10:34:14 641
原创 MapReduce-输入数据整块处理
通常编程时会使用TextInputFormat作为输入方式(记录是按行输入的) 现通过自定义方法实现整个数据文件输入适用场景:在map阶段检验数据是否有序运行环境:windows下VM虚拟机,centos 6.5系统,hadoop2.2.0,三节点 ,java 1.7原数据: 第一步:自定义wholeFileInputFormat方法继承FileInputFormat //这个例子是以<Nu
2015-11-12 16:46:04 434
原创 java进阶-创建和销毁对象4
第四条:不要滥用自动装箱和自动拆箱的功能 由于java允许自动拆装箱,所以基本类型和装箱类型用起来的差别就比较模糊,但是这其中是有一些差别的,比如性能方面,例子场景:求出所有int正值的相加的总和public static void main(String[] args){//这条语句将导致程序性能降低 Long sum=0L; for(long i=0;i<Integer.M
2015-11-11 15:59:20 366
原创 java进阶-创建和销毁对象3
第三条,私有构造器漏洞场景:一个单例模式的类通常我们的做法是public Example{ private static final Example t1=new Example(); private Example(){} public static Example getInstance() { return t1; }}通过priva
2015-11-11 15:42:39 345
原创 MapReduce倒排索引概要
使用场景:主要用于索引,以提高搜索数据速度 例如百度搜索运行环境:windows下VM虚拟机,centos系统,hadoop2.2.0,三节点 ,java 1.7 需要处理的数据为 求出每个索引所对应的包含索引的网址package boke;import java.io.IOException;import org.apache.hadoop.conf.Configuration;imp
2015-11-10 22:50:54 517
原创 java进阶-创建和销毁对象2
第二条:遇到多个构造器参数时要考虑用构建器场景:当一个类创建对象时需要传参数的时候,例如public class Person{ private int age; private String name; private String school; ....}//通常使用的方法是Person(int age,String name,S
2015-11-10 21:56:49 379
原创 java进阶-创建和销毁对象
目的:掌握何时以及如何创建对象,何时以及如何避免创建对象,如何适时的销毁的优化方法。第一条:用静态工厂代替构造器 优点1:简化赋值过程 例原构造器版:Map<String,List(String)> m=new HashMap<String,List<String>>();静态工厂方法:public static HashMap<k,v> newInstance(){ retur
2015-11-05 23:17:42 337
原创 nutch源码crawldb类源代码分析
nutch源码crawldb类源代码分析package org.apache.nutch.crawl;import java.io.*;import java.text.SimpleDateFormat;import java.util.*;// Commons Logging importsimport org.slf4j.Logger;import org.slf4j.LoggerFac
2015-11-05 21:39:12 771
原创 mapreduce概要模式
本栏目主讲MapReduce设计模式,每天更新….. 话说Word Count我就不写了吧……数值概要模式目的:把数据取出进行聚合,最基本的设计模式主要用于处理数值或者计数,分类等场景,例:sql里面的group by通过查找最小值的示例具体讲解运行环境:windows下VM虚拟机,centos系统,hadoop2.2.0,三节点 ,java 1.7需要处理的数据为 I
2015-11-04 23:39:24 613
空空如也
nutch分布式运行问题错误提示38954拒绝连接
2015-09-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人