- 博客(51)
- 资源 (8)
- 收藏
- 关注
原创 Java性能优化系列之五--JavaIO
1、关于Java序列化与反序列化:(1)作用:1、实现对象状态的保存到本地,以便下一次启动虚拟机的时候直接读取保存的序列化字节生成对象,而不是初始化对象;2、实现对象的网络传输(RMI分布对象);3、实现对象的深拷贝。 一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。 二:java对象序列化不仅保
2014-03-31 20:39:46
2114
原创 Java性能优化系列之四--Java内存管理与垃圾回收机制详解
1、JVM运行时数据区域。(1)、程序计数器:每一个Java线程都有一个程序计数器来用于保存程序执行到当前方法的哪一个指令。此内存区域是唯一一个在JVM Spec中没有规定任何OutOfMemoryError情况的区域。(2)、Java虚拟机栈:该块内存描述的是Java方法调用的内存模型,每个方法在被执行的时候,都会同时创建一个帧(Frame)用于存储本地变量表、操作栈、动态链接、方法出入
2014-03-31 20:36:09
1789
原创 Java性能优化系列之三--并发程序设计详解
1、并发程序设计模式: (1)、Future-Callable模式:FutureTask类实现了Runnable接口,可以作为单独的线程运行,其Run方法中通过Sync内部类调用Callable接口,并维护Callable接口的返回值。当调用FutureTask.get()的时候将返回Callable接口的返回对象。Callable接口是用户自定义的实现,通过实现Callable接口的cal
2014-03-31 20:33:15
1729
原创 Java性能优化系列之二--程序优化
常用的程序设计优化技巧:1、字符串优化处理(1)String类的特点:不变性、针对常量池的优化(String.intern()方法的意义)(2)subString方法的内存泄漏:(3)字符串分割和查找不要使用split函数,效率低,而是使用StringTokenizer或者indexOf结合subString()函数完成分割。(4)用charAt()方法代替startWith(
2014-03-31 20:28:22
1359
原创 Java性能优化系列之一--设计优化
1、善于利用Java中的设计模式:享元模式、代理模式、装饰器模式等。详见我的上一篇博客白话设计模式http://blog.youkuaiyun.com/xiaocaidexuexibiji/article/details/225086792、Java中的缓冲区:(1)缓冲最常用的场景就是提高IO速度:比如BufferedWriter可以用来装饰FileWriter,为FileWriter加上缓
2014-03-31 20:24:44
1235
原创 通俗易懂设计模式系列--白话设计模式
抽空有整理了一下设计模式,用自己的话总结了一下,自认为通俗易懂。简单工厂模式:包括三种角色,抽象产品、具体产品和工厂角色。其中在工厂直接完成对具体产品的创建。工厂模式的好处是需要创建对象的时候只需要输入一个正确的参数就可以获得所需要的对象,而无需知道其创建细节,这种模式将对象的创建和对象业务的处理分离,降低系统的耦合度,使得两者修改起来都相对容易。工厂方法模式:该模式包括四种角色,
2014-03-29 18:55:16
3991
1
原创 如何编译Mahout源代码并导入到eclipse中
前提: 1.系统正确安装了maven。 2. eclipse版本采用kepler,该版本自带了maven插件。原因: 为什么要编译源码呢?其实直接用二进制包更省事,只是为了方便读取源码和修改源码。maven操作的一些介绍: 1.下载最新源码。 通过mahout的SVN库来下载Mahout的最新版本,Mahout将被下载到当前目录:svn co
2014-01-17 12:34:22
2359
转载 hadoop1.0.4+zookeeper-3.4.5+hbase-0.94.1集群安装
介绍的很详细的一个帖子,本人按照步骤一步一步最后安装成功,记录下。。。。一,环境:1,主机规划:集群中包括3个节点:hadoop01为Master,其余为Salve,节点之间局域网连接,可以相互ping通。机器名称IP地址hadoop01192.168.1.31
2014-01-13 22:41:01
2179
原创 eclipse 利用windows资源管理器打开当前文件所在目录 | eclipse下的Java工程路径问题
步骤:1.打开eclipse; 2.Run-->External Tools-->External Tools Configurations... 3.new launch configuration-->默认名称为:pathsexplorer(可以自定义一个名称如:OpenFolderContainingFile)-->Location 里面填 :
2014-01-03 15:48:10
2413
原创 开放数据集合分享
巧妇难为无米之炊,如果没有数据,大数据Hadoop系统再大也无意义了。给大家推荐几个数据集合1.【Stanford Dataset】来源于美国斯坦福大学SNAP实验室,数据子集合涉及社交网络,Ground-Truth社区网络,通信网络,引用网络,协同网络,Web图挖掘等16个大类,138个小类,总大小达45.9G。下载地址:http://t.cn/zjdJhPf2.【Sogou
2013-12-22 15:03:52
756
转载 hadoop单元测试方法--使用和增强MRUnit
1前言 hadoop的mapreduce提交到集群环境中出问题的定位是比较麻烦的,有时需要一遍遍的修改代码和打出日志来排查一个很小的问题,如果数据量大的话调试起来相当耗时间。因此有必要使用良好的单元测试手段来尽早的消除明显的bug(当然仅有单元测试是不够的,毕竟跟集群的运行环境还是不一样的)。 然而做mapreduce的单元测试会有一些障碍,比如Map和Redu
2013-12-21 20:34:03
1628
转载 使用 Eclipse 远程调试 Java 应用程序
本文转载自https://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/远程调试对应用程序开发十分有用。例如,为不能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务不能中断的 Web 服务器)调试程序。其他情况包括:运行在内存小或 CUP 性能低的设备上的 Java 应用程序(比如移动设备)
2013-12-18 22:15:18
774
转载 纯真IP数据库格式详解
摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础。不过关于其格式的文档却非常之少,后来终于在网上找到了一份文档,得以了解其内幕,不过那份文档寥寥数语,也是颇为耐心才读明白。在这里我重写一份,以此做为LumaQQ开发者文档的一部分,我想还是必要的。本文详细介绍了纯真IP数据库的格式,并且给出了一些Demo以供参考。Luma, 清华大学
2013-12-10 17:12:02
1203
转载 Flume日志收集
一、Flume介绍Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。设计目标:(1) 可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数
2013-12-10 12:18:15
662
转载 Java NIO类库的各个类关系图
下面这张图给出了nio类库的各个类之间的关系,这样你就能知道该怎样移动和转换数据了。举例来说,如果你想把byte数组写进文件,你得先用ByteBuffer.wrap( )方法把这个byte数组wrap成buffer,再用getChannel( )在FileOutputStream上打开一个channel,然后才能用ByteBuffer把数据写入FileChannel。 注意,Byte
2013-12-09 12:34:53
1468
转载 Java字符编码研究
1. 概述本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587",UTF编码就是"e4b8ad e69687"。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示"。2. 编码
2013-12-08 20:00:29
815
转载 JAVA的网络编程
网络编程网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习。在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的。首先来问一个问题:你会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果
2013-12-07 21:17:32
805
原创 Java IO流详尽解析
流的概念和作用学习Java IO,不得不提到的就是Java IO流。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流字符流和字节
2013-12-03 21:09:59
2322
原创 Java 23种设计模式详尽分析与实例解析之三--行为型模式
Java设计模式行为型模式职责链模式模式动机:职责链可以是一条直线、一个环或者一个树形结构。链上的每一个对象都是请求处理者,职责链模式可以将请求的处理组织成一条链,并使请求链传递,由链上的处理者对请求相应的处理,客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链上即可,将请求的发送者和请求的处理者解耦。模式定义:使很多对象都有机会处理请求,从而避免请求的发送者和
2013-12-02 21:43:33
1201
1
原创 Java 23种设计模式详尽分析与实例解析之二--结构型模式
Java设计模式结构型模式适配器模式模式动机:在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。通常情况下,客户端可以通过目标类的接口访问它所提供的服务。又是,现有的类可以满足客户的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是现有类中方法名与目标类中定义的方法不一致等原因所导致的。在这种情况下,现有的接口需要转化为客户类所期望的接口,这样保证
2013-12-02 20:58:28
1051
1
原创 Java 23种设计模式详尽分析与实例解析之一--创建型模式
面向对象的设计原则常用的面向对象设计原则包括7个,这些原则并不是独立存在的,它们相互依赖、互为补充。Java设计模式创建型模式简单工厂模式模式动机:考虑一个简单的软件应用场景,一个软件系统可以提供多个外观不同的按钮(如圆形按钮、矩形按钮、菱形按钮等),这些按钮都源自同一个基类,不过在继承基类后不同的子类修改了部分属性从而使得它们可以呈现不同的外观,如果我
2013-12-02 19:59:05
1110
1
转载 数学之美
数学是美丽的,哪里有数哪里就有美。 数学的定义是研究数量关系和空间形式的一门科学。但有句名言说:数学比科学大得多,因为它是科学的语言。数学不仅用来写科学,而且可用来写人生。所以说数学是一切学科的基础,是核心学科,就像人们知识金字塔的底部垫基石,所以数学被誉为科学的皇后。 数学分基础和应用两部分组成的,前者追求真和美,后者是把这种真和美应用到现实生活。 一切美的事物都有
2013-12-02 14:07:25
935
原创 m2eclipse插件地址,mark一下
刚刚下了个eclipse,想装个mvn插件,发现好几个提供的下载地址都失效了,在官网折腾了半天,终于是找到了,记录下。 http://nexus.tesla.io:8081/nexus/content/sites/m2e.extras/这个地址列表,找到了我的安装版本http://nexus.tesla.io:8081/nexus/content/sites/m2e.extras/m2e-1.
2013-11-26 21:05:17
953
转载 为什么匿名内部类参数必须为final类型
1) 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的2) 为什么JAVA中要加上一条限制:只能访问final型的局部变量?3) JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理
2013-11-22 08:43:38
859
转载 Hadoop | SequenceFile doesn't work with GzipCodec without native-hadoop code 异常解决
http://guoyunsky.diandian.com/post/2012-04-12/18498037
2013-11-18 17:36:30
2307
原创 Hadoop运行错误记录
org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/hadoop/maven/test.pig could only be replicated to 0 nodes, instead of 1今天运行hadoop集群出现上面的错误,这个错误的意思是datanode不可用,有可能是datanode没启动。
2013-11-13 20:44:07
700
原创 Centos下m2eclipse插件地址,mark一下
刚刚下了个eclipse,想装个mvn插件,发现好几个提供的下载地址都失效了,在官网折腾了半天,终于是找到了,记录下。 http://nexus.tesla.io:8081/nexus/content/sites/m2e.extras/这个地址列表,找到了我的安装版本http://nexus.tesla.io:8081/nexus/content/sites/m2e.extras/m2e-1.
2013-11-13 14:50:40
1048
原创 vim pig语法高亮
http://www.vim.org/scripts/script.php?script_id=2186install details1) copy pig.vim file into your ~/.vim/syntax/ directory; 2) add the following three lines to your ~/.vimrc file:
2013-11-11 19:54:46
1904
转载 centos下vi的用法大全
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。1、vi的基本概念 基本上vi可以分为三种状态,分
2013-10-30 22:32:41
723
原创 备忘贴:Ubuntu下Hadoop单结点部署
Ubuntu下Hadoop单结点部署1.准备[1] 操作系统:Ubuntu 10.10[2] Java开发环境:JDK 6.0以上,这里选择Java SE 6 Update 29,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html[3] Hadoop安装
2013-10-30 12:52:26
667
转载 Linux下查看文件和文件夹大小
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 下面分别简要介绍 df命令
2013-10-28 18:56:56
592
转载 Hadoop手动启动过程
注:不失一般性,我们这里以dfs的启动为例子,mapred的启动道理是一样的。Dfs的启动脚本实际上是$HADOOP_HOME/bin/start-dfs.sh,start-all.sh也正是通过调用这个脚本来达到启动整个 HDFS的目的。start-dfs.sh会按顺序启动namenode, datanode(s)和secondnamenode,我在这里将一一说明:1. 启动Name
2013-10-27 13:01:25
1222
原创 各种SQL在PIG中实现
我这里以Mysql 5.1.x为例,Pig的版本是0.8同时我将数据放在了两个文件,存放在/tmp/data_file_1和/tmp/data_file_2中.文件内容如下:tmp_file_1:Txt代码 zhangsan 23 1 lisi 24 1 wangmazi 30 1 meinv 18 0 dam
2013-10-27 11:56:13
677
原创 Pig学习总结
Pig是一种探索大规模数据集的脚本语言。pig是在HDFS和MapReduce之上的数据流处理语言,它将数据流处理翻译成多个map和reduce函数,提供更高层次的抽象将程序员从具体的编程中解放出来。Pig包括两部分:用于描述数据流的语言,称为Pig Latin;和用于运行Pig Latin程序的执行环境。Pig Latin程序有一系列的operation和
2013-10-27 11:54:45
1495
原创 Hadoop HDFS支持的所有命令
hadoop fs 查看Hadoop HDFS支持的所有命令 hadoop fs –ls 列出目录及文件信息 hadoop fs –lsr 循环列出目录、子目录及文件信息 hadoop fs –put test.txt /user/sunlightcs 将本地文件系统的test.txt复制到HDFS文件系统的/user/sunlightcs目录下 h
2013-10-27 08:25:50
763
转载 不懂这显然您不专业!云计算术语大全
云计算实用之路漫漫其修远兮,当今,各厂商对云计算的定义不一,云计算的标准更是各行其道。在这云计算的混战时代,产生的有关云计算的术语更是目不暇接,整个IT界似乎正在迎来一个云计算术语爆炸的时代,其中有关于云计算概念本身,也有关于厂商的云策略和云产品的。本文通过对现有的云计算资料进行梳理,列出了60多条云计算相关的术语及其解释,以供参考。 1. 云计算 关于云计算的定义,目前为止至
2013-10-12 16:15:16
1463
转载 Mahout分类算法效果评估指标
mahout中有许多分类器,包括Naive Bayes, Complementary Naive Bayes, Stochastic Gradient Descent, Support Vector Machine, Random Forest等。评估一个分类器(模型)的好坏,需要有一些指标,而在mahout中提供了下列衡量指标:1. %-correct (ConfusionMatr
2013-10-09 16:00:46
879
原创 Mahout0.8中Bayes分类器的原理与使用
1、Mahout0.8中Bayes Classifier的使用方法 在Mahout in action一书中,有通过bin/mahout ...命令行对20newsgroups进行Bayes分类的详细阐述,不过书上使用的版本是0.5的,该版本有很多bug,产生莫名其妙的错误。其中主要牵涉到三个命令,prepare20newsgroups,trainclassifier,testclas
2013-10-08 21:59:36
1573
转载 基于Naive Bayes文本分类算法
琢磨了两天,对于朴素贝叶斯的原理弄得很清楚,可是要做文本分类,看了好多文章知道基于朴素贝叶斯公式,比较出后验概率的最大值来进行分类,后验概率的计算是由先验概率与类条件概率的乘积得出,先验概率和类条件概率要通过训练数据集得出,即为朴素贝叶斯分类模型,将其保存为中间结果,测试文档进行分类时调用这个中间结果得出后验概率。大的思路理解的很清楚,可是中间的细节可以说很重要的部分没弄明白,中间得出的模型怎样和
2013-10-08 21:31:40
813
Apache_Pig的一些基础概念及用法总结
2013-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人