自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

转载 十步完全理解 SQL

很多程序员视 SQL 为洪水猛兽。SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言、面向对象的程序语言、甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言)。我们每天都在写 SQL 并且应用在开源软件 jOOQ 中。于是我想把 SQL 之美介绍给那些仍然对它头疼不已的朋友,所以本文是为了以下读者而特地编写的:1、 在工作中会用到 SQL

2017-04-25 17:24:28 342

转载 图形数据库Neo4J简介

最近我在用图形数据库来完成对一个初创项目的支持。在使用过程中觉得这种图形数据库实际上挺有意思的。因此在这里给大家做一个简单的介绍。NoSQL数据库相信大家都听说过。它们常常可以用来处理传统的关系型数据库所难以解决的一系列问题。通常情况下,这些NoSQL数据库分为Graph,Document,Column Family以及Key-Value Store等四种。这四种类型的数据库分别使用了不同

2017-04-18 11:00:45 536

转载 知识图谱技术原理介绍

近两年来,随着Linking Open Data[1] 等项目的全面展开,语义Web数据源的数量激增,大量RDF数据被发布。互联网正从仅包含网页和网页之间超链接的文档万维网(Document Web)转变成包含大量描述各种实体和实体之间丰富关系的数据万维网(Data Web)。在这个背景下,Google、百度和搜狗等搜索引擎公司纷纷以此为基础构建知识图谱,分别为Knowledge Graph、知心

2017-04-17 19:10:02 7525

转载 Apache Cassandra架构理解

架构基本流程: 点对点分布式系统,集群中各节点平等,数据分布于集群中各节点,各节点间每秒交换一次信息。每个节点的commit log提交日志捕获写操作来确保数据持久性。数据先被写入MemTable(内存中的数据结构),待MemTable满后数据被写入SSTable(硬盘的数据文件)。所有的写内容被自动在集群中partition分区并replica

2017-04-17 12:14:51 506

原创 kafka源码分析之一server启动分析

0. 关键概念关键概念ConceptsFunctionTopic用于划分Message的逻辑概念,一个Topic可以分布在多个Broker上。Partition是Kafka中横向扩展和一切并行化的基础,每个Topic都至少被切分为1个Partition。Offset消息在Partition中

2017-04-13 20:53:15 930

转载 从Code Review 谈如何做技术

(这篇文章缘由我的微博,我想多说一些,有些杂乱,想到哪写到哪)这两天,在微博上表达了一下Code Review的重要性。因为翻看了阿里内部的Review Board上的记录,从上面发现Code Review做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到Code Review的记录。当然,这并不能说没有记录他们就没有做Code Review,于是,我就问了一下以前在业务团队

2017-04-13 10:36:13 390

转载 如何重构“箭头型”代码

本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得很多东西可以从一个简单的东西出发,到达本质,所以,我觉得有必要在这里写一篇的文章。不一定全对,只希望得到更多的讨论,因为有了更深入的讨论才能进步。文章有点长,我在文章最后会给出相关的思考和总结

2017-04-13 10:27:22 2377

转载 elasticsearch源码分析之Rest/RPC 接口解析(八)

一些基础知识早先ES的HTTP协议支持还是依赖Jetty的,现在不管是Rest还是RPC都是直接基于Netty了。另外值得一提的是,ES 是使用Google的Guice 进行模块管理,所以了解Guice的基本使用方式有助于你了解ES的代码组织。ES 的启动类是 org.elasticsearch.bootstrap.Bootstrap。在这里进行一些配置和环境初始化后会启动

2017-04-12 15:42:14 1812

转载 elasticsearch源码分析之discovery(七)

Discovery模块概述elasticsearch中的Discover模块,这个模块主要是发现模块负责发现集群中的节点,以及选取主节点。用作处理elasticsearch中的集群问题,是elasticsearch中比较复杂的一个模块。 discovery有几类:Azure discovery(类似于多播),它可作为插件使用。EC2 discovery,作为插件使用。Googl

2017-04-12 15:15:50 1207

转载 elasticsearch源码分析之Gateway(六)

一、es数据文件我们将探讨由es系统各个部分写入的目录文件,分别从broker(master)和node(data)的结构文件进行介绍,并给其一个简短说明。其实在Elasticsearch中生成的数据文件一般来说主要有三种,分别是state、index和translog,后两种想必大家也都知晓,那么state主要就是Gateway存储数据的文件。Gateway模块用于存储es集群的

2017-04-12 15:14:16 561

转载 elasticsearch源码分析之Transport(五)

一、基本介绍1.1概念介绍transport模块是es通信的基础模块,在elasticsearch中用的很广泛,比如集群node之间的通信、数据的传输、transport client方式的数据发送等等,只要数和通信、数据传输相关的都离不开transport模块的作用。transport模块分为LocalTransport和NettyTransport两种,在Transpo

2017-04-12 14:37:07 1006

转载 elasticsearch源码分析之服务端(四)

上篇博客说明了客户端的情况,现在继续分析服务端都干了些啥,es是怎么把数据插进去的,此处以transport的bulk为入口来探究,对于单个document的发送就忽略了。一、服务端接收1.1接收消息在客户端分析中已经提到,netty中通信的处理类是MessageChannelHandler,其中messageReceived方法用来处理消息。1.1.1解析数据流

2017-04-12 14:24:57 678

转载 elasticsearch源码分析之客户端(三)

与es通信有三种protocol分别是node、http和transport;其实对于其他client而言最终都是使用的http;而Java是可以使用node和transport的,node方式一般很少用,此处我们只讨论transport client,采用bulk方式。一、客户端初始化1.1生成settings对象代码很容易看懂,初始化了一些基本信息,生成

2017-04-12 11:29:58 524

转载 elasticsearch源码分析之启动过程(二)

最近开始广泛的使用elasticsearch,也开始写一些Java代码了,为了提高java代码能力,也为了更加深入一点了解elasticsearch的内部运作机制,所以开始看一些elasticsearch的源码了。对于这种广受追捧的开源项目,细细品读一定会受益匪浅,所以我会尽可能地细分成很多部分,下面我们从启动过程开始!首先从main开始,从start脚本可以看出,从org.elastic

2017-04-12 11:26:51 356

转载 elasticsearch源码分析之使用Guice进行依赖注入与模块化系统(一)

elasticsearch使用google开源的依赖注入框架guice,这个项目号称比spring快100倍,具体性能没有测试过,不过由于其代码比较简洁,比spring快很有可能,是不是快那么多就不知道了。先介绍下guice的基本使用方法。elasticsearch是直接把guice的源码放到自己的包内(es把很多开源项目的代码都直接集成到自己项目中,省得依赖一堆的jar包,也使es的jar包

2017-04-12 11:24:24 570

转载 The RDD API By Example

Our research group has a very strong focus on using and improving Apache Spark to solve real world programs. In order to do this we need to have a very solid understanding of the capabilities of Spark

2017-04-12 10:22:17 394

转载 《Spark 官方文档》机器学习库(MLlib)指南

spark-1.6.1机器学习库(MLlib)指南MLlib是Spark的机器学习(ML)库。旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。MLllib目前分为两个代码包:spark.mllib 包含基于RDD的原始算法API。s

2017-04-12 10:18:40 362

转载 Presto实现原理和美团的使用实践

Facebook的数据仓库存储在少量大型Hadoop/HDFS集群。Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。在以前,Facebook的科学家和分析师一直依靠Hive来做数据分析。但Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求。Faceb

2017-04-12 10:07:34 294

转载 OkHttp使用完全教程

上一节我们讲述了Http请求的过程, 这一节我们就讲述下OkHttp是怎么完成Http请求的.(为了更好的理解这节内容,强烈推荐上一节文加图, 理解Http请求与响应)1. 历史上Http请求库优缺点在讲述OkHttp之前, 我们看下没有OkHttp的时代, 我们是如何完成http请求的.在没有OkHttp的日子, 我们使用HttpURLConnection或者HttpCl

2017-04-11 15:45:39 979

原创 mongodb-river-elasticsearch源码解析

MongoDBRiverPluginMongoDBRiverPlugin类是插件注册类,它继承自AbstractPlugin,其功能是1.      在RiverModule中注册一个MongoDBRiver2.      在RestModule中注册一个RestMongoDBRiverAction[java] view plain copy 

2017-04-08 14:31:39 354

转载 大数据平台Docker应用之路

随着大数据平台型产品方向的深入应用实践和Docker开源社区的逐渐成熟,业界有不少的大数据研发团队开始拥抱Docker。简单来说,Docker会让Hadoop平台部署更加简单快捷、让研发和测试团队集成交付更加敏捷高效、让产线环境的运维更加有质量保障,而这背后的业务场景和具体的实践方法有哪些?在Docker容器服务逐步走向完善的过程中,大数据平台产品Docker模式的应用又是如何解决的?正是本文所着

2017-04-07 11:46:02 744

转载 如何建立数据分析的思维框架

曾经有人问过我,什么是数据分析思维?如果分析思维是一种结构化的体现,那么数据分析思维在它的基础上再加一个准则:不是我觉得,而是数据证明。这是一道分水岭,“我觉得”是一种直觉化经验化的思维,工作不可能处处依赖自己的直觉,公司发展更不可能依赖于此。数据证明则是数据分析的最直接体现,它依托于数据导向型的思维,而不是技巧,前者是指导,后者只是应用。

2017-04-07 11:25:15 655

转载 人人都可以做深度学习应用:入门篇

一、人工智能和新科技革命2017年围棋界发生了一件比较重要事,Master(Alphago)以 60 连胜横扫天下,击败各路世界冠军,人工智能以气势如虹的姿态出现在我们人类的面前。围棋曾经一度被称为“人类智慧的堡垒”,如今,这座堡垒也随之成为过去。从2016 年三月份 AlphaGo 击败李世石开始,AI 全面进入我们大众的视野,对于它的讨论变得更为火热起来,整个业界普遍认

2017-04-07 10:26:05 367

原创 MapReduce 原理与设计思想

简单解释 MapReduce 算法一个有趣的例子你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?MapReduce方法则是:给在座的所有玩家中分配这摞牌让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你你把所有玩家告诉你的数字加起来,得到最后的结论拆分

2017-04-06 15:13:07 787

转载 Apache Spark 内存管理详解

Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuff

2017-04-06 10:49:48 746

转载 spark之RDD

RDD概念与特性RDD是Spark最重要的抽象。spark统一建立在抽象的RDD之上。设计一个通用的编程抽象,使得spark可以应对各种场合的大数据情景。RDD模型将不同的组件融合到一起,选用其中的几个/所有,可以应付各种不同的场景。解决了mr的缺陷 1. 弹性分布式数据集Resilient Distributed Dataset。 2. 只读分区数据集,final修饰的 

2017-04-02 11:36:31 580

转载 ZooKeeper 基础知识、部署和应用程序

简介让我们首先讨论一下为什么想使用 ZooKeeper。ZooKeeper 是一个面向分布式系统的构建块。当设计一个分布式系统时,一般需要设计和开发一些协调服务:名称服务— 名称服务是将一个名称映射到与该名称有关联的一些信息的服务。电话目录是将人的名字映射到其电话号码的一个名称服务。同样,DNS 服务也是一个名称服务,它将一个域名映射到一个 IP 地址。在分布式系统中,您可能想

2017-04-02 11:23:05 417

转载 Visualizing Garbage Collection Algorithms

Visualizing Garbage Collection AlgorithmsMost developers take automatic garbage collection for granted. It’s just another amazing feature provided by our language run-times to make our jobs

2017-04-02 11:04:15 469

转载 大数据陷阱:需要读懂的10个小故事

自2011年以来,大数据旋风以“迅雷不及掩耳之势”席卷中国。毋庸置疑,大数据已然成为继云计算、物联网之后新一轮的技术变革热潮,不仅是信息领域,经济、政治、社会等诸多领域都“磨刀霍霍”向大数据,准备在其中逐得一席之地。中国工程院李国杰院士更是把大数据提升到战略的高度,他表示【1】,数据是与物质、能源一样重要的战略资源。从数据中发现价值的技术正是最有活力的软技术,在数据技术与产业上

2017-04-01 17:14:33 6292

转载 百度内部培训资料PPT:数据分析的道与术

这是一个来自百度内部培训关于数据分析的、阅读类的PPT,文字说明非常充分,适合刚入门数据分析的朋友进行学习。

2017-04-01 16:10:35 940

原创 ZooKeeper 原理及其在 Hadoop 和 HBase 中的应用

简介ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现。分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。基本概念本节将介绍ZooKeeper的几个核心概念。这些概念贯穿于之后对ZooKeeper更深入的讲解,因此有必要预

2017-04-01 15:52:37 358

转载 2016年大数据80篇爆款文章:这一年你追过的那些技术

2016年即将过去,各位大数据的程序员们,是否觉得这一年都不断的追着新技术跑?这个大数据公众号是今年一月底创立的,一年过去,我们积累了不少好内容。回过头来我们看看这一年的脚印,这里我按照文章内容做了一次汇总,分为:流处理、机器学习、用户画像、数据驱动、Hadoop、Apache Spark、Apache Kylin、Druid、推荐系统和大数据平台架构。流处理2016年流式数据处理

2017-04-01 15:05:03 1018

转载 一名资深质量工程师总结的4个工作思路

在用户至上、体验为王、唯快不破的移动互联网时代,借着在测试领域的七年工作经验积累来简单谈谈质量工程师可以参考的几点工作思路。思路一:关于质量和过程的两个进阶其一,质量上的进阶:从程序质量、用户体验再到产品品质。要引领品质,输出QA的价值。《京东技术解密》中有一段话,“技术需要分三步走,支持业务,驱动业务,再到引领业务”,受益匪浅,QA的质量价值输出同样也需要如此进阶的过程:

2017-04-01 15:01:27 6300 2

转载 连接池原来这么简单

应网友要求,写一写连接池实现细节。 一、如何通过连接访问下游工程架构中有很多访问下游的需求,下游包括但不限于服务/数据库/缓存,其通讯步骤是为:(1)与下游建立一个连接(2)通过这个连接,收发请求(3)交互结束,关闭连接,释放资源 这个连接是什么呢,通过连接怎么调用下游接口?服务/数据库/缓存,官方会提供不同语言的Driver、Doc

2017-04-01 11:50:18 334

转载 计算机的潜意识

从机器学习谈起  在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。  在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于

2017-04-01 11:12:49 420

Joint source

Joint source的资源的专业硕士论文。值得深究!!

2009-09-16

空空如也

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

TA关注的人

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