自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Spring , Hadoop, Spark , BI , ML

Later equals never.

  • 博客(157)
  • 资源 (2)
  • 收藏
  • 关注

原创 一篇文章理解JWT(Json Web Tokens)

JWT(JSON Web Tokens)是一项RFC的标准,由RFC 7519定义,用于两个实体之间安全地传输用JSON表示的数据。在传输过程中,JWT表现为一个字符串,可以通过HTTP的参数或者Header传输,由三部分字符串用点号相连,格式如下:header.payload.signatureeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySW...

2018-04-20 23:20:10 1862

原创 Java HmacSHA256

借助bouncycastle实现HmacSHA256,即带密钥的SHA256。在线加密工具: http://tool.oschina.net/encrypt?type=2private static String encrytSHA256(String content, String secret) { try { Security.addProvider(n

2016-11-01 14:07:11 5207 1

原创 正则表达式工具集合

编辑器:http://www.regexbuddy.com/ 非常强大的正则表达式编辑器,语法高亮,测试,调试,解释都具备。http://regexr.com/ 提供语法高亮,含义解释,测试等功能。https://regex101.com/ 语法高亮、测试、常用表达式等。http://regex.larsolavtorvik.com/http://nregex.com/http://myre

2016-09-21 14:20:19 1407

原创 Spring属性注入Bean的List属性

使用@Value和SpEL来完成。属性文件:client.valid.version=1.2,1.1XML配置:<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SY

2016-09-20 18:27:06 2718

原创 正则表达式提取时间

时间的各种格式都可以通过正则表达式来匹配,例如我们想精确匹配HH:mm的时间,即包含小时和分钟,可以使用下面的表达式:^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$更多时候我们想从字符串中提取,而不是完全匹配字符串,把开头和结尾的去掉:([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]更多关于时间和日期的正则表达式,参考: RegExL

2016-09-20 14:13:19 10689

原创 java中Map按值排序

在许多场合下,经常需要对Map进行排序,排序的依据是Map中的值。简单的例子比如根据Map<Integer,Integer>代表学生分数,想要根据分数从高到低排列该Map。更复杂的例子中,Map<String,List<Flight>>代表一组共享航班,key为共享航班号,value为共享该航班号的所有航班,其中执飞航班位于第一个元素,我们现在想根据执飞航班的时间排序。解决方案如下: priv

2016-09-19 18:01:14 3198

转载 Java中的格式化

详见: http://blog.csdn.net/imust_can/article/details/7013533

2016-09-19 17:18:44 845

原创 SQL Not in null

在SQL中,如果在IN从句中出现null,将会出现完全不符合预期的情况。例如: select * from user where id not in (1, 2, null)此时返回结果为空,而不是除了1,2和null以外的结果。事实上,上述not in语句相当于:where id <> 1 and id <>2 and id<>nullnull与非null数据进行比较,其结果是UNKNOWN,

2016-09-19 15:18:41 911

原创 使用Tesseract OCR Engine识别图片文字

目前有很多OCR工具或者类库都提供了准确率挺高的PDF和图片识别功能。在爬虫应用中,时常需要识别验证码或者目标站点处于数据保护而使用图片来替代直接的文本。除了直接的软件和类库外,还有一些在线工具可以直接识别,使用free online ocrGooglr可以搜索到下面这几个:http://www.onlineocr.net/http://www.free-ocr.com/http://www.

2016-09-07 23:35:07 7762 1

转载 SQL窗口函数

在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成。为了解决这些问题,在2003年ISO  SQL标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决。目前在 MSSQLServer、Oracle、DB2 等主流数据库中都提供了对开窗函数的支持,不过非常遗憾的是 MYSQL 暂时还未对开窗函数给予支持。为了更加清楚地理解,我们来

2016-09-07 12:32:35 3305

原创 Php defined or

经常在一些代码中看到defined or的组合,例如:defined('MyPath') or define('MyPath' , __DIR__.'/');defined('MyPath') || define('MyPath' , __DIR__.'/');分析一下,左边的defined用于判断一个常量是否定义,返回boolean; 右边的define定义常量,返回是否成功。 or或者||

2016-08-26 17:57:43 2017

原创 Php引用

1、What Reference ArePHP中的引用,用于使用不同的名字来访问同一个变量内容。引用不像C语言中的指针,不是具体的内存地址,不能进行指针的算术运算。引用只是symbol table alias。2、What Reference Do引用主要用在3个地方:assigning by reference <?php $a =& $b; ?>这个赋值语句运行之后,a和b

2016-08-26 17:02:47 2215

原创 Window下安装php composer

composer是一个php的依赖管理工具,类似JVM环境中的maven,虽然mave的功能比composer强大得多。官方指南:https://getcomposer.org/doc/00-intro.md下载exe:https://getcomposer.org/Composer-Setup.exe安装时由于php没有安装openssl扩展,出现如下问题:解决方案:修改php.ini,取消以下2

2016-08-25 00:30:15 716

原创 MySQL JDBC表情编码配置

在MySQL中,表情符号需要4个字节的空间存储,因此如果某个列需要兼容表情存储,需要设置该列的字符集为utf8mb4:ALTER TABLE `db`.`tablename` CHANGE COLUMN `content` `content` VARCHAR(45) CHARACTER SET 'utf8mb4' NULL DEFAULT NULL COMMENT '' ;另外,根据Mysql的文

2016-08-24 09:16:08 1566

原创 Java Bean相关工具类库

JavaBeans规范移步这里。JDK自动的基础工具:java.lanf.reflect和java.beans包Apache Common BeanUtils:项目 主页项目 文档 Spring框架的相关工具类:org.springframework.beans.BeanUtilsDozer:Bean-Bean映射 Dozer is a Java Bean to Java Bean map

2016-08-22 18:15:32 856

原创 ElasticSearch位置搜索

在ElasticSearch中,地理位置通过geo_point这个数据类型来支持。地理位置的数据需要提供经纬度信息,当经纬度不合法时,ES会拒绝新增文档。这种类型的数据支持距离计算,范围查询等。在底层,索引使用Geohash实现。1、创建索引PUT创建一个索引cn_large_cities,mapping为city:{ "mappings": { "city": {

2016-08-19 19:02:01 7761

转载 MySQL和Lucene索引对比分析

MySQL和Lucene都可以对数据构建索引并通过索引查询数据,一个是关系型数据库,一个是构建搜索引擎(Solr、ElasticSearch)的核心类库。两者的索引(index)有什么区别呢?以前写过一篇《Solr与MySQL查询性能对比》,只是简单的对比了下查询性能,对于内部原理却没有解释,本文简单分析下两者的索引区别。1. MySQL索引实现在MySQL中,索引属于存储引擎级别的概念,不同存储引

2016-08-13 23:32:31 2269

原创 Solr分面搜索(Faceting)

分面搜索(Faceting)基于索引词项对搜索结果进行分类,同时返回每个分类对应的文档数。用户可以可以分类缩小结果范围。下图是一个结果汇总的例子:Amazon的搜索也提供了非常优秀的分面及相应的过滤:环境Solr的发行版自带了一些很好的例子,使用这些例子研究Solr的各种特性非常合适。我们这里使用Solr自带的techproducts索引作为例子。启动solr:solr -e techproduct

2016-08-13 14:54:13 1900

原创 模糊匹配及Solr关键词自动提示应用

1. 字符串相似度字符串相似度用于衡量2个字符串之间的相似度,这里的相似度一般指形式上的相似,而非语义上的相似。字符串相似度算法是模糊字符串匹配(搜索)的核心内容之一,在搜索引擎中的拼写检查、关键词智能补全中也发挥重要重要。在更高层次的实体链接(识别)或实体消歧应用中,也是重要的研究内容。 字符串的模糊匹配也叫模糊匹配,有点类似于正则表达式匹配,但是存在一些不同。字符串匹配(正则表达式)通常关注精

2016-08-13 10:32:41 5864 1

原创 Solr基本概念

搜索基本构成搜索的基本定义,可以表述为以下4个步骤:1) 构建索引: Indexing,对文件、网站、数据库的记录进行处理以便可以进行搜索,被索引的文件称为文档。 构建索引之前,需要对文档的内容、结构、类型深入了解,这对于构建索引很有必要,对内容不理解,很难构建出优秀的搜索引擎。索引是使得文档可搜索的过程,一般是将文档各部分内容切分成词条(token),词条经过词干还原、不区分大小写等方式进行

2016-08-11 23:33:50 1911

原创 Spark及其子项目

Apache Spark是一个通用的分布式计算框架,基于内存的特点使得其以高性能著称。Spark应用可以运行在本地模式或者集群模式,集群模式中通过ClusterManager来管理整个应用,目前Spark提供了3中Cluster Manager:Standalone,Mesos,YARN。除了核心的计算引擎Spark Core以外,Spark还有一系列相关的项目:Spark CoreSpark Co

2016-08-07 19:38:48 2380 5

原创 ZooKeeper集群搭建详细步骤

Apache ZooKeeper是一个非常出色的分布式协调系统,在配置管理、命名服务、分布式同步等方面应用广泛。其基本思想来源于Google的Chubby,可以认为是其开源实现。在Hadoop生态系统中,ZooKeeper发挥着非常作用的作用,kafka等很多系统都依赖于ZooKeeper提供服务。ZooKeeper通过选举产生一个Leader,其他节点作为Follower。Leader发生故障时会

2016-08-05 00:28:55 1691

原创 Hue 3.9 Tarball安装及界面一览

Hue是Cloudera开源的一个Hadoop UI,由Cloudera Desktop演化而来。面向用户提供方便的UI用于平时的Hadoop操作中。Apache Ambari面向的是管理员,用于安装、维护集群,而不是使用集群。两者针对的是不同需求。Hue安装:本文环境配置如下:OS: CentOS 6.6 FinalHadoop: 2.6.0Hue 3.9官网教程:http://gethu

2016-08-03 06:16:04 2006

原创 HBase分布式集群搭建

本文详细介绍搭建分布式HBase集群的步骤,并给出一个简单的例子。假设在集群上已经安装好JDK以及HDFS,如果还未安装,请参考这篇详细的Hadoop集群搭建步骤。HBase集群组成HBase采用主从模式,由Master和RegionServer组成,使用ZooKeeper作为协调服务。集群个角色如下:下面我们搭建的集群由3个节点组成,一台作为Master,另外两台作为RegionServer。Zo

2016-08-02 21:53:08 1335

原创 Hadoop中的几种文件格式

Hadoop中的文件格式大致上分为面向行和面向列两类:面向行:同一行的数据存储在一起,即连续存储。SequenceFile,MapFile,Avro Datafile。采用这种方式,如果只需要访问行的一小部分数据,亦需要将整行读入内存,推迟序列化一定程度上可以缓解这个问题,但是从磁盘读取整行数据的开销却无法避免。面向行的存储适合于整行数据需要同时处理的情况。面向列:整个文件被切割为若干列数据,每

2016-08-01 19:50:28 21356

原创 Hive之数据查询

Hive为大规模的数据分析提供了一种类SQL的查询语言,在数据仓库中是一种很常见的工具。1. 排序和聚合排序使用常规的ORDER BY来完成,Hive在处理ORDER BY请求时,并行排序,最终产生一个全局排序结果。如果全局有序不是必须的,那么可以使用Hive的非标准扩展SORT BY,它返回的是一个局部有序的结果,每个Reducer内部有序,每个Reducer产生一个有序的文件。有时候我们想控制数

2016-07-31 02:11:29 5344 2

原创 理解Hive表(Hive Table)

Hive表逻辑上有表的数据和相关的元数据组成。元数据描述表的结构,索引等信息。数据通常存放在HDFS中,虽然任意的Hadoop文件系统都能支持,例如Amazon的S3或者而本地文件系统。元数据则存在关系型数据库中,嵌入式的默认使用Derby,MySQL是一种很常用的方案。许多关系型数据库都提供了命名空间的概念,用于划分不同的数据库或者Schema。例如MySQL支持的Database概念,Postg

2016-07-31 00:22:19 20601 4

原创 Hive与传统的数据库

1. Hive vs. 传统的数据库Hive与传统的关系型数据库有很多类似的地方,例如对SQL的支持。但是其基于HDFS与MapReduce的事实使得它与传统的数据库在很多方面有很大的不同,在一些特性的支持下也受到底层架构的限制,但是这些限制随着版本迭代正在不断被消除,使得Hive看起来越来越像传统的数据库。1.1 Schema on Read vs. Schema on Write在传统的数据库中

2016-07-30 21:13:07 2341

原创 Hive数据类型

1. Hive数据类型Hive支持原始数据类型和复杂类型,原始类型包括数值型,Boolean,字符串,时间戳。复杂类型包括数组,map,struct。下面是Hive数据类型的一个总结: 分类 类型 描述 字面量示例 原始类型 BOOLEAN true/false TRUE TINYINT 1字节的有符号整数 -128~127 1Y SMALL

2016-07-30 21:06:57 52956 3

原创 Hive自定义函数-UDF

当Hive内置的函数无法满足需要时,可以自定义函数。Hive允许我们在查询中轻易地使用自定义的函数。UDF必须使用Java语言,如果想要其他语言来实现,可以考虑SELECT TRANSFORM查询,它允许Hive与自定义的脚本通过Steam进行交互,类似MapReduce Streaming和Pig Stream。Hive中有3中类型的自定义函数:通常的UDF、UDAF(user-defined a

2016-07-30 20:55:40 4098

原创 Hive:环境搭建及例子

Hive是由Facebook最初开发的基于Hadoop的数据仓库工具,提供了类SQL的查询语言Hive SQL(HQL)。在内部,Hive将用户的SQL语句转化为一系列的MapReduce作业,并提交到集群中运行。在Hive中,数据通过表来组织,提供了一种将表结构附加(attaching)到HDFS中的数据的一种方式。诸如表的Schema等元数据存放在一个称为metastore的数据库中。默认情况下

2016-07-30 02:26:44 4023

原创 Sqoop: 环境搭建、实例及概念

简介Sqoop是一个用于在外部结构化数据与Hadoop之间导入导出数据的工具。 Apache Sqoop is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases.Sqoop:是一个

2016-07-30 00:12:11 4826

原创 使用Spark和Pig统计每秒钟微博数量

手头有一个新浪微博的数据集,大概在1亿条左右。用Pig和Spark写了几行代码,基于400w条微博,统计了每秒钟发了多少条微博。 Life is too short , show me the code.将数据从本地拷到HDFS上:hadoop fs -copyFromLocal /home/data/weibo/201605/weibo_freshdata.2016-05-01 /input

2016-07-28 00:02:36 2525

原创 Apache Pig:干货长文带你完全入门

本文内容来自Hadoop权威指南,个人阅读的时候顺带整理翻译而来,并加入了自己的理解以及实际运行的配置。涵盖了Pig的核心内容,非常值得细度。版本记录:2016-07 初稿1. 环境配置:wget http://mirror.bit.edu.cn/apache/pig/pig-0.15.0/pig-0.15.0.tar.gztar zxvf pig-0.15.0.tar.gzmv ./pig-

2016-07-27 21:33:40 8044 1

原创 Spark RDD

RDD最初是由伯克利大学的几个教授提出的,原始论文Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing可以在这里下载,非常值得认真研究。RDD(Resilient Distributed DataSet)是Spark最核心的抽象。它代表的是元素的集合,Spark的文档中

2016-07-26 19:49:22 2035

原创 Spark核心概念理解

本来主要内容来自己《Hadoop权威指南》英文版中的Spark章节,可以说是个人的翻译版本,涵盖了主要的Spark概念。安装Spark首先从spark官网下载稳定的二进制分发版本,注意与你安装的Hadoop版本相匹配:wget http://archive.apache.org/dist/spark/spark-1.6.0/spark-1.6.0-bin-hadoop2.6.tgz解压:tar xz

2016-07-26 00:30:37 6913 1

原创 Avro:使用Avro MapReduce进行排序

在MapReduce作业中,框架保证Reducer收到的key是有序的。利用这一点,我们可以对Avro文件进行排序。假设我们有如下的Schema:{"namespace": "me.lin.avro.mapreduce", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"},

2016-07-24 15:04:49 2124

原创 Avro:MapReduce应用

Apache Avro框架提供:丰富的数据类型(原始类型和复杂类型)紧凑、快速的二进制文件格式(.avro)一种容器文件,用于存储avro数据RPC容易与动态语言集成,无需生成代码。代码生成作为一种优化,只有在静态语言中使用才有价值。下面是一个Avro MapReduce的实例,MapReduce作业统计Avro文件中的数据。Avro文件中的对象Schema如下:{"namespace"

2016-07-24 13:04:49 1904

原创 Avro:RPC例子

Apache Avro除了提供一种数据序列化机制以外,还提供了一套RPC机制。本文基于Avro协议,实现一个Java语言编写的RPC Server,以及一个Python语言编写的客户端。定义一个RPC协议Acro的RPC协议也是使用JSON来定义,通常以.avpr结尾。这个例子中我们实现一个简单的邮件发送服务,该服务定义如下:{ "namespace": "me.lin.avro.rpc",

2016-07-24 00:33:43 2060 1

原创 Avro:入门例子

Avro是由Hadoop创始人Doug Cutting创建的一种语言无关的数据序列化和RPC框架,用于解决Hadoop中Writable序列化机制的缺点:缺少跨语言特性,与Java绑的太紧,数据格式很难被JVM外的语言进行处理。本文使用Specific API和Generic API来展示Avro的序列化和反序列化。创建Maven项目pom文件如下:<project xmlns="http://ma

2016-07-23 22:35:54 6171

买年费Gif制作工具,支持录屏、录像,强大的编辑功能

免费并且功能强大的gif制作,编辑工具。支持录屏,摄像头录像等方式。并且编辑功能非常强大,中文支持。

2016-07-06

Rc振荡器课件

RC振荡器课件RC振荡器课件RC振荡器课件RC振荡器课件RC振荡器课件

2012-11-20

空空如也

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

TA关注的人

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