
深入java
文章平均质量分 85
wf1982
这个作者很懒,什么都没留下…
展开
-
javaCode解密系列---深入java类加载器2
<br /><br />转自http://www.infoq.com/cn/articles/cf-Java-class-loader<br /> <br />本文接着上一篇的话题,讨论Java类的加载、链接和初始化。Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中,对开发人员直接可见的是Java类的加载,通过使用Java类加载器(转载 2011-01-10 17:56:00 · 612 阅读 · 0 评论 -
MR任务中默认counter意义
Counter有"组group"的概念,用于表示逻辑上相同范围的所有数值。MapReduce job提供的默认Counter分为五个组,下面逐一介绍。这里也拿我的一份测试数据来做详细比对,它们会以表格的形式出现在各组描述中。 FileInputFormatCounters 这个group表示map task读取文件内容(总输入数据)的统计原创 2012-03-02 17:00:15 · 1919 阅读 · 1 评论 -
hive 全排序优化
全排序Hive的排序关键字是SORT BY,它有意区别于传统数据库的ORDER BY也是为了强调两者的区别–SORT BY只能在单机范围内排序。考虑以下表定义:CREATE TABLE if not exists t_order( id int, -- 订单编号 sale_id int, -- 销售ID customer_id int, -- 客户ID produc原创 2012-03-19 15:56:39 · 5983 阅读 · 0 评论 -
Hprof使用及在Hadoop中MR任务使用
J2SE中提供了一个简单的命令行工具来对java程序的cpu和heap进行 profiling,叫做HPROF。HPROF实际上是JVM中的一个native的库,它会在JVM启动的时候通过命令行参数来动态加载,并成为 JVM进程的一部分。若要在java进程启动的时候使用HPROF,用户可以通过各种命令行参数类型来使用HPROF对java进程的heap或者 (和)cpu进行profiling的功转载 2012-03-22 16:54:24 · 3245 阅读 · 0 评论 -
hive udtf的使用
原文:http://blog.linezing.com/2011/03/hive%E4%B8%ADudtf%E7%BC%96%E5%86%99%E5%92%8C%E4%BD%BF%E7%94%A81. UDTF介绍UDTF(User-Defined Table-Generating Functions) 用来解决 输入一行输出多行(On-to-many mapin转载 2012-06-01 15:46:01 · 25303 阅读 · 1 评论 -
jvm实现深入讨论(不止于java堆)
转自:http://www.javaeye.com/topic/802573Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述:对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又是执行最基础工作的劳动人民——拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。转载 2011-02-15 18:06:00 · 951 阅读 · 0 评论 -
HBase存储架构
原文:http://www.blogjava.net/hengheng123456789/archive/2010/12/31/342074.html英文原文:http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.htmlHBase最隐秘的问题之一就是它的数据是如何存储的。虽然大多数用户都不会因为这个问转载 2012-07-11 22:22:11 · 6386 阅读 · 0 评论 -
hadoop默认参数
1 常用的端口配置1.1 HDFS端口 参数描述默认配置文件例子值fs.default.name namenodenamenode RPC交互端口8020core-site.xmlhdfs://ma转载 2012-08-14 18:47:08 · 14281 阅读 · 0 评论 -
Google Dremel 原理 - 如何能3秒分析1PB
原链:http://www.yankay.com/google-dremel-rationale/简介Dremel 是Google 的“交互式”数据分析系统。可以组建成规模上千的集群,处理PB级别的数据。MapReduce处理一个数据,需要分钟级的时间。作为MapReduce的发起人,Google开发了Dremel将处理时间缩短到秒级,作为MapReduce的有力补转载 2012-08-24 13:29:45 · 5720 阅读 · 0 评论 -
关于hadoop mapreduce的job cleanup阶段
近段时间发现好多分析的mr作业延迟1个小时到2个小时,其实那个作业平时可能会只需要20分钟。分析作业状态发现延迟是在job的cleanup阶段。 近段时间由于用户的增长及数据的持续飙升,集群作业越来越多,每个作业占用槽位也不断增长,导致集群槽位紧张,所以集群出现排队现象本来运算正常,但是如果整个作业setup、map、reduce都处理完了,仅剩cleanup(极其轻量)没执行完导原创 2013-03-29 18:33:36 · 11083 阅读 · 2 评论 -
Java的类加载器简述
类加载器是java设计中一项创新,独立于JVM之外,类如何加载可以由JVM外部实现。如早期的Applets,曾经大红的OSGI等。类加载器就是加载类的。一个jvm中可以存在若干个类加载器。相同的字节码因为类加载器不同,产生的实例肯定不同,即用instanceof 或者equal,isInstance()等方法对较相同字节码不同类加载器对象时返回均为false。开发者可以继承java原创 2013-08-31 12:18:49 · 6689 阅读 · 0 评论 -
splunk 测试报告
Splunk使用测试报告一、技术组件及原理1. Indexer 将本地或远程日志数据做索引。工作机制:可以对具有时间线的任何格式的日志数据做索引。这个索引动作是基于时间戳将数据打乱后放入events中,每个events包含时间戳、host、source、source type属性。一般一行日志就是一个event,如果是xml logs,可能被分解成多个events.当用户搜索时,原创 2012-01-19 18:21:28 · 7681 阅读 · 1 评论 -
hadoop作业调优参数整理及原理
在淘宝重新看了下hadoop作业相关参数的知识,一并转载过来http://www.tbdata.org/archives/1470/comment-page-1#comment-5341hadoop作业调优参数整理及原理1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时转载 2012-01-14 11:35:28 · 1138 阅读 · 1 评论 -
下一代Apache Hadoop MapReduce框架的架构
转自 http://dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/ 懂的博客背景随着集群规模和负载增加,MapReduce JobTracker在内存消耗,线程模型和扩展性/可靠性/性能方面暴露出了缺点,为此需要对它进行大整修。需求当我们对Hadoop MapRed转载 2012-01-14 11:20:23 · 1466 阅读 · 0 评论 -
javaCode解密系列---深入java类加载器1
转自 http://www.infoq.com/cn/articles/cf-java-byte-code【编者按】Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展。但是对于Java语言的深度理解和运用,毕竟是很少会有人涉及的话题。InfoQ中文站特地邀请IBM高级工程师成富为大家撰写这个《Java深度历险》专栏,旨在就Java的一些深度和高级特性分享他的经验。相关赞助商汇集最新RIA技术相关资源,提供Flash开发平台相关工转载 2011-01-10 17:50:00 · 651 阅读 · 0 评论 -
Sun JVM内存管理与Java虚拟机(JVM)垃圾回收器的工作机制
<br /><br />转自:http://dev.firnow.com/course/3_program/java/javajs/20100719/453020.html<br />内存管理和垃圾回收是JVM非常关键的点,对Java性能的剖析而言,了解内存管理和垃圾回收的基本策略非常重要。本篇对Sun JVM 6.0的内存管理和垃圾回收做大概的描述。<br /> 1.内存管理<br /> 在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的对象,对于短转载 2011-02-15 17:37:00 · 1342 阅读 · 0 评论 -
hadoop基准测试
Hadoop 集群基准测试一、测试条件集群完全安装配置后,应立即开始基准测试。基准测试时集群里不应该运行其他一切任务。二、测试目标1. 硬盘故障:新系统最常见的故障。可以通过运行高强度的IO基准测试程序集中测试。例如TestDFSIO2. MapReduce的原创 2011-09-09 15:24:18 · 9246 阅读 · 1 评论 -
文件系统ext3的文件大小限制
http://www.aslibra.com/blog/post/ext3_single_file_size_limit.php想解决缓存的性能问题,准备选用BerkeleyDB作为存储方式,但会有单个文件的问题。BerkeleyDB的性能没有问题的,DB库非常紧凑,转载 2011-10-10 18:28:24 · 4451 阅读 · 0 评论 -
dip-date-analyze业务逻辑图
dip-date-analyze从9月初正式开发以来,目前进展顺利。之前曾放出一个总体架构图,今天在此发哥业务逻辑运行图。原创 2011-11-17 12:49:25 · 1299 阅读 · 1 评论 -
2011hadoop技术大会实时数据分析
facebook在这次大会上谈了facebook的进展。他们以前架构是 applicationserver 将日志近乎实时的通过facebook自己的流传送工具scribe,传送到nfs。然后通过一个copyier或者loader(这里考虑应该是使用hive的load 到hive内表中)每小时载入hive/hadoop,r然后通过每天的pipeline jobs 运行任务 将结原创 2011-12-06 23:55:57 · 2738 阅读 · 1 评论 -
几个与JVM相关的JDK工具:jps, jstat, jmap
在项目中遇到OOM(Out of Memory)的问题,为了分析内存和JVM的垃圾回收器GC问题,一并把JVM相关的一些工具也研究了一下:jps:Java进程查看工具,实际上它和Unix/Linux上面的ps命令的功能差不多jstat:Java内存使用情况监控工具jmap:输出JVM内存中对象的工具这些工具位于JAVA_HOME/bin目录下?一转载 2011-10-14 14:08:40 · 1747 阅读 · 0 评论 -
使用mapjoin效率对比
MAPJION会把小表全部读入内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配,由于在map是进行了join操作,省去了reduce运行的效率也会高很多使用一个表测试,该表时5分钟表,数据很少,大概60多w。测试日志里包含多个字段,其中有uid和uip。测试场景为给出2个uid,取uid共同的uip。三个不同uidselect /*+原创 2011-12-26 17:09:51 · 3954 阅读 · 0 评论 -
关于12306网络购票的架构方面思考
自从2012开始那天,网络购买火车票成了国内最火的话题,12306.cn的Alexa排名从三个月前的全球万位以外迅速窜升至今日的全球排名1560位、中国排名102位。并且成为第11大电商网站。但是由于铁道部公开的种种原因,12306也让人诟病不止。 其中最大的原因就是登陆12306慢,页面打不开,好不容易打开了,无法查询票额,无法购买票,甚至只收钱不吐票:),在放票时间更是非常突出。原创 2012-01-08 00:23:39 · 17730 阅读 · 34 评论 -
map join优化
转载:http://www.gemini5201314.net/hadoop/hadoop-%E4%B8%AD%E7%9A%84%E4%B8%A4%E8%A1%A8join.html为数据分析中经常进行的join 操作,传统DBMS 数据库已经将各种算法优化到了极致,而对于hadoop 使用的mapreduce 所进行的join 操作,去年开始也是有各种不同的算法论文出现,讨论各种算法转载 2012-01-14 11:09:47 · 6742 阅读 · 0 评论 -
Oozie介绍
首先本人以前还真不知道Oozie这个东东,经别人说才知道,所以感觉也是比较惭愧。毕竟正在做的项目DIP-DATA-ANALYZE与这个有些共同处,就是提供类似工作流的机制更好的调度任务。不过Oozie支持的更多,支持了pig,直接mr,streaming。我们目前是基于hive的,当然也可以支持streaming,mr,不过目前还没有。 另外一个不同是Oozie使用自定义的xml原创 2012-01-14 15:35:27 · 23968 阅读 · 1 评论 -
cdh4.2 在mac OS X10.9.1下编译
编译 hadoop-2.0.0-cdh4.2下载 tar 包http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH-Version-and-Packaging-Information/cdhvd_topic_6_1.html 安装maven 3.0.5 并配置环境变量 M原创 2014-01-15 18:47:44 · 9031 阅读 · 0 评论