java命令相关

search.yahoo.com

ubuntu下java home目录是
tianzhao@tianzhao-VirtualBox:~/hadoop-0.20.2-cdh3u0/conf$ echo $JAVA_HOME
/usr/

相关java-options: -server -Xmx40g -Xms40g -Xmn10g -XX:MaxDirectMemorySize=1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC

参数的含义
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
-vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

http://engineering.linkedin.com/garbage-collection/garbage-collection-optimization-high-throughput-and-low-latency-java-applications

https://code.google.com/p/gclogviewer/


bin/hadoop 
HADOOP_OPTS="$HADOOP_OPTS -Dcom.sun.management.jmxremote.port=22801 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

-XX:+HeapDumpOnOutOfMemoryError

config/hadoop-env.sh
#export HADOOP_OPTS="-server -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -verbosegc -XX:+PrintGCDetails -XX:GCHeapFreeLimit=5 -Xms400m -Xmx400m  -Xmn60m"
export HADOOP_OPTS="-server -XX:+HeapDumpOnOutOfMemoryError"
export HADOOP_OPTS="-server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./java_pid<pid>.hprof"

netstat -na|grep 22801 查看22801端口是否已在监听。如果没有请检查你的配置。
jconsole
ip:22801

gc优化设置:
http://www.slideshare.net/cuonghuutran/gc-andpagescanattacksbylinux?from_search=37

$ jps
4704 Jps
12752 JobShell
$jps -mlVv

$ jstack 12752
$ jstack -l 12752
$ jmap -heap 12752  
$ jmap -dump:format=b,file=jmap.bin 12752  
jinfo:打印JVM启动内部信息,譬如启动参数、JVM版本、操作系统信息等,具体可参见JVM Manage API的OperatingSystem和Runtime这两个Bean,本功能基于JVM Manage API实现。最常用的使用格式:
jinfo pid
jstat:一个内存和垃圾回收情况的统计工具
jmap:当前的堆内存信息dump,JDK6中支持dump到一个文件,由其他分析程序对堆内存进行分析(譬如jhat/Eclipse Memory Anaylzer)。

jmap -histo:live 30255 > jmapHisto.txt
jmap -histo 30255  //不会触发full gc, -histo:live会触发full gc
If you run jmap -histo:live, that will force a full GC on the heap before it prints anything out.

主动触发full gc 的脚本:
#!/bin/bash
for i in `ps aux | grep -F regionserver | grep -vF grep | awk '{print $2}'`; do
echo $i
jmap -histo:live $i > /dev/null
done

JConsole / Visual VM

java.io.tmpdir = /tmp
java.home = /usr/java/jdk1.6.0_21/jre
user.dir =
user.home =
user.name =

# 输出方式(Append)为覆盖方式
# DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:
# 1)'.'yyyy-MM: 每月
# 2)'.'yyyy-ww: 每周
# 3)'.'yyyy-MM-dd: 每天
# 4)'.'yyyy-MM-dd-a: 每天两次
# 5)'.'yyyy-MM-dd-HH: 每小时
# 6)'.'yyyy-MM-dd-HH-mm: 每分钟

log4j.appender.DRFA.DatePattern=.yyyy-MM-dd


javap   查看class文件的接口和实现方法。
jar xvf /home/hadoop/hive/lib/hive_contrib.jar



Mat、BTrace、YourKit Java Profiler
tcpdump

jmx
https://github.com/zhongl/jmxero/wiki/%E5%8F%AA%E7%94%A8%E4%BA%94%E5%88%86%E9%92%9F%E4%B8%BA%E7%B3%BB%E7%BB%9F%E5%AE%9E%E7%8E%B0%E5%9F%BA%E4%BA%8EJMX%E7%9A%84%E7%9B%91%E6%8E%A7

http://www.ibm.com/developerworks/cn/java/j-memoryanalyzer/index.html

编码:
深入分析 Java 中的中文编码问题
http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/
使用 Java 语言进行 Unicode 代理编程
http://www.ibm.com/developerworks/cn/java/j-unicode/index.html
http://www.ibm.com/developerworks/cn/java/jsp_dbcsz/index.html

jar -tf test.jar
在 test.jar 已经存在的情况下,可以查看 test.jar 中的内容

perftools查看堆外内存并解决hbase内存溢出
http://www.85java.com/thread-16703-1-1.html

http://download.oracle.com/javase/6/docs/jdk/api/attach/spec/index.html

http://kenwublog.com/java6-jvm-options-chinese-edition-published
http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm
http://rdc.taobao.com/team/jm/
http://kenwublog.com/hbase-performance-tuning

理解Heap Profling名词-Shallow和Retained Sizes:
http://kenwublog.com/understand-shallow-and-retained-size-in-hprofling

分析和优化云集群性能
http://www.ibm.com/developerworks/cn/cloud/library/cl-cloudclusterperformance/index.html

探索 ConcurrentHashMap 高并发性的实现机制
http://www.ibm.com/developerworks/cn/cloud/library/cl-cloudclusterperformance/index.html
通过分析 JDK 源代码研究 Hash 存储机制
http://www.ibm.com/developerworks/cn/java/j-lo-hash/index.html

Java 性能监控
关于 Java 性能监控您不知道的 5 件事,第 1 部分
http://www.ibm.com/developerworks/cn/java/j-5things7.html
关于 Java 性能监控您不知道的 5 件事,第 2 部分
http://www.ibm.com/developerworks/cn/java/j-5things8.html
Top 10 Java Performance Troubleshooting Tools
http://java.dzone.com/articles/java-performance-troubleshooti
洞悉 Java 应用性能瓶颈的利器:Visual Performance Analyzer
http://www.ibm.com/developerworks/cn/java/j-lo-vpa/index.html
从转储(Dump)文件中调试并除错
http://www.ibm.com/developerworks/cn/java/j-memoryanalyzer/index.html
权威支持: 利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题
http://www.ibm.com/developerworks/cn/websphere/techjournal/0909_supauth/0909_supauth.html
内存详解
http://www.ibm.com/developerworks/cn/java/j-nativememory-aix/index.html
内存详解   理解 JVM 如何使用 Windows 和 Linux 上的本机内存
http://www.ibm.com/developerworks/cn/java/j-nativememory-linux/index.html
利用 Java dump 进行 JVM 故障诊断
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0903_suipf_javadump/index.html

必备的 Java 参考资源列表
http://www.ibm.com/developerworks/cn/java/j-javaresources.html


深入 Java 调试体系,第 4 部分: Java 调试接口(JDI)
http://www.ibm.com/developerworks/cn/java/j-lo-jpda4/index.html
基于 JVMTI 实现 Java 线程的监控
http://www.ibm.com/developerworks/cn/java/j-lo-jvmti/index.html
深入 Java 调试体系,第 2 部分: JVMTI 和 Agent 实现
http://www.ibm.com/developerworks/cn/java/j-lo-jpda2/index.html

深入探讨 java.lang.ref 包
http://www.ibm.com/developerworks/cn/java/j-lo-langref/index.html
在 JNI 编程中避免内存泄漏
http://www.ibm.com/developerworks/cn/java/j-lo-jnileak/index.html

出色的 “清洁工具” —— 理解 IBM Java 垃圾收集器,第 2 部分: 垃圾收集
http://www.ibm.com/developerworks/cn/java/i-garbage2/index.html
Java 技术,IBM 风格: 垃圾收集策略,第 2 部分
http://www.ibm.com/developerworks/cn/java/j-ibmjava3/index.html


Java 动态代理机制分析及扩展,第 1 部分
http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/index.html


Java 类的热替换 —— 概念、设计与实现
http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/index.html
深入探讨 Java 类加载器
http://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html


基于 Ant 搭建敏捷开发过程中的持续集成环境
http://www.ibm.com/developerworks/cn/java/j-lo-antci/index.html

序列化
Java 序列化的高级认识
http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html
http://www.ibm.com/developerworks/cn/java/j-5things1/index.html

http://www.ibm.com/developerworks/cn/java/j-lo-streamleak/index.html

剖析使用 ObjectOutputStream 可能引起的内存泄漏
http://www.ibm.com/developerworks/cn/java/j-lo-streamleak/index.html


关于 JVM 命令行标志您不知道的 5 件事
http://www.ibm.com/developerworks/cn/java/j-5things11/index.html

常用 Java 静态代码分析工具的分析与比较
http://www.ibm.com/developerworks/cn/java/j-lo-statictest-tools/index.html

异常
Java 异常处理及其应用
http://www.ibm.com/developerworks/cn/java/j-lo-exception/index.html

使用 Antlr 处理文本
http://www.ibm.com/developerworks/cn/java/j-lo-antlrtext/index.html

使用 Eclipse 远程调试 Java 应用程序
http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/index.html
深入 Java 调试体系: 第 1 部分,JPDA 体系概览
http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/index.html

扩展 JDK 日志框架
http://www.ibm.com/developerworks/cn/java/j-lo-jdklogger/index.html

探索 Java 同步机制
http://www.ibm.com/developerworks/cn/java/j-lo-synchronized/index.html

通过零拷贝实现有效数据传输
http://www.ibm.com/developerworks/cn/java/j-zerocopy/index.html


健壮的 Java 基准测试,第 1 部分: 问题
http://www.ibm.com/developerworks/cn/java/j-benchmark1.html
健壮的 Java 基准测试,第 2 部分: 统计和解决方案
http://www.ibm.com/developerworks/cn/java/j-benchmark2/index.html

让开发自动化: 利用 Ivy 管理依赖项
http://www.ibm.com/developerworks/cn/java/j-ap05068/index.html

你可能感兴趣的:(java,hadoop,ubuntu)