3 廿半

尚未进行身份认证

暂无相关描述

等级
TA的排名 7w+

图解最短路径之弗洛伊德算法(Java实现)

概述Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法是一种在具有正或负边缘权重(但没有负环)的加权图中找到最短路径的算法,即支持负权值但不支持负权环。弗洛伊德算法采用的是动态规划思想,其状态转移方程如下:其中matrix[i,j]表示i到j的最短距离,k是穷举i到j之间可能经过的中间点,当中间点为k时,...

2019-05-28 13:34:57

图解最短路径之迪杰斯特拉算法(Java实现)

概述迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。迪杰斯特拉算法采用的是贪心策略,将Graph中的节点集分为最短路径计算完成的节点集S和未计算完成的节点集T,每次将从T中挑选V0->Vt最小的节点Vt加入...

2019-05-10 20:04:43

Neo4j部署和数据导入

Neo4j部署1、下载安装包wgethttps://neo4j.com/artifact.php?name=neo4j-community-3.5.3-unix.tar.gz2、解压请不要因为文件名而质疑该文件是否完整,下载下来的文件名的确很奇怪,把请求的参数都带进去了。tar-zxvfartifact.php?name=neo4j-community-3.5.3-unix.ta...

2019-03-29 23:22:21

Solr+Hbase+Hbase Indexer查询方案流程整合

概述博客亿级数据多条件组合查询——秒级响应解决方案简述了Hbase+Solr的亿级数据多条件组合查询的解决方案,但是当时并未将HBaseIndexer这一组件加入进来,而是暂时采用手工的形式对Hbase和Solr的数据进行同步。本文基于该解决方案,使用HbaseIndexer的原生组件对Hbase和Solr中的数据进行增删改查的同步,简述整个Solr+Hbase+HbaseIndexer解决方...

2019-01-15 18:10:17

LeetCode刷题总结(基础篇)

概述最近刷了一些LeetCode题,都是比较简单的基础题,给出这段时间刷题的一些总结,都是比较基础的东西,仅供刚开始刷题的同学们参考。总结HashMap中的containsKey是将key直接进行hash,从连续的存储单元中找到指定下标。注意Integer整型的溢出,可以根据同号相加为异号判断溢出。最长公共前缀——找到最短的String、将该String设置为前缀、遍历strs数组,若...

2019-01-08 09:25:35

volatile和synchronized的区别

概述在Java中,为了在多线程环境读写数据时保证数据的一致性,可以采用两种方式:线程同步和使用volatile关键字。线程同步资源共享的两个原因是资源紧缺和共建需求。线程共享CPU是从资源紧缺的维度考虑,而多线程共享变量通常是从共建需求的维度考虑的。在多个线程对同一个变量进行写操作时,如果操作没有原子性,就可能产生脏数据。所谓原子性操作,便是一系列不可分割的操作指令,要么全部执行,要么全部都...

2018-11-18 15:56:01

Spark RDD之Partitioner

概述Partitioner是shuffle过程中key重分区时的策略,即计算key决定k-v属于哪个分区,Transformation是宽依赖的算子时,父RDD和子RDD之间会进行shuffle操作,shuffle涉及到网络开销,由于父RDD和子RDD中的partition是多对多关系,所以容易造成partition中数据分配不均匀,导致数据的倾斜。Shuffle在MapReduce框架中,...

2018-11-03 11:06:02

Spark RDD之Dependency

概述Partition是数据切分的逻辑,而Dependency是在Transformation过程中Partition的演化过程,根据Dependency的类型判断数据的处理方式,Dependency可以分为NarrowDependency(窄依赖)和ShuffleDependency(宽依赖)。Dependency是一个抽象类,只有一个属性RDD,该RDD为对应RDD的父RDD,因此Depen...

2018-10-28 17:12:19

Spark RDD之Partition

RDD概述RDD是一个抽象类,主要包含五个部分:partitions列表计算每一个split的函数依赖rdd的列表(dependencies)键值对rdd的partitioner计算每个split的首选位置列表其中最后两个部分是可选的,以上五个部分对应着五个方法:@DeveloperApidefcompute(split:Partition,context:T...

2018-10-28 17:06:24

亿级数据多条件组合查询——秒级响应解决方案

概述组合查询为多条件组合查询,在很多场景下都有使用。购物网站中通过勾选类别、价格、销售量范围等属性来对所有的商品进行筛选,筛选出满足客户需要的商品,这是一种典型的组合查询。在小数据量的情况下,后台通过简单的sql语句便能够快速过滤出需要的数据,但随着数据量的增加,继续使用sql语句,查询效率会直线下降。当数据量达到一定的量级,服务器将会不堪重负甚至面临挂掉的危险,并且大数据量的存储也成为了一个问...

2018-10-13 16:29:38

CDH平台Solr initialize failed错误分析与暴力解决方法

搭建好cdh平台之后,不知道误删了什么文件,导致添加Solr服务时在初始化阶段显示Solrinitializefailed,初始化失败,重新安装服务甚至多次重新安装cdh平台依然是这种状况。查看日志显示如下:15/Sep/201818:52:53+0000org.apache.solr.common.cloud.ZkStateReader$3processWARNING:Zoo...

2018-09-18 13:58:05

CDH平台搭建过程中主机不受管解决方案

序言实验室的集群中一直安装的都是原生的hadoop、hbase等生态圈软件,最近由于给出的一个技术方案涉及到hbase-indexer(虽然目前还没用上),而hbase-indexer暂时没找到Apache版本,需要自己编译,而在本机上好像出现了一些错误...

2018-09-16 13:15:34

Java IO之字节流与字符流操作

Java中的流Java中的字节流InputStream是所有用于操作字节输入流的祖先类,OutputStream是所有用于操作字节输入流的祖先类,主要用来处理字节或二进制对象。Java中的字符流Reader用于读取字符输入流的祖先类,Writer是用于写入字符输出流的祖先类。它们的子类都需要实现read(或write)、flush和close方法,并通过重写若干方法提供更高效和多...

2018-08-27 10:40:21

Flink源码解析——ForwardedFields转发字段

Flink中ForwardedFields这一概念为转发字段,所谓转发字段,字面理解就是某个字段不经过处理直接存储到另一位置,事实大致也是如此。ForwardedFields可以分为两类,一类是以map算子为代表的转发字段,另一类是join算子的转发字段,这两类算子的主要区别就是输入的DataSet个数。1.单输入算子转发字段map等算子的转发字段是通过withForwardedField...

2018-06-22 16:28:56

Flink中的Broadcast广播变量

在Flink中,同一个算子可能存在若干个不同的并行实例,计算过程可能不在同一个Slot中进行,不同算子之间更是如此,因此不同算子的计算数据之间不能像Java数组之间一样互相访问,而广播变量便是解决这种情况的。如下代码所示:valenv=ExecutionEnvironment.getExecutionEnvironmentvalds1=env.fromElem...

2018-06-20 17:16:08

使用 IntelliJ Idea搭建Spark源码阅读环境

首先,从官网下载spark-1.6.0源码,使用intellijIDEA直接open,选择使用maven构建项目,我选用的开发工具包是jdk1.7.0_03和scala-sdk-2.10.4,然后等待IDEA自动下载并解析相关依赖。然后编译任意Example,我选择的是JavaWordCount文件,此时程序会报如下错误:进入File->ProjectStructure->...

2018-06-15 13:06:50

Flink源码解析——数据源读入原理

Flink是分布式并行计算框架,所以Flink程序内在是分布和并行的,其并行的特性可在下述代码片段体现:valenv=ExecutionEnvironment.getExecutionEnvironmentvaltext=env.readTextFile(inputPath)valdata=text.flatMap(_.split(""))...

2018-06-14 17:19:02

Spark实现Hadoop简单实例

Spark实现Hadoop中的排序、统计词频、连接操作

2017-11-02 17:13:40

Git可视化教程——Git Gui的使用

Git可视化教程——GitGui的使用

2017-04-28 15:43:04

Git简介

Git简介

2017-04-27 16:20:07

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。