我正在尝试创建群集的HDFS块分布的可视化。

我打算使用Tableau创建此数据库,但想知道哪种类型的可视化可以使您了解哪些节点需要重新平衡,以及将服务器日志数据导入Tableau的有效方法?

最佳答案

在为此花太多时间之前,您可能需要看一下Twitter的开源HDFS-DU项目。这提供了基于文件系统内路径而不是集群内DataNode的利用率 View ,但这也许仍然对您的需求有所帮助。

如果目标只是确定需要重新平衡的节点,则可以在NameNode Web UI的“Datanodes”选项卡上访问此信息。您还可以运行 hdfs dfsadmin -report 以获取脚本中每个节点的利用率统计信息。

如果以上都不满足您的要求,并且您需要将信息集成到诸如Tableau之类的外部报告工具中,那么有用的集成点可能是通过NameNode上的HTTP公开的JMX指标。请参见下面的curl命令示例,该命令从NameNode查询某些信息。特别注意LiveNodes部分,其中包含有关每个DataNode的容量信息。

有关这些指标的一些其他信息,请参阅Apache Hadoop Metrics文档。

> curl 'http://127.0.0.1:9870/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo'
{
  "beans" : [ {
    "name" : "Hadoop:service=NameNode,name=NameNodeInfo",
    "modelerType" : "org.apache.hadoop.hdfs.server.namenode.FSNamesystem",
    "Threads" : 46,
    "Version" : "3.0.0-alpha2-SNAPSHOT, rdf497b3a739714c567c9c2322608f0659da20cc4",
    "Used" : 5263360,
    "Free" : 884636377088,
    "Safemode" : "",
    "NonDfsUsedSpace" : 114431086592,
    "PercentUsed" : 5.266863E-4,
    "BlockPoolUsedSpace" : 5263360,
    "PercentBlockPoolUsed" : 5.266863E-4,
    "PercentRemaining" : 88.52252,
    "CacheCapacity" : 0,
    "CacheUsed" : 0,
    "TotalBlocks" : 50,
    "NumberOfMissingBlocks" : 0,
    "NumberOfMissingBlocksWithReplicationFactorOne" : 0,
    "LiveNodes" : "{\"192.168.0.117:9866\":{\"infoAddr\":\"127.0.0.1:9864\",\"infoSecureAddr\":\"127.0.0.1:0\",\"xferaddr\":\"127.0.0.1:9866\",\"lastContact\":2,\"usedSpace\":5263360,\"adminState\":\"In Service\",\"nonDfsUsedSpace\":114431086592,\"capacity\":999334871040,\"numBlocks\":50,\"version\":\"3.0.0-alpha2-SNAPSHOT\",\"used\":5263360,\"remaining\":884636377088,\"blockScheduled\":0,\"blockPoolUsed\":5263360,\"blockPoolUsedPercent\":5.266863E-4,\"volfails\":0}}",
    "DeadNodes" : "{}",
    "DecomNodes" : "{}",
    "BlockPoolId" : "BP-1429209999-10.195.15.240-1484933797029",
    "NameDirStatuses" : "{\"active\":{\"/Users/naurc001/hadoop-deploy-trunk/data/dfs/name\":\"IMAGE_AND_EDITS\"},\"failed\":{}}",
    "NodeUsage" : "{\"nodeUsage\":{\"min\":\"0.00%\",\"median\":\"0.00%\",\"max\":\"0.00%\",\"stdDev\":\"0.00%\"}}",
    "NameJournalStatus" : "[{\"manager\":\"FileJournalManager(root=/Users/naurc001/hadoop-deploy-trunk/data/dfs/name)\",\"stream\":\"EditLogFileOutputStream(/Users/naurc001/hadoop-deploy-trunk/data/dfs/name/current/edits_inprogress_0000000000000000862)\",\"disabled\":\"false\",\"required\":\"false\"}]",
    "JournalTransactionInfo" : "{\"MostRecentCheckpointTxId\":\"861\",\"LastAppliedOrWrittenTxId\":\"862\"}",
    "NNStartedTimeInMillis" : 1485715900031,
    "CompileInfo" : "2017-01-03T21:06Z by naurc001 from trunk",
    "CorruptFiles" : "[]",
    "NumberOfSnapshottableDirs" : 0,
    "DistinctVersionCount" : 1,
    "DistinctVersions" : [ {
      "key" : "3.0.0-alpha2-SNAPSHOT",
      "value" : 1
    } ],
    "SoftwareVersion" : "3.0.0-alpha2-SNAPSHOT",
    "NameDirSize" : "{\"/Users/naurc001/hadoop-deploy-trunk/data/dfs/name\":2112351}",
    "RollingUpgradeStatus" : null,
    "ClusterId" : "CID-4526ea43-52e6-4b3f-9ddf-5fd4412e322e",
    "UpgradeFinalized" : true,
    "Total" : 999334871040
  } ]
}

09-04 05:33
查看更多