- 博客(294)
- 资源 (1)
- 收藏
- 关注
原创 Java使用RSA加密解密及签名校验
该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1.jar注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。RSA加密对明文的长度是有限制的,如果加密数据过大会抛出如下异常:Exception in thread "main" javax.crypto.IllegalBlockSize
2017-06-22 13:23:13
917
原创 Java-web下使用RSA进行加密解密操作
最近在看,网络安全方面的问题,我们可以使用RSA进行非对称加密防止,获取用户信息。首先我们看下Java下操作RSA进行加密解密算法,代码如下:[html] view plain copypackage com.jb.test; import java.security.InvalidKeyException; import jav
2017-06-22 13:19:14
3176
原创 深入理解Java:注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno
2017-06-12 14:11:02
224
原创 全新的Kafka controller
本文主要参考社区0.11版本Controller的重设计方案,试图给大家梳理一下Kafka controller这个组件在设计上的一些重要思考。众所周知,Kafka中有个关键组件叫controller,负责管理和协调Kafka集群。网上关于controller的源码分析也有很多。我在这里就不再大段地列出代码重复做这件事情了。实际上,对于controller的代码我一直觉得写的非常混乱,各种调用关系
2017-06-11 23:13:52
623
原创 javahost:使用虚拟DNS省掉开发环境配置hosts文件
javahost:使用虚拟DNS省掉开发环境配置hosts文件学习如何使用java修改DNS解析记录,采用Properties文件替代hosts文件。在不同运行环境访问不同将数据源服务器,为了方便切换是否使用域名替代IP? 如果使用域名的话,在开发环境就需要配置hosts文件 团队其他成员checkout代码是否需要文档告诉他怎么配置hosts文件? 您负责的项目很多怎么办
2017-05-26 18:10:21
2421
原创 Reactor模式详解
前记第一次听到Reactor模式是三年前的某个晚上,一个室友突然跑过来问我什么是Reactor模式?我上网查了一下,很多人都是给出NIO中的 Selector的例子,而且就是NIO里Selector多路复用模型,只是给它起了一个比较fancy的名字而已,虽然它引入了EventLoop概 念,这对我来说是新的概念,但是代码实现却是一样的,因而我并没有很在意这个模式。然而最近开始读Netty源码,
2017-05-26 10:24:14
315
原创 Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记
公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群。话说,好想去捡垃圾,捡台8核16线程64G内存的回来,手动滑稽。3台笔记本的配置和角色分配:宿主CPU 宿主内存 虚拟机 虚拟机CPU/台 角色及内存双核双线程 4G 1台
2017-05-19 11:58:23
1547
原创 NTP服务及时间同步(CentOS6.x)
今有一小型项目,完全自主弄,原来以为很简单的NTP服务,我给折腾了2个多小时才整撑头(以前都是运维搞,没太注意,所以这技术的东西,在简单都需要亲尝啊),这里记录为以后别再浪费时间。 目标环境,5台linux centos 6.3, 一台作为NTPD服务与外部公共NTP服务同步时间,同时作为内网的NTPD服务器,其他机器与这台服务做时间同步。 服务器I
2017-05-15 16:46:31
929
原创 Java常用排序算法/程序员必须掌握的8大排序算法
分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。先来看看8种排序之间的关系: 1.直接插入排序(1)基本思想:在要
2017-04-13 15:14:33
400
原创 eclipse快捷键 包括查找类、方法、变量
【Ct rl+T】搜索当前接口的实现类 1. 【ALT +/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT +/】快捷键带来的好处吧。 2. 【Ct rl+O】 显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。
2017-03-30 14:35:54
1000
原创 HBase 写优化之 BulkLoad 实现数据快速入库
1、为何要 BulkLoad 导入?传统的 HTableOutputFormat 写 HBase 有什么问题?我们先看下 HBase 的写流程:通常 MapReduce 在写HBase时使用的是 TableOutputFormat 方式,在reduce中直接生成put对象写入HBase,该方式在大数据量写入时效率低下(HBase会block写入,频繁进行flush,split,comp
2017-03-27 23:36:46
555
原创 hive中order by,sort by, distribute by, cluster by作用以及用法
1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。 这里跟传统的sql还有一点
2017-03-24 10:51:41
421
原创 protocol buffer的使用
protobuf介绍 按照官网的描述:protobuf是google提供的一个开源序列化框架。主要 应用于通信协议,数据存储中的结构化数据的序列化。它类 似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复 杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工
2017-03-23 16:31:04
433
原创 Netty ChannelBuffer
ChannelBuffer是Netty中比较常用的一个类,其功能类似于字符数组,可以对其进行读写操作。ChannelBuffer的模型图如下: +-------------------+------------------+------------------+ | discardable bytes | readable bytes | writable bytes
2017-03-23 10:20:25
755
原创 布隆过滤器 (Bloom Filter) 详解
布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中。在垃圾邮件过滤的黑白名单方法、爬虫(Crawler)的网址判重模块中等等经常被用到。哈希表也能用于判断元素是否在集合中,但是布隆过滤器只需要哈希表的1/8或1/4的空间复杂度就能完成同样的问题。布隆过滤器可以插入元
2017-03-17 14:55:32
597
转载 BloomFilter——大规模数据处理利器
来源:http://www.cnblogs.com/heaad/archive/2011/01/02/1924195.html Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例
2017-03-17 11:31:13
386
原创 SQL on HBase -- phoenix 之分页查询
最近一个项目中使用了Hbase,有一部分实时查询的需求。HBase本身只有一种排序,即按照rowkey的字典升序来排序数据。然而我们常常会碰到各种各样的排序需求。 对于简单的需求(比如项目确定只有某一种特定排序的需求),则可以通过对rowkey本身进行“组合”设计来达到目的。比如项目涉及到的数据为全球各类学校学生情况,需要按照在校人数的降序来展示数据,则可以采用“In
2017-03-16 18:42:22
1747
原创 hadoop中4种压缩格式的特征的比较
1 gzip压缩优点:压缩率比较高,而且压缩/解压速度也比较快;hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样;有hadoop native库;大部分linux系统都自带gzip命令,使用方便。缺点:不支持split。应用场景:当每个文件压缩之后在130M以内的(1个块大小内),都可以考虑用gzip压缩格式。譬如说一天或者一个小时的日志压缩成一个gzip 文件
2017-03-16 10:50:43
1435
原创 Tachyon:Spark生态系统中的分布式内存文件系统的使用
Tachyon是Spark生态系统内快速崛起的一个新项目。 本质上, Tachyon是个分布式的内存文件系统, 它在减轻Spark内存压力的同时,也赋予了Spark内存快速大量数据读写的能力。Tachyon把内存存储的功能从Spark中分离出来, 使Spark可以更专注计算的本身, 以求通过更细的分工达到更高的执行效率。 本文将先向读者介绍Tachyon在Spark生态系统中的使用, 也将分享百度
2017-03-14 19:08:40
704
原创 深入浅出理解 COOKIE MAPPING
在RTB(实时竞价广告,Real-Time-Bidding)广告领域(当然实际上不仅仅是这个领域),有一个常见的词汇叫 Cookie Mapping(Cookie 匹配),一会又是DSP(需求方供应平台)与DSP的Cookie Mapping,一会又是DSP与Ad Exchange的Cookie Mapping,一会还有DMP(数据管理平台)与DSP的Cookie Mapping,已经完全把大家搞
2017-03-14 17:50:02
3359
原创 SparkStreaming自定义Receiver
接触spark已经有一些时间了,线上跑的spark的版本是基于spark1.5的版本,一次业务需求,要上实时处理,一起我们也搭建过一套基于storm的实时处理平台,后来数据平台重新搭建之后,我们上了spark,因为在spark生态栈里已经包含了realtime的处理模块,再加上我们的业务对实时要求并不是特别高,鉴于系统的维护成本,我们在技术选型上决定上SparkStreaming来进行实时处理。
2017-03-08 14:33:59
1164
原创 Disruptor 极速体验
已经不记得最早接触到 Disruptor 是什么时候了,只记得发现它的时候它是以具有闪电般的速度被介绍的。于是在脑子里, Disruptor 和“闪电”一词关联了起来,然而却一直没有时间去探究一下。 最近正在进行一项对性能有很高要求的产品项目的研究,自然想起了闪电般的 Disruptor ,这必有它的用武之地,于是进行了一番探查,将成果和体会记录在案。一、什么是 Disr
2017-03-05 20:46:37
415
原创 Launching Applications with spark-submit【使用脚本提交作业到集群5种部署模式--】
Once a user application is bundled, it can be launched using thebin/spark-submit script.This script takes care of setting up the classpath with Spark and itsdependencies, and can support different c
2017-03-03 18:28:15
677
原创 Trident API Overview
http://storm.apache.org/releases/1.0.3/Trident-API-Overview.htmlThe core data model in Trident is the "Stream", processed as a series of batches. A stream is partitioned among the nodes in the c
2017-03-01 14:10:17
596
原创 STORM之ITridentSpout、FirstN(取Top N)实现、流合并和join
基于事务static interface ITridentSpout.BatchCoordinator static interface ITridentSpout.Emitter接口类的实现和之前事务ITransactionalSpout 非常类似。Topo例子topology.newDRPCStream("top", drpc).ea
2017-03-01 14:01:27
1591
原创 机器学习中的特征工程总结
俗话说“磨刀不误砍材工”,在机器学习领域,进行特征工程相关的工作就相当于磨刀了。那么,什么是特征工程呢?通俗来讲,特征工程就是为了使模型在未知数据集上获得更好预测精度而对原始数据集进行转换的一系列过程。特征工程的具体过程则由以下四点决定:1、评估模型优劣的方法、指标是什么?(RMSE还是AUC等)2、要解决的问题属于分类问题还是回归问题..3、具体使用的模型是什么?(决策树、svm
2017-02-28 15:22:31
509
原创 STORM的三种事务
Spout和BoltSpoutITransactionalSpout,同BaseTransactionalSpout,普通事务SpoutIPartitionedTransactionalSpout,同BasePartitionedTransactionalSpout,分区事务SpoutIOpaquePartitionedTransactionalSpout:
2017-02-28 14:32:14
2886
原创 利用分类模型学习特征权重
在有的时候,我们需要学习出特征在分类器中所占的比重,例如判断某个人是否具有贷款资格,特征收入应该比年龄要更重要一些,那么具体重要多少,我们可以通过训练数据学习出来。第一个办法可以借鉴决策树中特征选择的思想,以贷款为例,特征向量={年龄,收入,有房子,婚否}。通过计算每个特征Ai在训练数据集下的信息增益: gi(D,Ai)=H(D)−H(D|Ai),i=1,2,3,4
2017-02-27 10:29:40
1147
原创 如何落地用户画像分析?
用户PERSONA的含义: P 代表基本性(Primary research)指该用户角色是否基于对真实用户的情景访谈E 代表移情性(Empathy)指用户角色中包含姓名、照片和产品相关的描述,该用户角色是否引起同理心。 R 代表真实性(Realistic)指对那些每天与顾客打交道的人来说,用户角色是否看起来像真实人物。 S 代表独特性(Singular)每个用户是否是独特的,彼此
2017-02-24 17:42:07
3302
转载 Spark性能优化指南——高级篇【2】
前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据
2017-02-17 11:43:57
487
原创 JDK和CGLIB生成动态代理类的区别
关于动态代理和静态代理当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁--代理对象。按照代理对象的创建时期不同,可以分为两种:静态代理:事先写好代理对象类,在程序发布前就已经存在了;动态代理:应用程序发布后,通过动态创建代理对象。静态代理其实就是一个典型的代理模式实现,在代理类中包装一个被代理对象,
2017-02-17 11:41:14
795
原创 Java关键字final、static使用总结
Java关键字final、static使用总结 一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final
2017-02-12 22:31:31
313
转载 Spark性能优化指南——基础篇【1】
前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、性能更高。然而,通过Spark开发出高性能的大数据计算作业,并不是那么简单的
2017-02-09 18:09:25
1011
原创 MySQL中的四种Key
MySQL中有四种Key:Primary Key, Unique Key, Key 和 Foreign Key。除了Foreign Key最好理解外,其他的都要区分一下。剩下的三种都要在原表上建立索引。Primary Key和Unique Key之间的区别网上说的最多。Primary Key的提出就是为了唯一标示表中的字段,就像我们的身份证号一样。此外,所有字段都必须是no
2017-02-08 18:05:19
3422
原创 读万卷书不如行万里路,行万里路不如阅人无数,阅人无数不如名师指路,名师指路不如自己去悟
时常听到这样一句话:“读万卷书不如行万里路,行万里路不如阅人无数,阅人无数不如名师指路,名师指路不如自己去悟”。有些人只说到名师指路这儿,有些人是全部说完,似乎没有名师指路或自己去悟人就不能成功,片面地强调某一点。这样就进入一个认识的误区:读书有何用,做的再多有什么用!我认为,这句话应该连起来看。一个人要想取得成就,必须多读书,读好书。“书中自有黄金屋”、“书是人类进步的阶梯”、书是人类智慧的结晶
2017-02-07 16:36:06
6363
1
原创 二次函数性质
一般地,自变量x和因变量y之间存在如下关系:一般式:y=ax2+bx+c(a≠0,a、b、c为常数),则称y为x的二次函数。顶点式:y=a(x-h)2+k(a≠0,a、h、k为常数)。交点式(与x轴):y=a(x-x1)(x-x2)(a≠0,a、且x1、x2为常数)x1、x2为二次函数与x轴的两交点。等高式:y=a(x-x1)(x-x2)+m(a≠0,且过(x1、m
2017-01-22 13:25:08
5692
原创 网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用
前言: 最近被网络爬虫中的去重策略所困扰。使用一些其他的“理想”的去重策略,不过在运行过程中总是会不太听话。不过当我发现了BloomFilter这个东西的时候,的确,这里是我目前找到的最靠谱的一种方法。 如果,你说URL去重嘛,有什么难的。那么你可以看完下面的一些问题再说这句话。关于BloomFilter: Bloom filter 是由 Ho
2017-01-18 21:14:40
654
原创 Ambari——大数据平台的搭建利器之进阶篇[配置spark]
虽然大数据越来越流行,但其学习的门槛却一直阻碍着很多的初学者,而且各个产品之间的集成和维护也显得比较困难。不管是 Hadoop V1 或者 V2 的安装,又或者 Spark/YARN 等的集成,都不是几行简单的命令,而是要关联到许多的配置。有了 Ambari,这些都不再是难题前言本文适合已经初步了解 Ambari 的读者。对 Ambari 的基础知识,以及 Ambari
2017-01-18 10:41:17
6832
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅