
Java
tinyid
Java/Python
Hadoop/Spark/Presto/Kafka/Druid
numpy/matplotlib/pandas/scipy
展开
-
策略模式
策略模式!对于办一件事情,你可以有不同的“策略”,而做事情的主体(比如你)可以随时调用不同的策略来做事情!这里有个关键点,就是做事情的主体在这个过程中是不变的。你还是你,比如让你做一件事情:制造点声音。这个任务可以有很多策略!你可以大喊一声;你可以摔个碗什么的;你可以弹钢琴....,反正又没有规定你“怎么”制造声音,其中的“怎么”就是策略。很简单吧。就拿让你“制造点声音”这个例子写点代码吧:...原创 2011-09-15 18:55:02 · 606 阅读 · 0 评论 -
HBase客户端程序
import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.翻译 2011-12-15 16:04:21 · 2578 阅读 · 0 评论 -
HDFS读取文件过程
从HDFS中读取一个文件,都需要做些什么呢?我们拿一个简单的例子来看一下:import java.io.InputStream;import java.net.URI;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop原创 2011-12-26 13:04:25 · 7013 阅读 · 0 评论 -
Thrift : the missing guide (中文翻译)
Thrift : the missing guideDiwaker Gupta me@diwakergupta.infoRevision History2012-01-20适用于Thrift 0.6.0潘飞(cnweike@gmail.com)翻译 1. 语言参考1.1 类型Thrift类型系统包含预先定义好的基本类型,用户自定义的结构体,容器类型翻译 2012-06-26 18:26:07 · 4420 阅读 · 0 评论 -
跨国际链路的数据服务系统架构设计的一种实现思路
现在数据在互联网产品中发挥的作用越来越大,很多公司都开始收集数据、整理数据,之后再数据建模、分析数据;最终我们得到的是知识,是某种规律的发现。发现知识和规律之后,我们需要将这些知识和规律运用到产品的改进或者运营中去。有些知识可以渗透在整个产品的设计中,比如说,我们通过数据分析发现,对于某种类型的网站的用户,他们大多数喜欢暖色调,那么我们就可以在设计界面的时候,多去使用一些暖色调;但是有些知识却不能原创 2012-07-30 16:15:12 · 2077 阅读 · 0 评论 -
使用Hive UDF和GeoIP库为Hive加入IP识别功能
Hive是基于Hadoop的数据管理系统,作为分析人员的即时分析工具和ETL等工作的执行引擎,对于如今的大数据管理与分析、处理有着非常大的意义。GeoIP是一套IP映射数据库,它定时更新,并且提供了各种语言的API,非常适合在做地域相关数据分析时的一个数据源。UDF是Hive提供的用户自定义函数的接口,通过实现它可以扩展Hive目前已有的内置函数。而为Hive加入一个IP映射函数,我们原创 2013-01-30 23:53:50 · 5121 阅读 · 4 评论 -
从JDK 6升级到JDK 7过程中遇到的一个问题
先前系统上有JDK 6的安装,由于要部署Facebook的Presto做一些测试,需要将其升级到JDK 7,但是在安装的过程中遇到以下的问题:[root@x01 data2]# rpm -ivh --force --replacepkgs jdk-7u45-linux-x64.rpm Preparing... #############原创 2013-11-28 14:34:19 · 9072 阅读 · 0 评论 -
Apache Storm流处理有序性探究
本文假设读者已经对Storm的基础结构有了全面理解,并知道Nimbus与supervisor在集群之中所扮演的角色。之所以要理解Storm集群的并行机制,是为了能够对数据流中数据地处理顺序有一个深入地理解,这样才能更有信心地使用工具。首先是需要了解一些与Storm集群并行机制相关地概念:工作进程(worker process,就是一个JVM进程,通过在supervisor服务器上执原创 2015-09-14 16:44:40 · 6133 阅读 · 1 评论 -
生产者-消费者模拟
import java.util.concurrent.*;class Meal{ private final int orderNum; public Meal(int orderNum){ this.orderNum = orderNum; } public String toString(){ return "Meal " + orderNum; }}cl翻译 2011-12-15 22:32:52 · 909 阅读 · 0 评论 -
多线程协同工作代码
import java.util.concurrent.*;class Car{ // 类名改成汽车美容馆还差不多,呵呵 private boolean waxOn = false; public synchronized void waxed() { waxOn = true; System.out.println("打蜡工作做完了!!!"); notifyAll();翻译 2011-12-13 16:40:58 · 1163 阅读 · 0 评论 -
互斥量
一下是Java编程思想中的一段代码public class MultiLock {public synchronized void f1(int count){if(count-- > 0){System.out.println("f1() calling f2() with count " + count);f2(count);}}public syn原创 2011-12-13 14:04:12 · 948 阅读 · 0 评论 -
观察者模式
我认为这个模式名称有先天的残疾!如果你确实理解了观察者模式你就能体会到了!福尔摩斯不止一次对华生说:“我是在观察,而你是在看”。福尔摩斯那可真叫观察呀,对周围的事物简直观察到了极致了...可观察者模式里的这群观察者可是不折不扣的懒汉!他们从不主动观察!他们只是等待被通知呢!所以我一直认为“订报模式”更能说明这个模式的意思,因为订报的人都很懒,他们就在家等着报纸送来。所以我们就订报吧!一般订报...原创 2011-09-15 18:54:32 · 939 阅读 · 0 评论 -
什么是JVM
java虚拟机是java和java2平台的基石。它是跨硬件和操作系统技术的一部分,编译代码的一小部分,和它保护用户免受来自恶意软件的侵害的功能。java虚拟机是一个抽象的计算机。像一个真正的计算机,它有指令集和在运行时操作各种内存区域的功能。使用虚拟机来实现一个编程语言是合理的;最著名的虚拟机可能是UCSD Pascal的P-Code机器。Sun公司实现的第一个java虚拟翻译 2011-10-28 12:40:46 · 2229 阅读 · 0 评论 -
复合设计模式—MVC
很强大,但让我很头疼的东西,弄懂它!这个东西无非就是模型-视图-控制器。还有什么——关系,更确切一点就是这三者之间的关系。首先明确谁能和谁通信:现在你是一个播放器:我的视图上有按钮,当别人按了播放按钮的时候,这个信号应该传递到控制器,所以视图能向控制器传递信息;这个时候,控制器就应该调用模式里的代码,去播放音乐,所以控制器能向模型传递信息;与此同时,控制器可能将播放按钮原创 2011-09-15 18:56:39 · 926 阅读 · 0 评论 -
装饰器模式
很多东西在装饰 着你:比如你的衣服...所谓装饰吗,仅仅是装饰而已。假如你有一只狗,给它系了跟红领巾,变漂亮了,这就是装饰了。可是狗该跑还是跑,该叫还是叫,总之你装饰不能(至少大多数情况下不能)把原来的东西给装饰没了吧。还有,你小时候看过那些小人在机器人里的动画片吧,看看,人家叫来了机器人,钻到里面,手上就能开火了,两只脚也变成了火箭推进器,功能是大大地增加了呀 !看到了吧,装饰不仅仅是花架子。...原创 2011-09-15 18:56:13 · 1072 阅读 · 1 评论 -
Java中比对字符串内容的注意点
Java中如果两个字符串s1和s2的内容相同,那么它们用==操作符比较,也可能返回false,这是因为Java中变量未引用传递,两个相同内容的字符串可能隶属于不同的字符串对象,所以为了稳妥起见,比较字符串时要使用equals方法来比较两个字符串的内容:import java.util.Iterator;import java.util.Map.Entry;import原创 2011-11-19 19:49:37 · 3340 阅读 · 0 评论 -
关于ByteBuffer中flip和rewind方法的作用说明
关于flip,看到JDK的文档大概是这么说的:“将limit属性设置为当前的位置”;而关于rewind方法,是在limit属性已经被设置合适的情况下使用的。也就是说这两个方法虽然都能够使指针返回到缓冲区的第一个位置,但是flip在调整指针之前,将limit属性设置为当前位置。以下程序可以验证:package com.example.tests;import java.nio.ByteBu...原创 2011-11-07 01:07:46 · 20773 阅读 · 3 评论 -
Hadoop之更快的排序
键默认的排序处理是,从一个流中读键类型的实例,使用键类型的readFields()方法来解析字节流,然后对这两个对象调用compareTo()方法。为了更快的排序,可以只通过检视字节流而不用解析出包含在其中的数据来判断这两个key的顺序。比如,考虑比较字符串文本。如果字符按照顺序读入,我们就可以在第一个字符不同的地方确定它们的顺序。即使是需要读入所有的字节,对象自身也没有初始化的必要。要支持这个高翻译 2011-11-11 18:06:10 · 1968 阅读 · 0 评论 -
Maven POM中的各种scope的行为总结
compile:默认的scope。任何定义在compile scope下的依赖将会在所有的class paths下可用。maven工程会将其打包到最终的artifact中。如果你构建一个WAR类型的artifact,那么在compile scope下引用的JAR文件将会被集成到WAR文件内。provided:这个scope假定对应的依赖会由运行这个应用的JDK或者容器来提供。最好的例子就是serv...原创 2016-08-16 15:19:35 · 22728 阅读 · 6 评论