2017-01-29 3 views
1

Ich versuche eine Visualisierung der HDFS-Blockverteilung eines Clusters zu erstellen.HDFS Visualisierung der Blockverteilung

Ich plane, dies mit Tableau zu erstellen, habe mich aber gefragt, welche Arten von Visualisierungen Ihnen eine Vorstellung davon geben könnten, welche Knoten neu verteilt werden müssen, und auch eine effiziente Methode, die Serverprotokolldaten in Tableau zu bringen.

Antwort

2

Bevor Sie zu viel Zeit in dieses Projekt investieren, sollten Sie sich das Open-Source-Projekt HDFS-DU von Twitter ansehen. Dies bietet eine Ansicht der Auslastung basierend auf Pfaden innerhalb des Dateisystems und nicht von DataNodes innerhalb des Clusters, aber vielleicht ist das für Ihre Anforderungen hilfreich.

Wenn das Ziel nur darin besteht, Knoten zu identifizieren, bei denen ein Rebalancing erforderlich ist, können diese Informationen bereits auf der Registerkarte "Datanodes" der Web-Benutzeroberfläche von NameNode aufgerufen werden. Sie können auch hdfs dfsadmin -report ausführen, um Auslastungsstatistiken für jeden Knoten in einem Skript abzurufen.

Wenn keine der oben genannten Anforderungen Ihren Anforderungen entspricht und Sie die Informationen in ein externes Berichterstellungstool wie Tableau integrieren müssen, können die JMX-Messwerte, die über HTTP auf dem NameNode verfügbar gemacht werden, ein hilfreicher Integrationspunkt sein. Im Folgenden finden Sie ein Beispiel für einen curl Befehl, der einige dieser Informationen aus dem NameNode abfragt. Beachten Sie insbesondere den Abschnitt LiveNodes, der Kapazitätsinformationen zu jedem DataNode enthält.

Weitere Informationen zu diesen Metriken finden Sie in der Apache Hadoop Metrics Dokumentation.

> 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 
    } ] 
} 
+0

Dank einer Million Chirs, das war sehr hilfreich. Um meinen Anforderungen gerecht zu werden, sollten sie eine Visualisierung der Datenblockverteilung erstellen, um besser zu verstehen, wie Daten verteilt werden. Wenn das neue Ideen für Sie generiert, lassen Sie es mich wissen! Alle Hilfe wird geschätzt! – SB2017