源码故事
文章平均质量分 62
白乔
这个作者很懒,什么都没留下…
展开
-
图数据交互可视化分析框架InteractiveGraph v0.3版本发布
图数据交互可视化分析框架 InteractiveGraph日前发布v0.3版本,下载地址https://github.com/grapheco/InteractiveGraph/releases/tag/0.3.1。图数据模型具有对实体关系的表达能力强、属性 及结构可扩展性好、关联查询高效等优势。在对海量 的多元异构信息进行建模时, 图数据模型较关系模 型、键值模型、文档模型等而言具有更好的直观...原创 2020-02-15 19:43:02 · 3688 阅读 · 6 评论 -
MySQL 主从复制与读写分离概念及架构分析
1.MySQL主从复制入门首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。 MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。 ...转载 2019-11-15 09:03:02 · 277 阅读 · 0 评论 -
calcite教程【中文版】
最近有个项目需要用到calcite,无奈网上的中文资料不是很多,找到官方教程,怒译之~~~放到CSDN上,与广大同行共享。本文由白乔翻译 原始英文网址:http://calcite.apache.org/docs/tutorial.html 译文网址:calcite教程本教程指引如何一步一步地生成并连接到Calcite。该教程通过使用一个简单的适配器(adapter),将一个CSV文件的目录模拟翻译 2016-05-20 10:16:45 · 14887 阅读 · 0 评论 -
spark structured streaming的source解析与自定义
如下代码:val lines = spark.readStream.format("socket") .option("host", "localhost").option("port", 9999).load();会创建一个socket类型的Source,该name2class的映射由DataSource.lookupDataSource()完成val serviceLoader = Se原创 2017-07-14 10:06:45 · 1616 阅读 · 0 评论 -
HTTP的输出流是假的流?
最近采用HTTP的输出流发数据:val url = new URL(httpPostURL);val httpConn = url.openConnection().asInstanceOf[HttpURLConnection];httpConn.setRequestMethod("POST");httpConn.setDoOutput(true);httpConn.setDoInput(t原创 2017-07-16 12:13:23 · 469 阅读 · 1 评论 -
Spark2.0: Structured Streaming
启动nc:nc -lk 9999启动spark-shell:val lines = spark.readStream. | format("socket"). | option("host","localhost"). | option("port",9999). | load();lines: org.apache.spark.sql.DataFrame =原创 2017-07-13 14:14:24 · 542 阅读 · 0 评论 -
理解scala的元组类型
scala> classOf[(Int,String)]res10: Class[(Int, String)] = class scala.Tuple2scala> classOf[(String,String)]res11: Class[(String, String)] = class scala.Tuple2scala> res10==res11res12: Boolean = true原创 2017-08-06 11:22:49 · 873 阅读 · 1 评论 -
进一步理解DataFrame, Dataset, RDD
Dataset类似于RDD+schema 如下代码创建一个Dataset:scala> import spark.implicits._import spark.implicits._scala> val ds = Seq(("bluejoe", 100), ("alex", 200)).toDSds: org.apache.spark.sql.Dataset[(String, Int)] =原创 2017-09-04 20:35:00 · 4760 阅读 · 1 评论 -
spark数据流的合并与分支
spark数据流(data flow)的合并可以通过union来实现。先测试一下批量数据(batching data)的union:scala> Seq("1","2","3","4").toDS.union(Seq("a","b","c","d").toDS).show+-----+|value|+-----+| 1|| 2|| 3|| 4|| a|原创 2017-09-06 16:27:51 · 2822 阅读 · 1 评论 -
白乔原创:著名Web文件管理器elfinder的后端服务器
https://github.com/bluejoe2008/elfinder-2.x-servlet elfinder是一款基于Web的文件浏览器前端,但一直缺乏比较好的Java后端代码。本项目集成了elfinder的前端代码,并提供了一个基于Java的后端实现。文件管理器支持文件的浏览、查看、搜索等操作。通过接口设计,开发者可根据具体的情况模拟文件目录。 what's ...原创 2017-09-11 09:08:02 · 8732 阅读 · 3 评论 -
spark的几个示例
统计《红楼梦》和《西游记》里面高频字:scala> spark.read.textFile("/Users/bluejoe/testdata/xiyou.txt").map(_.replaceAll("[\\x00-\\xff]|,|。|:|.|“|”|?|!| ", "")).flatMap(_.split("")).groupBy("value").count.sort($"原创 2017-09-20 20:34:39 · 653 阅读 · 1 评论 -
利用Spark mllib识别点阵文本
Step 1准备手写字体,生成图片; 总共写了10个字:你、我、他、分、布、式、计、算、框、架,每个写了10遍 然后写了5个待识别的字:你、我、好、世、界、框、架图片如下(手机上写的,字丑见谅!) Step 2切割图片(抠图),对齐大小至64*64,输出二值化(0-1)点阵,此处参考了网上的部分代码,java源码如下:import java.awt.Color;import java.awt原创 2017-09-21 11:09:32 · 1645 阅读 · 2 评论 -
javascript中两种类方法的定义
第一种方法:function Point(x, y) { this.x = x; this.y = y; this.delta = function (delta) { this.x += delta.x; this.y += delta.y; }}生成的每个对象都有一份delta()函数: 第二种方法: 采用原创 2018-01-16 23:05:59 · 318 阅读 · 0 评论 -
白乔原创:理解Neo4j的Cypher执行引擎
org.neo4j.cypher.internal.ExecutionEngine其中execute() val preParsedQuery = preParser.preParseQuery(query, profile) val executableQuery = getOrCompile(context, preParsedQuery, queryTracer, ...原创 2019-09-28 19:34:39 · 1263 阅读 · 0 评论 -
在Activiti官方源码上提交的两个bugfix
前段时间在Activiti官方源码上提交了两个bugfix,截图为证。第1个是BPMN model输出的bug:网址在:https://github.com/Activiti/Activiti/pull/464#event-204722250第2个是关于字符集的问题:网址:https://github.com/Activiti/Activiti/pull/486#event-220121880都是原创 2015-01-19 13:40:11 · 1688 阅读 · 1 评论 -
spring beans的写入工具——spring-beans-writer
spring-beans-writer是我曾经为动态生成spring beans配置文件做的一个写入工具原创 2014-10-24 11:33:25 · 1156 阅读 · 0 评论 -
activiti源码解读之心得整编
TaskService.completeTask()的执行内幕是啥?activiti采取了command模式,completeTask会被包装成一个CompleteTaskCmd,一个Cmd执行的时候需要一些外围处理,如:log日志。activiti定义了一个拦截器链,链上的每个拦截器都有个next,会一直next执行下去。以CompleteTaskCmd为例,拦截器链为:logg原创 2014-12-08 11:39:49 · 17862 阅读 · 0 评论 -
Activiti源码分析(框架、核心类。。。)
http://jiangwenfeng762.iteye.com/blog/1338553Activiti是业界很流行的java工作流引擎,关于Activiti与JBPM5的关系和如何选择不是本文要讨论的话题,相关内容可以baidu一下。Activiti从架构角度看是比较优秀的,是很面向对象的,是我所阅读过的代码结构很棒的开源软件,个人认为比Spring,Hibernate的要好。转载 2014-12-07 21:05:23 · 17300 阅读 · 5 评论 -
Activiti源码浅析:Activity与Task
最近由于接触到Activiti工作流引擎,因此得以了解一下它的源码1. UserTask与原创 2014-10-30 23:14:38 · 24272 阅读 · 1 评论 -
Spark技术内幕:Stage划分及提交源码分析
http://blog.csdn.net/anzhsoft/article/details/39859463当触发一个RDD的action后,以count为例,调用关系如下:org.apache.spark.rdd.RDD#countorg.apache.spark.SparkContext#runJoborg.apache.spark.scheduler.DAGSch转载 2014-11-24 22:55:19 · 6640 阅读 · 1 评论 -
Hadoop源代码分析
http://wenku.baidu.com/link?url=R-QoZXhc918qoO0BX6eXI9_uPU75whF62vFFUBIR-7c5XAYUVxDRX5Rs6QZR9hrBnUdMdVHNSHdjYtv7i28lCSng1iuWO620ML_wqJZYFge转载 2014-11-21 21:41:52 · 1762 阅读 · 0 评论 -
h2database源码浅析:SQL语句的执行
最近想好好了解一下数据库的原理,下载了h2database的源码,准备好好看看。此过程的一些想法,暂且记下来,权当做读码笔记吧!为了调试准备的测试用例: @Test public void testExternalDb() throws Exception { Class.forName("org.h2.Driver"); Connection conn = DriverManager原创 2015-01-02 22:47:44 · 5782 阅读 · 1 评论 -
Activiti源码浅析:Activiti的活动授权机制
1. IdentityLinkAn identity link is used to associate a task with a certain identity. For example: - a user can be an assignee (= identity link type) for a task - a group can be a candidate-group (=原创 2014-11-01 00:05:10 · 6560 阅读 · 0 评论 -
Spark技术内幕:Client,Master和Worker 通信源码解析
http://blog.csdn.net/anzhsoft/article/details/30802603转载 2014-11-24 22:56:58 · 1649 阅读 · 0 评论 -
h2database源码浅析:TransactionMap、MVMap、MVStore
TransactionStore:A store that supports concurrent MVCC read-committed transactions.TransactionStore.Transaction:A transaction.TransactionStore.TransactionMap:A map that supports transactions.Transacti原创 2015-01-05 21:53:09 · 2308 阅读 · 0 评论 -
h2database源码浅析:集群
Clustering / High AvailabilityThis database supports a simple clustering / high availability mechanism. The architecture is: two database servers run on two different computers, and on both computers原创 2015-01-05 22:57:38 · 2576 阅读 · 0 评论 -
h2database源码浅析:MVTable与MVIndex
MVTable代表存在MVStore的一张表,MVTable.addRow()用以插入一条记录: public void addRow(Session session, Row row) { lastModificationId = database.getNextModificationDataId(); Transaction t = getTransaction(session);原创 2015-01-04 22:01:01 · 1790 阅读 · 0 评论 -
h2database源码浅析:事务、两阶段提交
Transaction IsolationTransaction isolation is provided for all data manipulation language (DML) statements. Most data definition language (DDL) statements commit the current transaction. See the Gramm原创 2015-01-05 22:54:17 · 3403 阅读 · 0 评论 -
h2database源码浅析:锁与MVCC
Table Level LockingThe database allows multiple concurrent connections to the same database. To make sure all connections only see consistent data, table level locking is used by default. This mechani原创 2015-01-05 22:54:57 · 3107 阅读 · 0 评论 -
activiti 源码笔记之startProcess
http://blog.csdn.net/songzheng_741/article/details/17199339rumtimeService.startProcessInstanceByXX方法将启动流程的任务委派给StartProcessInstanceCmd,此时会根据rumtimeService.startProcessInstanceByXX的XX转载 2014-12-05 21:08:36 · 3591 阅读 · 0 评论