- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想使用 HPROF 来分析我的 Hadoop 作业。问题是我得到了 TRACES
但 profile.out
文件中没有 CPU SAMPLES
。我在运行方法中使用的代码是:
/** Get configuration */
Configuration conf = getConf();
conf.set("textinputformat.record.delimiter","\n\n");
conf.setStrings("args", args);
/** JVM PROFILING */
conf.setBoolean("mapreduce.task.profile", true);
conf.set("mapreduce.task.profile.params", "-agentlib:hprof=cpu=samples," +
"heap=sites,depth=6,force=n,thread=y,verbose=n,file=%s");
conf.set("mapreduce.task.profile.maps", "0-2");
conf.set("mapreduce.task.profile.reduces", "");
/** Job configuration */
Job job = new Job(conf, "HadoopSearch");
job.setJarByClass(Search.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(NullWritable.class);
/** Set Mapper and Reducer, use identity reducer*/
job.setMapperClass(Map.class);
job.setReducerClass(Reducer.class);
/** Set input and output formats */
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
/** Set input and output path */
FileInputFormat.addInputPath(job, new Path("/user/niko/16M"));
FileOutputFormat.setOutputPath(job, new Path(cmd.getOptionValue("output")));
job.waitForCompletion(true);
return 0;
如何将 CPU SAMPLES
写入输出?
我在 stderr
上也有奇怪的错误消息,但我认为它不相关,因为当分析设置为 false 或启用分析的代码被注释掉时它也会出现。错误是
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.impl.MetricsSystemImpl).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
最佳答案
Yarn(或 MRv1)在您的工作完成后立即终止容器。不能将 CPU 样本写入您的分析文件。事实上,您的踪迹也应该被截断。
您必须添加以下选项(或您的 Hadoop 版本上的等效选项):
yarn.nodemanager.sleep-delay-before-sigkill.ms = 30000
# No. of ms to wait between sending a SIGTERM and SIGKILL to a container
yarn.nodemanager.process-kill-wait.ms = 30000
# Max time to wait for a process to come up when trying to cleanup a container
mapreduce.tasktracker.tasks.sleeptimebeforesigkill = 30000
# Same en MRv1 ?
(30 秒似乎足够了)
关于java - Hadoop HPROF 分析未写入 CPU 样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25983999/
我有一个 java.hprof.txt 文件(在 OutOfMemoryError 后自动生成),我想将其转换为二进制 hprof 格式。有什么简单的方法可以做到这一点吗? 最佳答案 不,没有。您必须
我的测试设备版本是 5.0.1 (Lollipop)。 我在 Android Studio 1.3 中获取了 Android 堆转储文件。 但是我看到了错误信息。 所以我尝试在 DDMS 中获取转储文
尝试使用内存分析器打开 HPROF 文件(由 Debug.dumpHprofData 创建)时出现以下异常: java.io.IOException: Unknown HPROF Version (J
Eclipse Memory Analyzer 文档说它可以打开 IBM 可移植堆转储文件 (*.phd): http://help.eclipse.org/luna/index.jsp?topic=
如果我使用任何 Java 应用程序(例如 VisualVM)打开堆转储(hprof 文件),VisualVM 是否需要比 hprof 文件大小更多的堆内存? 就我而言,hprof 是 4Gb 文件,V
我正在使用 Eclipse Memory Analyzer 查看 HPROF 文件。它为同一类的不同实例显示不同数量的字段: 看起来缺失的字段可能从未被分配过,但是这些缺失字段的值是多少?它们是“零”
我想知道是否有办法“安排”HPROF转储,以便我们可以每天(或每小时,具体取决于大小)生成一个 HPROF 文件。 我的想法是在生产系统上添加分析,并将其作为日常报告的一部分,这样它就成为“例行公事”
目前我有一个核心转储文件,我想提取堆转储。无论我尝试什么,我总是会收到以下错误消息: god@heaven:~$ sudo /opt/java-MyApp/bin/jmap -dump:format=
我在控制台日志中看到以下错误: HPROF ERROR: unable to resolve a method id HPROF ERROR: got NULL trace in obj_alloc
在我的应用程序中,我可以选择捕获 hprof 转储。我使用过 android.os.Debug.dumpHprofData(字符串文件名) 最初我虽然通过上述方法生成的 hprof 数据是用于整个装置
最近,我在运行应用程序时遇到了 java.lang.OutOfMemoryError 异常。 在一个这样的实例中,我能够使用 jvisualvm 获取堆转储。 我可以使用 NetBeans 8.1 I
这个问题在这里已经有了答案: How do I analyze a .hprof file? (7 个答案) 关闭 5 年前。 我正在运行 Java 应用程序并遇到内存不足的错误。 .hprof 文
正如许多有用网站所详述的那样,分析 Android 应用程序内存使用情况的一种方法是执行“kill -10 [PID]”以触发 HPROF 转储。这似乎适用于某些设备,并且 logcat 通常包含如下
我想跟踪我的应用程序的内存泄漏。但是当我想从 DDMS 按下转储 HPROF 文件按钮时,我收到一条错误消息:“hprof:无法打开/sdcard/com.google.android.apps.up
我尝试将转储从 Android Device Monitor 转换为 Eclipse Memory Analyzer 格式。我使用下一个命令 hprof-conv dump.hprof convert
有时,尤其是在我的应用程序中实现新功能时,我会使用 DDMS + HPROF 来分析内存和堆的使用情况。由于该应用程序似乎没有任何性能 - ANR 问题并且一切正常,最初我并不关心它 - 但现在,我看
我有一个非常大的堆转储 (.hprof) 文件 (16GB)。当我尝试在 Visual Vm 中打开它时,VM 只是挂起。我试图在 JProfiler 中打开它。 Jprofiler 给了我一个内存不
我正在尝试以编程方式分析 hprof 文件。使用 android-sdk 中的 hprof-conv 工具,我生成了一堆 com.your.package.index 文件。 如何以编程方式解析这些
我的程序抛出以下异常: java.lang.OutOfMemoryError: unable to create new native thread 但是当我将 -XX:+HeapDumpOnOutO
我正在调查使用 Eclipse 的内存分析器 (MAT) 分析 HPROF 文件。支配树、报告和 OQL 界面看起来非常有用。但所有这些都必须通过 MAT 软件手动完成。 是否有命令行界面,以便我可以
我是一名优秀的程序员,十分优秀!