blob: b0b663d8222a5eee72442c5e21cec64a30873987 [file] [log] [blame]
<?php
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
$GLOBALS["HDP_MON_DEBUG_MODE"] = FALSE;
$pwd = exec("pwd");
$GLOBALS["HDP_MON_CLUSTER_CONFIG_LOCATION"] = $pwd
."/data/cluster_configuration.json";
include_once("../../../src/dataServices/common/common.inc");
include_once("../../../src/dataServices/common/cluster_configuration.inc");
include_once("../../../src/dataServices/common/response.inc");
include_once("../../../src/dataServices/jmx/hdp_mon_jmx_helpers.inc");
function verify_hdfs_info($info) {
assert(is_array($info));
assert($info["service_type"] === "HDFS");
assert($info["installed"]);
assert($info["namenode_addr"] == "namenode:50070");
assert($info["secondary_namenode_addr"] == "snamenode:50071");
assert($info["total_nodes"] == 10);
assert($info["memory_heap_used"] == 529321952);
assert($info["memory_heap_max"] == 1006632960);
assert($info["dfs_dirfiles_count"] == 554);
assert($info["dfs_blocks_total"] == 458);
assert($info["dfs_blocks_underreplicated"] == 0);
assert($info["dfs_blocks_missing"] == 0);
assert($info["dfs_blocks_corrupt"] == 0);
assert($info["dfs_state"] == "Operational");
assert($info["start_time"] == 1327557522);
assert($info["live_nodes"] == 10);
assert($info["dead_nodes"] == 1);
assert($info["decommissioning_nodes"] == 0);
assert($info["version"] == "1.0.0");
assert($info["safemode"] == TRUE);
assert($info["pending_upgrades"] == "");
assert($info["dfs_configured_capacity"] == 36336891658240);
assert($info["dfs_percent_used"] == 0);
assert($info["dfs_percent_remaining"] == 99.08);
assert($info["dfs_total_bytes"] == 36336891658240);
assert($info["dfs_used_bytes"] == 1750237184);
assert($info["nondfs_used_bytes"] == 331691536384);
assert($info["dfs_free_bytes"] == 36003449884672);
assert($info["safemode_reason"] != "");
}
function verify_mr_info($info) {
assert(is_array($info));
assert($info["service_type"] === "MAPREDUCE");
assert($info["installed"]);
assert($info["jobtracker_addr"] == "jobtracker:50030");
assert($info["trackers_total"] == 20);
assert($info["jobhistory_addr"] == "jobhistory_host:52890");
assert($info["memory_heap_used"] == 158277552);
assert($info["memory_heap_max"] == 1052770304);
assert($info["trackers_live"] == 10);
assert($info["trackers_graylisted"] == 0);
assert($info["trackers_blacklisted"] == 0);
assert($info["version"] == "1.0.0, r1224962");
assert(is_array($info["queue_info"])
&& $info["queue_info"]["type"] == "CapacityTaskScheduler"
&& count($info["queue_info"]["queues"]) == 1);
assert($info["queue_info"]["queues"]["default"]["state"] == "running"
&& $info["queue_info"]["queues"]["default"]["capacity_percentage"]
== 100.0
&& $info["queue_info"]["queues"]["default"]["user_limit"] == 100
&& $info["queue_info"]["queues"]["default"]["priority_supported"] == 1
&& $info["queue_info"]["queues"]["default"]["map_capacity"] == 40
&& $info["queue_info"]["queues"]["default"]["map_running_tasks"] == 0
&& $info["queue_info"]["queues"]["default"]["reduce_capacity"] == 20
&& $info["queue_info"]["queues"]["default"]["reduce_running_tasks"] == 0
&& $info["queue_info"]["queues"]["default"]["waiting_jobs"] == 3
&& $info["queue_info"]["queues"]["default"]["initializing_jobs"] == 0
&& $info["queue_info"]["queues"]["default"]["users_with_submitted_jobs"]
== 0);
assert($info["trackers_excluded"] == 0);
assert($info["map_task_capacity"] == 40);
assert($info["reduce_task_capacity"] == 20);
assert($info["job_total_submissions"] == 105);
assert($info["job_total_completions"] == 104);
assert($info["running_jobs"] == 0);
assert($info["waiting_jobs"] == 3);
assert($info["running_map_tasks"] == 0);
assert($info["running_reduce_tasks"] == 0);
assert($info["occupied_map_slots"] == 0);
assert($info["occupied_reduce_slots"] == 0);
assert($info["reserved_map_slots"] == 0);
assert($info["reserved_reduce_slots"] == 0);
assert($info["waiting_maps"] == 1);
assert($info["waiting_reduces"] == 0);
assert($info["start_time"] == 1327557546);
assert($info["average_node_capacity"] == 6);
}
function verify_hbase_info($info) {
assert(is_array($info));
assert($info["service_type"] === "HBASE");
assert($info["installed"]);
assert($info["total_regionservers"] === 30);
assert($info["memory_heap_used"] === 32946880);
assert($info["memory_heap_max"] === 1035468800);
assert($info["cluster_id"] === "d24914d7-75d3-4dcc-9e6f-0d7770833993");
assert($info["start_time"] == 1329244267);
assert($info["active_time"] == 1329244269);
assert(is_array($info["coprocessors"])
&& count($info["coprocessors"]) == 0);
assert($info["average_load"] == 2);
assert($info["regions_in_transition_count"] === 0);
assert($info["live_regionservers"] === 1);
assert($info["dead_regionservers"] === 0);
assert(is_array($info["zookeeper_quorum"])
&& count($info["zookeeper_quorum"]) == 1
&& $info["zookeeper_quorum"][0] === "localhost:2181");
assert($info["version"] ===
"0.92.1-SNAPSHOT, ra23f8636efd6dd9d37f3a15d83f2396819509502");
}
function verify_overall_info($info) {
assert(is_array($info));
assert(is_array($info["overall"]));
assert(is_array($info["hbase"]));
assert(is_array($info["hdfs"]));
assert(is_array($info["mapreduce"]));
assert($info["overall"]["ganglia_url"] ==
"http://gangliaweb_host:80/var/www/ganglia2");
assert($info["overall"]["nagios_url"] == "http://nagiosserver_host:80/nagios");
assert($info["overall"]["hdfs_installed"] == 1);
assert($info["overall"]["mapreduce_installed"] == 1);
assert($info["overall"]["hbase_installed"] == 1);
assert($info["overall"]["namenode_addr"] == "namenode:50070");
assert($info["overall"]["secondary_namenode_addr"] == "snamenode:50071");
assert($info["overall"]["namenode_starttime"] == 1327557522);
assert($info["overall"]["total_nodes"] == 10);
assert($info["overall"]["live_nodes"] == 10);
assert($info["overall"]["dead_nodes"] == 1);
assert($info["overall"]["decommissioning_nodes"] == 0);
assert($info["overall"]["dfs_blocks_underreplicated"] == 0);
assert($info["overall"]["safemode"] == TRUE);
assert($info["overall"]["pending_upgrades"] == "");
assert($info["overall"]["dfs_configured_capacity"] == 36336891658240);
assert($info["overall"]["dfs_percent_used"] == 0);
assert($info["overall"]["dfs_percent_remaining"] == 99.08);
assert($info["overall"]["dfs_total_bytes"] == 36336891658240);
assert($info["overall"]["dfs_used_bytes"] == 1750237184);
assert($info["overall"]["nondfs_used_bytes"] == 331691536384);
assert($info["overall"]["dfs_free_bytes"] == 36003449884672);
assert($info["overall"]["jobtracker_addr"] == "jobtracker:50030");
assert($info["overall"]["jobtracker_starttime"] == 1327557546);
assert($info["overall"]["running_jobs"] == 0);
assert($info["overall"]["waiting_jobs"] == 3);
assert($info["overall"]["trackers_total"] == 20);
assert($info["overall"]["trackers_live"] == 10);
assert($info["overall"]["trackers_graylisted"] == 0);
assert($info["overall"]["trackers_blacklisted"] == 0);
assert($info["overall"]["hbasemaster_addr"] == "hbasemaster:60010");
assert($info["overall"]["total_regionservers"] == 30);
assert($info["overall"]["hbasemaster_starttime"] == 1329244267);
assert($info["overall"]["live_regionservers"] == 1);
assert($info["overall"]["dead_regionservers"] == 0);
assert($info["overall"]["regions_in_transition_count"] == 0);
assert($info["hdfs"]["namenode_addr"] == "namenode:50070");
assert($info["hdfs"]["secondary_namenode_addr"] == "snamenode:50071");
assert($info["hdfs"]["namenode_starttime"] == 1327557522);
assert($info["hdfs"]["total_nodes"] == 10);
assert($info["hdfs"]["live_nodes"] == 10);
assert($info["hdfs"]["dead_nodes"] == 1);
assert($info["hdfs"]["decommissioning_nodes"] == 0);
assert($info["hdfs"]["dfs_blocks_underreplicated"] == 0);
assert($info["hdfs"]["safemode"] == TRUE);
assert($info["hdfs"]["pending_upgrades"] == "");
assert($info["hdfs"]["dfs_configured_capacity"] == 36336891658240);
assert($info["hdfs"]["dfs_percent_used"] == 0);
assert($info["hdfs"]["dfs_percent_remaining"] == 99.08);
assert($info["hdfs"]["dfs_total_bytes"] == 36336891658240);
assert($info["hdfs"]["dfs_used_bytes"] == 1750237184);
assert($info["hdfs"]["nondfs_used_bytes"] == 331691536384);
assert($info["hdfs"]["dfs_free_bytes"] == 36003449884672);
assert($info["mapreduce"]["jobtracker_addr"] == "jobtracker:50030");
assert($info["mapreduce"]["jobtracker_starttime"] == 1327557546);
assert($info["mapreduce"]["running_jobs"] == 0);
assert($info["mapreduce"]["waiting_jobs"] == 3);
assert($info["mapreduce"]["trackers_total"] == 20);
assert($info["mapreduce"]["trackers_live"] == 10);
assert($info["mapreduce"]["trackers_graylisted"] == 0);
assert($info["mapreduce"]["trackers_blacklisted"] == 0);
assert($info["hbase"]["hbasemaster_addr"] == "hbasemaster:60010");
assert($info["hbase"]["total_regionservers"] == 30);
assert($info["hbase"]["hbasemaster_starttime"] == 1329244267);
assert($info["hbase"]["live_regionservers"] == 1);
assert($info["hbase"]["dead_regionservers"] == 0);
assert($info["hbase"]["regions_in_transition_count"] == 0);
}
hdp_mon_load_cluster_configuration();
if (!isset($GLOBALS["HDP_MON_CONFIG"])) {
error_log("global CONFIG is still not set");
exit(1);
}
$hdfs_jmx_json = file_get_contents("./data/sample_namenode_jmx.json");
if (!$hdfs_jmx_json || $hdfs_jmx_json == "") {
error_log("Invalid json data for namenode jmx");
exit(1);
}
$hdfsinfo = hdp_mon_jmx_parse_hdfs_info(json_decode($hdfs_jmx_json, true));
verify_hdfs_info($hdfsinfo);
$mr_jmx_json = file_get_contents("./data/sample_jobtracker_jmx.json");
if (!$mr_jmx_json || $mr_jmx_json == "") {
error_log("Invalid json data for jobtracker jmx");
exit(1);
}
$mrinfo = hdp_mon_jmx_parse_mapreduce_info(json_decode($mr_jmx_json, true));
verify_mr_info($mrinfo);
$hbase_jmx_json = file_get_contents("./data/sample_hbasemaster_jmx.json");
if (!$hbase_jmx_json || $hbase_jmx_json == "") {
error_log("Invalid json data for hbase master jmx");
exit(1);
}
$hbaseinfo = hdp_mon_jmx_parse_hbase_info(json_decode($hbase_jmx_json, true));
verify_hbase_info($hbaseinfo);
$overallinfo = hdp_mon_helper_get_cluster_info($hdfsinfo,
$mrinfo, $hbaseinfo);
verify_overall_info($overallinfo);
?>