自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YC

  • 博客(40)
  • 收藏
  • 关注

原创 数理统计要点

**** 随机变量随机变量是一次试验的结果,结果以不同的概率取值域中的不同值。值域离散,则为离散型随机变量。值域连续,则为连续型随机变量。分布列,描述离散型随机变量的取值分布情况。概率密度,描述连续型随机变量的取值分布情况。分布函数F(x) = P(X离散型随机变量的常见分布类型:0-1分布、二项分布、几何分布、泊松分布。连续型随机变量的常见分布类型:均匀分布、正态分布。

2015-05-20 15:34:45 891

原创 MapReduce排序程序

1 输入数据import java.io.DataOutputStream;import java.util.Random;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;/** * 随机生成一批

2014-11-25 11:21:29 888

原创 Spark客户端Java程序开发Step By Step

STEP 0 搭建Spark集群STEP 1 创建Maven ProjectSTEP 2 编写Java源程序STEP 3 运行

2014-04-22 16:43:23 5715 3

原创 Hive查询在MapReduce上的执行过程

Hive查询首先被转换成物理查询计划,物理查询计划通常包含多个MapReduce作业,而一个MapReduce作业的输出可以作为另一个MapReduce作业的输入。Hive为Hive查询设计的MapReduce作业有固定的模式:Mapper类为org.apache.hadoop.hive.ql.exec.ExecMapper,Reducer类为org.apache.hadoop.hive.ql.e

2014-02-27 18:46:38 3874

原创 Hive输入输出记录的过程

Hive作为一款构建于Hadoop之上的数据仓库系统,具有良好的异构数据源普遍适用性。Hive内部处理的是记录(Row),任何数据在被Hive处理之前都需要经过Hive的输入接口转成记录(Row)。在Hive中创建表后,Hive在MetaStore中为表存储了必要的元信息,其中有三项元信息用于指定外部数据的输入输出方式。1)InputFormat。这项元信息是一个实现了Hadoop的数据输入接

2014-02-27 11:22:31 3110

原创 Hive中的RCFile

Hive中的RCFile是一种按列存储记录的文件格式。RCFile的结构与SequenceFile类似,但是注意,二者并不兼容,不能像读取SequenceFile那样来读取RCFile。RCFile整体上也是存储了一个个的Key-Value对,其结构为:文件头 + 顺序出现的Key-Value对(每隔几个Key-Value对插入一个同步标记)。相比SequenceFile的文件头,RCFile

2014-02-19 11:29:41 947

原创 Hadoop中的SequenceFile

SequenceFile是在Hadoop中常用的一种文件格式。文件中存储的是一个个的Key-Value对。根据是否使用压缩以及压缩内容的不同,SequenceFile提供三种Key-Value对存储方式。1)不压缩。文件结构为:文件头 + 顺序出现的各个未经压缩的Key-Value对(每隔若干Key-Value对插入一个16字节的同步标记)。2)分记录压缩。文件结构为:文件头  + 顺序出

2014-02-19 10:50:10 833 2

原创 编写Java程序访问Spark环境

Spark本身是使用scala语言编写的,但是Spark提供了访问Spark环境的Java API,使得可以从Java程序中访问Spark环境。

2014-02-18 17:59:18 2484 1

原创 MapReduce编程

MapReduce程序不能主动执行,而只能在MapReduce集群的各个结点上由服务器程序(如TaskTracker)调用执行,编写MapReduce程序的主要工作就是实现与调用程序的各种接口。Hadoop中的MapReduce程序需要提供几个接口的实现,下面介绍。不过,为了简化MapReduce编程,Hadoop也提供了许多常用的接口实现,MapReduce程序可以直接拿来使用。下面基于Hado

2014-02-14 16:01:32 952

原创 决策树算法Java实现示例

package xx;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class DicisionTree { public

2013-11-25 11:32:44 8753 1

原创 理解信息熵

什么是信息熵?信息的作用是消除人们对事物的不确定性,而信息熵则是对信息这一作用的一种定量表示。信息熵由香农(Claude E. Shannon)提出,其计算公式为:H(x) = -∑(p(xi)log(2,p(xi))) (i=1,2,..,n),其中,x表示信息,xi (i=1,2,..,n)表示x的各种可能取值,p(xi)表示x取值为xi的概率。为了更好地理解信息熵,考虑下

2013-11-22 11:02:28 1695 1

原创 Apriori算法Java实现示例

package xx;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Map.Entry;import

2013-11-21 14:42:25 5443

原创 Spark源码分析

Driver,Master,Worker,Executor每个App通过Driver使用Cluster:首先向Master注册App,然后每个Worker为其创建一个Executor。RDD,Partition,Task每个RDD包含多个Partition,为了计算RDD,在Executor上为RDD的每个Partition创建一个Task负责计算相应的Partition,在一个Exe

2013-11-15 17:13:18 1868

原创 在程序中指定Spark和Hadoop的用户

Spark和Hadoop都被设计为多用户共享使用,每个用户程序都关联一个用户,Spark和Hadoop根据该用户授予用户程序对集群相关资源的访问权限。如果是强认证方式,每个用户程序关联的用户不可随意指定,而至少需要提供必要的认证信息(如密码);如果是弱认证方式,则可以在用户程序中指定关联用户,而不需要提供认证信息。Spark(0.8.0版本)使用的是弱认证方式,Hadoop可以配置使用强认证方式(

2013-11-15 12:19:05 15175 3

原创 JS控制图片滑动

JS控制图片滑动 function getStyle(element) { return element.currentStyle || window.getComputedStyle(element, null); } function bindFunction(object, func) { return function() { return func.apply(o

2013-11-06 18:10:40 754

原创 Ubuntu (12.04)配置静态IP和DNS

配置文件 /etc/network/interfaces以配置 eth0为例auto eth0iface eth0 inet staticaddress 192.168.40.201netmask 255.255.255.0gateway 192.168.40.1dns-nameservers 8.8.8.8

2013-08-27 09:21:23 742

原创 HBase数据的物理存储

HBase的数据存储方式对于实现自己的数据库产品有借鉴和指导意义,因此总结一下,以作备忘。HBase在文件系统中存储数据,而为了使系统具备良好的扩展性和可用性,一般使用HDFS作为该文件系统。HBase的基本存储单元是Key-Value对,其中Key由行键(Row Key)、列族名称、列修饰符、版本号构成。整个HBase存储系统可以认为是维护了一个大型的Key-Value对集合。理所当然地

2013-08-21 13:40:35 3844

原创 MapReduce新版客户端API源码分析

使用MapReduce新版客户端API提交MapReduce Job需要使用 org.apache.hadoop.mapreduce.Job 类。JavaDoc给出以下使用范例。// Create a new JobJob job = new Job(new Configuration());job.setJarByClass(MyJob.class);// Specify vario

2013-07-04 12:48:26 1064

原创 K-Means Java示例程序

package xxx;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Random;import java.util.Set;import java.util.TreeSet;publi

2013-07-01 16:33:12 776 2

原创 理解MapReduce哲学

Google工程师将MapReduce定义为一般的数据处理流程。一直以来不能完全理解MapReduce的真义,为什么MapReduce可以“一般”?最近在研究Spark,抛开Spark核心的内存计算,这里只关心Spark做了什么。在Spark上的所有工作都是围绕数据集进行,包括创建新的数据集、对数据集的转换、对数据集的归约。对于实际应用中的数据处理流程,Spark的这些似乎足够了,足够形成

2013-07-01 16:24:46 954

原创 Hive&HBase使用要点

一、HiveHive是一个Hadoop实用工具,为在Hadoop中使用SQL提供了一个界面。Hive自行维护(通常在本地存储系统中)表定义数据,而将表中的记录存储为HDFS中的文件,并使用Hadoop的MR实现对记录的并行访问(导入、查询)。准备使用Hive尽管Hive可以不依赖Hadoop而以本地模式使用,但是结合Hadoop使用通常是Hive的典型使用方式。因此,在使用Hi

2013-06-20 11:25:04 690

原创 HBase学习笔记

HBase按列族存储HBase的数据模型应用程序使用一个或多个Table存储数据;每个Table包含至少一个预定义的Column Family;每个Column Family可以包含任意数量的Column;对于特定Column,任何Row都可以在Column中使用一个Cell存储一个值;Cell中的值是多版本的。HBase的原子操作提供行范围的原子更新,只更新单行的操作是原子操作,

2013-06-19 11:21:13 642

原创 快速排序程序

package xxx;public class QuickSort { /** * 划分数组,返回POS,使得POS左边不大于POS,POS右边不小于POS */ public int split(int[] array, int low, int high) { int cur = array[low]; // 当low==high时,找到POS while (l

2013-06-16 19:22:23 599

原创 堆排序程序

package xxx;public class HeapSort { /** * 在pos的子树已经是大顶堆的前提下调整以pos为根的二叉树为大顶堆 */ public void adjustHeap(int[] array, int pos, int length) { int childPos = 0; // 持续沿子树方向调整:较大元素上升,较小元素下沉 wh

2013-06-14 15:55:39 559

原创 HBase客户端Java API使用总结

HBase版本:HBase 0.95.0-hadoop1客户端程序依赖的库,全部可从HBase的lib目录下找到commons-codec-1.7.jarcommons-configuration-1.6.jarcommons-lang-2.6.jarcommons-logging-1.1.1.jarguava-12.0.1.jarhadoop-core-1.1.2.j

2013-06-14 11:15:44 2323

原创 SQL查询Top N:MySQL Limit & Oracle ROWNUM

MySQL Limit1)取Top NSELECT * FROM t LIMIT N;2)取第M(从0开始)条记录开始的N条记录SELECT * FROM t LIMIT M,N;或SELECT * FROM t LIMIT N OFFSET M;Oracle ROWNUM1)取Top NSELECT * FROM t WHERE ROWNUM2)取

2013-06-11 14:47:36 930

原创 设置MySQL字符集

MySQL版本:MySQL 5.6.12查看MySQL支持的字符集,执行命令:SHOW CHARACTER SET;开发中常用字符集:GBK、GB2312、BIG5、UTF8、UTF16、UTF32、ASCIIMySQL支持在Server、Database、Table和Column四个级别指定字符集,下级指定的字符集在下级的作用范围内覆盖上级指定的字符集。1)在Se

2013-06-11 10:55:53 588

原创 搭建Hadoop集群

Hadoop由HDFS和MapReduce计算框架两部分构成。另有基于Hadoop开发的一些上层应用如HBase、Pig、Hive使得Hadoop更适合解决特定问题或更容易使用。一、HDFS和MapReduce在大数据问题上,HDFS用存储,MapReduce用于计算。尽管Hadoop中的HDFS和MapReduce计算框架可以独立部署、独立使用,但在实际使用过程中通常将二者同时部署。

2013-06-09 18:05:53 661

原创 Linux内核和驱动学习总结

1 内核编程接口1)双向环形链表双向环形链表是Linux内核为内核编程人员提供的一个便利。使用时,通常将struct list_head结构嵌入自定义结构,并利用container_of宏从struct list_head结构指针获得所在的自定义结构的指针。2)等待、定时和延迟定时器以固定的频率(HZ)产生中断,内核使用全局变量jiffies记录自系统启动以来产生的中断数。在对时间

2013-05-05 23:53:51 852

原创 理解Linux设备模型

1 注册设备。无论是预注册的方式还是热插拨的方式,所注册的设备需要通过某种对驱动程序可用的方式声明自己使用的物理资源,如I/O端口、I/O内存、中断号。2 注册驱动程序。所注册的驱动程序提供probe函数,当总线认为系统中出现了驱动程序可能可以控制的设备时,这个probe函数被调用。驱动程序在该函数中检查自己是否能够控制出现的设备,若不能,则返回表示不能控制的返回值;否则,可以请求保留

2013-04-28 00:24:01 598

原创 ARM Linux学习总结

ARM Linux特指运行于ARM架构处理器平台的Linux,区别于运行于PC上的X86 Linux。ARM架构处理器多用在嵌入式系统中,通常被集成到片上系统(SoC)。由于片上系统整合外部设备控制器的多样性,对于任何一片特定的片上系统,需要对ARM Linux进行定制,以使集成在片上系统中的各项功能可用,这个过程称为ARM Linux移植。ARM Linux移植的主要工作:1)Bootl

2013-04-27 09:29:43 722

原创 Linux设备驱动学习总结

1 设备驱动程序的一般思想针对某一特定目的,在内核空间预先注册一组函数,在用户空间运行的进程通过操作系统提供的某种访问入口直接或间接调用这些函数,以完成特定的操作。这几乎是所有操作系统中设备驱动程序的一般思想。例如,在Linux系统中,被注册的函数是一组规则函数,负责控制虚拟的或实际存在的设备;而为用户空间进程提供的访问入口则是几类系统调用。1.1 注册一组函数为了注册这样一组函数,L

2012-12-23 14:52:37 506

原创 Hadoop学习笔记

Hadoop版本:Hadoop-1.1.1,2012年12月1日发布。Hadoop主要包含两个子项目:一个是MapReduce框架,用于提供MapReduce计算;另一个是分布式文件系统HDFS,为MapReduce计算提供分布式文件存储。MapReduce框架和HDFS是两个独立的子项目,MapReduce框架不是只能使用HDFS支撑MapReduce计算,而HDFS也可以在其他应用场合提供

2012-12-07 14:39:36 533

原创 对设备驱动程序的一点理解

不同的操作系统往往有各自特定的设备驱动程序模型,在编写针对特定操作系统平台的设备驱动程序时,需要考虑设备驱动程序模型并使用相应的API。下面从总线层次来考虑编写设备驱动程序,因此这些考虑应当是操作系统平台无关的,适用于所有操作系统。1 设备驱动程序做什么?几乎所有设备驱动程序的工作都是访问“设备”——我们可以将这里说的“设备”理解为I/O端口和设备映射的内存单元——并处理来自“设备”的中断

2012-11-21 20:51:49 751

原创 《EJB 3 in Action》读书笔记02

注解和依赖注入 注解 注解本质上是用来为Java类、接口、方法或变量附加额外信息的特殊Java接口。这些额外信息被开发环境、Java编译器、运行时环境(比如Java EE容器)读取,并对其行为产生影响。因此,从影响行为这方面讲,注解完全可以代替XML配置文件。注解和Java代码被编译到同一个文件中,这可以大大减少管理配置文件带来的麻烦。注解固然有其优势,但是由于配置数据被编译到字节码文件

2010-01-24 23:28:00 444

原创 《EJB 3 in Action》读书笔记01

“从开发者的角度来看,EJB是在称为EJB容器的特定运行时环境中执行的一段Java代码,容器提供组件服务。” 这句话中其实提到了EJB 3的两个部分:EJB组件、EJB容器。EJB组件本身是不能用来处理业务逻辑的,EJB组件需要使用EJB容器提供的服务,如持久化、安全、Web服务支持等。因此学习EJB 3,不仅要学习如何创建EJB组件,还要学习如何使用EJB容器中的服务。 1 EJB组件

2010-01-23 23:23:00 382

原创 对JavaEE的简单认识

Java中存在各种各样的API, 也许正是这些API的制定使得Java能够像今天这样繁荣. API代表了标准, 开源则使各种API的实现百花齐放. 应该说, JavaEE是一系列为解决在企业应用开发中各种问题而制定的APIs. SUN制定了Java EE规范(即API), 但这些规范并不涉及具体实现, 应用服务器的多样性正好说明了这一点. 新的JavaEE API还在制定, 因此Java EE是

2010-01-20 22:09:00 1820

原创 安全体系

1.加密 两类:保密性加密、完整性加密。 保密性加密根据加密方式可分为对称密钥加密和非对称密钥加密。 完整性加密过程:基于某种摘要算法为原始数据生成消息摘要;将原始数据和生成的消息摘要发送给接收者;接收者用同样的方式为接收到的“原始数据”(此时的原始数据可能已经被篡改)生成另一个消息摘要;接收者比较生成的消息摘要与接收到的消息摘要,若完全相同则可认为接收到的“原始数据”没有被篡改,如果不同则

2010-01-20 21:29:00 480

原创 上研前操作系统学习总结

上研之前以为自己的研究方向将是操作系统,所以在操作系统相关的方面进行了一些不系统的学习,对操作系统尤其是基于Windows NT的操作系统的内部机理有了较清晰的认识。现在我的研究内容转向操作系统之上的Web Services(说这句话时我是没有多少底气的,因为我也不是很清楚Web Services究竟是什么,只是觉得自己现在研究的是与Web相关的服务,所以就借用了这个领域名词),以后可能很长时间不

2010-01-20 21:26:00 710

原创 关于Java虚拟机装载类的一些想法

也许Java虚拟机的实现者应该去考虑这样一个想法:从除Java字节码文件之外的一些数据源装载Java类,比如关系型数据库中的关系定义、包含了结构化数据的XML数据源。如果Java实现了这个想法,那么像ORM映射、Web Services中XML Schema与Java类之间的映射之类的麻烦事将变成一些愉快的事情。关系型数据库中的关系定义所使用的数据类型也大都有相应的Java类型

2009-10-21 21:36:00 401

空空如也

空空如也

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

TA关注的人

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