我想问一下,在我运行了我的hadoop mapreduce应用程序后,如何获得该应用程序的总内存和CPU使用率。我在日志和资源管理器网页上看过它,但我没有得到它。
有可能吗?我是否可以按作业执行或按应用程序获取它,我可以按节点使用情况或总使用量获得它吗?
非常感谢....
答案 0 :(得分:6)
是的,您可以很好地检查应用程序的总内存和CPU使用情况。
您可以使用作业跟踪器UI,单击已完成页面上的计数器链接,并可能获得如下的典型视图。内存和CPU计数器突出显示。
点击突出显示的链接将显示作业的每个任务(地图/减少)的消耗量。
要从命令行查看这些消耗计数器的这些值,您可以使用
<?php
error_reporting(E_ALL);
include('config.php');
include('inc/header.php');
define('CSV_PATH', '');
$csv_file = CSV_PATH . "importImage.csv"; // Name of your CSV file
$csvfile = fopen($csv_file, 'r');
$theData = fgets($csvfile);
$i = 0;
while (!feof($csvfile)) {
$csv_data[] = fgets($csvfile, 1024);
$csv_array = explode(",", $csv_data[$i]);
$insert_csv = array();
$url = $insert_csv['url'] = $csv_array[0];
$image = $insert_csv['image'] = $csv_array[1];
$raw = file_get_contents($url . $image);
/*RESIZE USING GD*/
/*
* PHP GD
* resize an image using GD library
*/
// File and new size
//the original image has 800x600
$filename = $raw;
//the resize will be a percent of the original size
$percent = 0.5;
// Content type
header('Content-Type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = 200;
$newheight = 200;
// Load
$thumb = imagecreate($newwidth, $newheight);
$source = imagecreate($filename);
// Resize
$imgnew = imagecopyresampled($thumb, $source, 0, 0, 0, 0, newwidth, $newheight, $width, $height);
imagejpeg($thumb, 'Mypath' . time() . '.jpg'); // save resized image to
//Output and free memory
imagedestroy($thumb);
$i++;
}
fclose($csvfile);
echo "File data successfully imported to database!!";
mysql_close($connect);
?>
用于cpu使用
hadoop job -counter <job-id> org.apache.hadoop.mapreduce.TaskCounter CPU_MILLISECONDS
用于内存使用