自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 nginx开启gzip

在nginx配置http 节下: gzip on; gzip_proxied any; gzip_types text/plain text/css text/javascript text/xml application/xml application/xhtml+xml application/xml+rss application/json;gzip

2013-08-27 13:27:01 3738

原创 一次让人峰回路转, 颜面扫地的trouble shooting, Apache Pig

最近集群计算迁移, 某Pig脚本在新集群上运行失败, 排除了文件损坏等问题, 还是每次复现失败. 日志如下:表面原因是FileSystem 被关闭, 难道是Pig版本代码的bug, 关闭了不该关闭的FileSystem?第一次尝试带着这个思路, 写了btrace脚本跟踪DFSStream的close方法. 脚本如下:import com.sun.btrace.ann

2013-03-22 10:39:46 4834

转载 给分布式系统开发新人的建议

Notes on Distributed Systems for Young Bloods原文链接: http://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/Distributed systems are different because they fai

2013-02-01 13:56:08 3141

原创 Spark 启动分析

Spark启动分析Spark进程 : Master: 负责集群资源分配. 当Client请求资源时将请求分配给某个WorkerWorker: 负责当前节点资源分配. 当收到Master的LaunchExecutor命令时分配资源,启动ExecutorExecutorBackend: 负责执行计算任务. 由Worker启动. 分为MesosExecutorBack

2013-01-22 17:12:53 4589 1

原创 java jps 失效问题

最近hadoop系统在升级后发现一个诡异的问题: jps命令返回的都是process information unavailable, jstack, jmap等所有使用attach api的命令都有类似问题.以为是Jps有问题, 查看Jps源代码, 得知使用 jps -J-Djps.debug=true -J-Djps.printStackTrace=true 可以获得J

2012-11-24 14:24:18 12089 2

原创 Apache Pig ObjectSerializer优化

最近又遇到一次Tasktracker OOM的问题, 分析过程如下:1. 用MemoryAnalyzer分析heap dump, 如下图:发现又是大量的String类型的内存占用.进一步分析String的持有,如下:发现是JobConf 对象持有了大量的string. 这个已经不奇怪了, hadoop要放很多job相关的配置到JobConf中,很多JobTrac

2012-11-18 19:07:19 2962

原创 一个简单的日志收集

随着系统节点越来越多, 看应用日志成为一个头疼的事情, 所以想做一个应用日志收集. 看了一下log4j的SocketAppender, 居然使用java 自带序列化, 还不提供server, 挺讨厌. 倒不如自己写一个.系统需求如下:聚合多台服务器日志无过大性能损耗近实时提供log4j和erlang客户端简单用erlang实现了一个server地址 : https://

2012-09-17 10:00:58 4304

原创 Apache Pig DataBag spill 文件过多导致OOM问题

最近又遇到Pig job失败问题, 将heap dump拉下来分析发现很可笑:怎么也不会想到一个DeleteOnExitHook也会导致OOM翻看java.io.File 的源代码, 如下: public void deleteOnExit() { SecurityManager security = System.getSecurityManager(); if (

2012-08-10 16:45:57 3211

原创 Java进程OutOfMemoryError与catch Throwable

如果java进程发生OOM, 代码是否可以catch住这个异常?答案是可以的. 测试代码如下:public class TestOOM{ public static void main(String[] args) throws Exception{ int ten_mb = 1024 * 1024 * 10; int count = 10; new Thread(){

2012-08-10 15:55:31 8385 1

原创 Apache Pig Reducer OOM 解决 -- Big DataBag

最近遇到一次Pig的reducer频繁OOM的问题, 记录一下解决过程.问题描述有一段pig代码, 示例如下: Data = group SourceData all; Result = foreach Data generate group, COUNt(SourceData); store Result into 'XX';简单的使用group all 后计

2012-07-10 18:33:47 4326

原创 Erlang Rebar 创建工程总结

Erlang的application类似Java中的工程, 有两种类型: 类库和独立运行的application. 好比java中的单纯的作为其他项目的类库(如memcached 客户端) 和 独立运行的工程(如hadoop), 并且可运行的application也是可以作为其他application的依赖的.工程目录结构使用rebar创建工程时, 两种application工程的

2012-07-08 22:56:30 8148

原创 erlang parameterized modules

最近在看mochiweb的源代码时, 发现一个有趣的用法:当一个http请求到达时: mochweb.erl:%% @spec new_request({Socket, Request, Headers}) -> MochiWebRequest%% @doc Return a mochiweb_request data structure.new_request({Socket

2012-03-30 11:03:43 3874

原创 [curator] Netflix Curator 使用

curator简介Netflix curator 是Netflix公司开源的一个Zookeeper client library,用于简化zookeeper客户端编程,包含一下几个模块:curator-client - zookeeper client封装,用于取代原生的zookeeper客户端,提供一些非常有用的客户端特性curator-framework - zookeeper

2011-12-25 15:22:24 23923 3

原创 Java GC 日志详解

Java GC日志可以通过 +PrintGCDetails开启以ParallelGC为例YoungGC日志解释如下(图片源地址:这里) :FullGC(图片源地址:这里):一目了然,一图胜千言

2011-10-22 00:12:04 25011 10

原创 分布式压力测试工具

是否有这样的场景:公司需要选型某类产品,需要你来做压力测试。运维部门分给你几台服务器,剩下的自己搞定。请问:你是如何做压力测试的?如何获取性能参数、系统负载的?如果需要测试的产品是分布式的,需要N台client压M台Server,又怎么办?数据分析如何做?你是否是每次手动

2011-09-20 23:51:11 8218

原创 erlang app file 讲解

每个erlang application需要一个app 文件,告诉erlang vm如何启动该程序。简单来说,格式如下:{application, ApplicationName, Properties}.其中,ApplicationName是一个atom(不知道如何

2011-09-06 15:08:38 4791

原创 最简单实用的profiler(适用于紧急排除线上故障)

       由于IDC的隔离性,在线上机部署YJP,JProfiler等GUI工具很是麻烦,尤其是排除线上故障的时候,一个简单实用的工或许能快速定位到问题,减少停机时间.       基于btrace写了一个最简单的profiler: 快速profile某个类的所有public方法的执行时间并输出.   安装:      首先安装btrace, 设置BTRACE_HOME环境变量

2011-06-19 17:42:00 3843

原创 突破 BTrace 安全限制

       普通情况下,Btrace脚本有诸多的限制:can not create new objects. can not create new arrays. can not throw exceptions. can not catch exceptions. can not make arbitrary instance or static method

2011-06-16 15:24:00 9257 2

原创 hadoop 启动脚本start-all.sh执行序列

     针对hadoop 0.21.0的启动脚本:start-all.sh ,其执行序列图如下:(图片链接地址在这里)其中,几乎所有的脚本都会执行hadoop-config.sh 因此在此图中没有画出注:hadoop 0.21.0开始,新剥离了hdfs 和 mapred两个脚本。  

2011-06-12 00:52:00 4722

原创 系统吞吐性能优化简述

系统吞吐量优化模型简述

2011-06-02 18:42:00 3566

原创 Hotspot JVM manageable 参数列表

JVM的manageable参数可以通过jmx进行修改(参见这里)此处列出所有的JVM中manageable的参数列表(参见openjdk ./hotspot/src/share/vm/runtime/globals.hpp)

2011-05-19 11:22:00 2385

原创 openJDK 与 Hotspot对应关系

<br />链接地址:https://gist.github.com/925323<br /> <br />由于某些原因,我贴在这里,供自己参考。Correspondence between Sun/Oracle JDK, OpenJDK and HotSpot VM versionsbuild dateSun/Oracle JDK VersionOpenJDK VersionHotSpot VM Version2006-11-291.6.0-b1051.6.0-b1052007-03-141.6.0_01

2011-05-19 11:10:00 5428 1

原创 JVM GC日志时间问题

JVM 参数-XX:+PrintGCTimeStamps仅仅打印相对时间,其实还有一个flag可以让jvm像其他日志一样打印真实的时间

2011-05-11 17:47:00 10183 2

原创 Resin关于最小内存设置

resin.conf 中有 设置,是resin内部有一个thread每隔10秒钟检查JVM剩余内存,如果free memory小于 2*min-free-memory,则执行Runtime.gc() 强制进行GC,如果使用-XX:+DisableExplicitGC 禁用显式调用GC,则该设置无效。对应的代码如下(com/caucho/server/resin/Resin.java): long minFreeMemory = _server.getMinFreeMemory(); if (minFre

2011-04-29 11:40:00 5269 1

原创 让hadoop远程调试飞

读hadoop源代码时,经常需要调试源代码。hadoop几乎所有的进程的启动最终全部依靠$HADOOP_HOME/bin/hadoop 脚本实现,开始就简单的在需要的地方添加JDWP的debug选项,做的多了,感觉不够自动化,简单修改了一下hadoop这个脚本,让自动化远程调试飞!

2011-04-25 22:08:00 4172 4

原创 确定hive shell的java进程的pid的一种方法

<br />使用hive的过程中,经常需要diagnose hive运行到了哪个地方,以便进行优化。jstack是常用的工具,可需要java 的process id。但是多个hive shell运行时jps得出的结果令人失望:<br /> <br />6874 org.apache.hadoop.util.RunJar -Xmx4096m -Dhadoop.log.dir=/home/hadoop/hadoop/bin/../logs -Dhadoop.log.file=hadoop.log -Dhadoo

2011-04-13 15:50:00 5915

原创 hadoop 重启后safemode问题

<br /> <br /> <br />safemode模式是hadoop在重启后检查所有datanode上的数据,并针对策略进行复制或者迁移。在safemode中,数据不能修改或者删除,hive也不能在safemode状态下的hadoop上运行。<br />如果需要强制推出safemode,需运行:<br />${hadoop_home}/bin/hadoop dfsadmin -safemode leave  <br />强制退出safemode<br /> <br />至于强制推出的后果,暂时还没有研

2011-04-13 15:41:00 2240

原创 java.security.SecureRandom导致jetty、hadoop启动受阻问题

众所周知,hadoop

2011-04-01 21:58:00 6792 1

原创 java.lang.NoSuchMethodError问题处理

一般在项目依赖比较复杂或者java运行的环境有问题时同一类型的jar包有不同版本存在,本质上说是JVM找不到某个类的特定方法,也就是说JVM加载了错误版本的类。出现该问题的情形一般有一下几种:   1、项目依赖复杂。不使用maven管理项目依赖时更容易出现该问题。              处理的方法是: 如果使用maven,执行maven dependency:tree 人工排除   2、运行环境问题。一般java web程序都运行在容器中,tomcat等。如果容器中已经存在了某个版本的jar包并已经加载

2011-03-30 13:11:00 180970 10

原创 btrace sizeOf 与 jmap -histo中对象大小说明

        众所周知,btrace中可以使用 com.sun.btrace.BTraceUtils.sizeof(Object)来计算传入的对象的大小;jmap -histo中也可以显示heap中对象大小信息,到底这两个显示的object size是“浅大小” 还是 “深大小”?        简单测试一下:BTraceUtils.sizeof(Object):        首先来看btrace,被测试代码如下:public class TestBtrace{ private sta

2011-01-27 16:11:00 3698

原创 JVM 看不到某些异常的stacktrace问题

      今天又有同事问起这个事情,所以写个blog记录一下。      在java 1.5的release notes里面可以看到这样一句话:     The compiler in the server VM now provides correct stack backtraces for all "cold" built-in exceptions. For performance purposes, when such an exception is thrown a few times, th

2011-01-27 11:55:00 8883 1

原创 Java 反射调用的一种优化

<br />      写一些Java框架的时候,经常需要通过反射get或者set某个bean的field,比较普通的做法是获取field后调用java.lang.reflect.Field.get(Object),但每次都这样调用,能否有优化的空间呢?<br /> <br />答案是有。<br />第一种:<br />      由于每次都是重复的调用,所以想到了缓存每个bean的field,但这样做还是不够,所以想到了写一个code generator。通过生成代码的方式,get或者set每个bean的

2010-12-16 14:02:00 11946 3

原创 simple profiler

simple profiler1、概述   做一个无侵入性的Java性能分析工具,使用的技术有:sun attach api, java instrument api, java bytecode, asm framework2、使用方式:   参数:   javapid                  - java 进程号   profile type            - profile  类型,参见profile类型介绍   class name            - 需要pro

2010-11-10 23:11:00 1263

原创 Gson 对 Map 嵌套类型的序列化与反序列化

Gson 对 Map 嵌套类型的序列化与反序列化样仅仅解决了gson对于嵌套的Map类型的序列化与反序列化,并且要求Map中的value为primative type orMap(代码42行,使用“{”作为判断是否为complex value type)

2010-10-09 17:26:00 12160

原创 eclipse调试JDK内部源代码

eclipse默认是无法调试JDK源代码的,即使添加了src.zip 作为source code也不能解析stack上的变量,只能看到类成员变量。原因很简单,JDK的源代码是使用 javac -g:none 参数进行编译的,所以代码里面没有任何的debug info。解决方式也同样简单:重新编译JDK的源代码。简单写了一个shell脚本,只要设置了 $JAVA_HOME 变量,就可以实现#!/bin/shif [ -z "$JAVA_HOME" ]then echo "Must set JAVA

2010-10-09 00:24:00 3304 1

原创 Java Btrace中sizeOf问题

<br /> <br /> <br />com.sun.btrace.BTraceUtils.sizeof(Object)方法返回的是对象的浅大小,也就是只是对象本身的大小,不包括对象依赖的传递闭包的对象大小

2010-08-04 14:21:00 1111

原创 email统计分析

  awk -F '@' '{print $2}' 输入文件 | sort -n|uniq -c|sort -n -r&gt; 结果文件

2010-06-08 16:53:40 462

原创 常用的http请求抓包工具

firebughttpfoxwiresharklive http header 

2010-05-12 14:30:47 460

原创 jsp中使用EL

  &lt;?xml version="1.0" encoding="UTF-8"?&gt;  &lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation=

2010-05-10 12:11:55 213

原创 linux 查看dns信息

ifconfig 可以查看网络设备及IP地址,子网掩码等信息route 可以查看路由信息DNS直接查看文件:cat /etc/resolv.conf

2010-05-09 14:28:37 445

空空如也

空空如也

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

TA关注的人

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