hadoop - AWS cloudwatch 自定义指标数据不可见

标签 hadoop amazon-web-services cron amazon-cloudwatch

我已经创建了一个 cron 作业(cron 作业每分钟运行一次)和一个 shell 脚本,用于在 this answer in AWS forum 的帮助下将 HDFS 使用情况发布到 Cloudwatch | .

我的脚本如下所示:

#!/bin/sh

#
# Prerequisites :
# 1. AWS cloudwatch CLI
# 2. JAVA
# 3. AWS credentials file inside AWS cloudwatch CLI directory
#

export JAVA_HOME=$1
export AWS_CLOUDWATCH_HOME=$2
export AWS_CREDENTIAL_FILE=$AWS_CLOUDWATCH_HOME/credential-file-path.template
export PATH="$PATH:$AWS_CLOUDWATCH_HOME/bin"

echo '['`date`'] INFO : all paths set.'

CLUSTER_NAME=$3
UNIT="Percent"

#1. Get hdfs report
#2. Grep for all lines containing dfs used data
#3. Grep for percentage data
dfs_used_percent=`hadoop dfsadmin -report | grep -m 1 'DFS Used\%' | grep -oE '[[:digit:]]+\.?[[:digit:]]*'`
echo '['`date`'] INFO : Current hdfs usage percent : ' $dfs_used_percent
echo '['`date`'] INFO : Sending data to AWS cloudwatch.'


mon-put-data --metric-name "HdfsUsed" --namespace "MyCustomMetrics" --value $dfs_used_percent --unit $UNIT
echo '['`date`'] INFO : Result of mon-put-data command : ' $?
echo '['`date`'] INFO : Data sent to AWS cloudwatch. Exiting.'
echo '----------------------------------------------------'

通过查看以下日志(echo 语句),我可以看到此脚本已成功将自定义指标发送到云观察

$ tail -f hdfs-usage-metric.log

[Wed Oct 29 05:23:03 UTC 2014] INFO : Result of mon-put-data command :  0
[Wed Oct 29 05:23:03 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting.
----------------------------------------------------
[Wed Oct 29 05:24:01 UTC 2014] INFO : all paths set.
[Wed Oct 29 05:24:03 UTC 2014] INFO : Current hdfs usage percent :  14.36
[Wed Oct 29 05:24:03 UTC 2014] INFO : Sending data to AWS cloudwatch.
[Wed Oct 29 05:24:04 UTC 2014] INFO : Result of mon-put-data command :  0
[Wed Oct 29 05:24:04 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting.
----------------------------------------------------
[Wed Oct 29 05:25:01 UTC 2014] INFO : all paths set.
[Wed Oct 29 05:25:02 UTC 2014] INFO : Current hdfs usage percent :  14.36
[Wed Oct 29 05:25:02 UTC 2014] INFO : Sending data to AWS cloudwatch.
[Wed Oct 29 05:25:03 UTC 2014] INFO : Result of mon-put-data command :  0
[Wed Oct 29 05:25:03 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting.
----------------------------------------------------
[Wed Oct 29 05:26:01 UTC 2014] INFO : all paths set.
[Wed Oct 29 05:26:02 UTC 2014] INFO : Current hdfs usage percent :  14.36
[Wed Oct 29 05:26:02 UTC 2014] INFO : Sending data to AWS cloudwatch.
[Wed Oct 29 05:26:03 UTC 2014] INFO : Result of mon-put-data command :  0
[Wed Oct 29 05:26:03 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting.

但即使在运行此脚本超过 2 小时后,此指标在 AWS 控制台中也不可见。

我无法使用 $ mon-list-metrics | 查看此指标还有 grep 'Hdfs' 命令。

如果我在运行 cron 作业的同一台机器上运行 mon-get-stats 命令,我会得到以下输出

$ mon-get-stats HdfsUsed --namespace AutodeskCustomMetrics --statistics Average
2014-10-29 04:35:00  14.36  Percent
2014-10-29 04:40:00  14.36  Percent
2014-10-29 04:45:00  14.36  Percent
2014-10-29 04:50:00  14.36  Percent
2014-10-29 04:55:00  14.36  Percent
2014-10-29 05:00:00  14.36  Percent

但是如果我从同一集群中的其他机器运行相同的命令,我不会得到任何结果。

谁能帮我正确插入和获取自定义指标?

最佳答案

问题已解决。我使用一组凭证发布数据并使用其他凭证查看 AWS 控制台。 :(

关于hadoop - AWS cloudwatch 自定义指标数据不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26623391/

相关文章:

python - 无法从 aws lambda 层导入模块

php - 可以使用带有 cron 的 ajax、jquery 页面吗?

linux - CronTab 每 5 分钟重启一次不起作用

mysql - 计算Apache Pig中的不同项目

hadoop - 停止所有 Hadoop 守护程序并再次重新启动后,无法访问在 HDFS 中创建的目录

hadoop - 在Kafka Connect中从一条消息中写入多个条目

c# - 使用 .NET Core WebApp 访问 AWS ElasticBeanstalk 自定义环境变量

scala - 使用 Spark Scala 将数据插入到带有 HiveContext 的 Hive 表中

amazon-web-services - AWS Cloudformation - Stack 与 NestedStack

ruby-on-rails - Cron 无法在 Whenever gem 中工作