2017-01-29 5 views
1

私はクラスタのHDFSブロック分布の可視化を作成しようとしています。HDFSブロック分布の可視化

私はTableauを使用してこれを作成する予定ですが、どのノードで再バランスが必要なのか、そしてサーバログデータをテーブルに入れる効率的な方法を知ることができますか?

答えて

2

これにあまりにも多くの時間を費やす前に、TwitterのオープンソースHDFS-DUプロジェクトを見てみてください。これは、クラスタ内のDataNodeではなく、ファイルシステム内のパスに基づいて利用状況を表示しますが、それでも依然として要件に役立ちます。

リバランスを必要とするノードを特定するだけの目的であれば、この情報はすでにNameNode Web UIの[Datanodes]タブからアクセスできます。 hdfs dfsadmin -reportを実行して、スクリプト内の各ノードの使用状況統計を取得することもできます。

上記のいずれも要件を満たしておらず、情報をTableauのような外部のレポートツールに統合する必要がある場合は、ネームノードでHTTP経由で公開されるJMXメトリクスを参考にしてください。 NameNodeからこの情報の一部を照会する例のcurlコマンドについては、以下を参照してください。特に各データノードに関する容量情報を含むLiveNodesセクションに注意してください。

これらのメトリックに関する追加情報は、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 
    } ] 
} 
+0

チャールズさんに感謝します。とても役に立ちました。具体的には、データの分散方法をよりよく理解するために、データブロックの分布を可視化する必要がありました。それが新しいアイデアを生み出すなら、教えてください!すべての助けに感謝します! – SB2017