「ほっ」と。キャンペーン
2013年 10月 07日

Gangliaのメトリック情報を取得

Gangliaのポートをtelnetでたたくと、メトリック情報の一覧がとれるのか。。。
Hadoopのメトリクス情報を収集するように設定していると、その情報も引っ張ってこれる。

# telnet localhost 8651
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE GANGLIA_XML [
<!ELEMENT GANGLIA_XML (GRID|CLUSTER|HOST)*>
<!ATTLIST GANGLIA_XML VERSION CDATA #REQUIRED>
<!ATTLIST GANGLIA_XML SOURCE CDATA #REQUIRED>
<!ELEMENT GRID (CLUSTER | GRID | HOSTS | METRICS)*>
<!ATTLIST GRID NAME CDATA #REQUIRED>
<!ATTLIST GRID AUTHORITY CDATA #REQUIRED>
<!ATTLIST GRID LOCALTIME CDATA #IMPLIED>
<!ELEMENT CLUSTER (HOST | HOSTS | METRICS)*>
<!ATTLIST CLUSTER NAME CDATA #REQUIRED>
<!ATTLIST CLUSTER OWNER CDATA #IMPLIED>
<!ATTLIST CLUSTER LATLONG CDATA #IMPLIED>
<!ATTLIST CLUSTER URL CDATA #IMPLIED>
<!ATTLIST CLUSTER LOCALTIME CDATA #REQUIRED>
<!ELEMENT HOST (METRIC)*>
<!ATTLIST HOST NAME CDATA #REQUIRED>
<!ATTLIST HOST IP CDATA #REQUIRED>
<!ATTLIST HOST LOCATION CDATA #IMPLIED>
<!ATTLIST HOST REPORTED CDATA #REQUIRED>
<!ATTLIST HOST TN CDATA #IMPLIED>
<!ATTLIST HOST TMAX CDATA #IMPLIED>
<!ATTLIST HOST DMAX CDATA #IMPLIED>
<!ATTLIST HOST GMOND_STARTED CDATA #IMPLIED>
<!ELEMENT METRIC (EXTRA_DATA*)>
<!ATTLIST METRIC NAME CDATA #REQUIRED>
<!ATTLIST METRIC VAL CDATA #REQUIRED>
<!ATTLIST METRIC TYPE (string | int8 | uint8 | int16 | uint16 | int32 | uint32 | float | double | timestamp) #REQUIRED>
<!ATTLIST METRIC UNITS CDATA #IMPLIED>
<!ATTLIST METRIC TN CDATA #IMPLIED>
<!ATTLIST METRIC TMAX CDATA #IMPLIED>
<!ATTLIST METRIC DMAX CDATA #IMPLIED>
<!ATTLIST METRIC SLOPE (zero | positive | negative | both | unspecified) #IMPLIED>
<!ATTLIST METRIC SOURCE (gmond) 'gmond'>
<!ELEMENT EXTRA_DATA (EXTRA_ELEMENT*)>
<!ELEMENT EXTRA_ELEMENT EMPTY>
<!ATTLIST EXTRA_ELEMENT NAME CDATA #REQUIRED>
<!ATTLIST EXTRA_ELEMENT VAL CDATA #REQUIRED>
<!ELEMENT HOSTS EMPTY>
<!ATTLIST HOSTS UP CDATA #REQUIRED>
<!ATTLIST HOSTS DOWN CDATA #REQUIRED>
<!ATTLIST HOSTS SOURCE (gmond | gmetad) #REQUIRED>
<!ELEMENT METRICS (EXTRA_DATA*)>
<!ATTLIST METRICS NAME CDATA #REQUIRED>
<!ATTLIST METRICS SUM CDATA #REQUIRED>
<!ATTLIST METRICS NUM CDATA #REQUIRED>
<!ATTLIST METRICS TYPE (string | int8 | uint8 | int16 | uint16 | int32 | uint32 | float | double | timestamp) #REQUIRED>
<!ATTLIST METRICS UNITS CDATA #IMPLIED>
<!ATTLIST METRICS SLOPE (zero | positive | negative | both | unspecified) #IMPLIED>
<!ATTLIST METRICS SOURCE (gmond) 'gmond'>
]>
<GANGLIA_XML VERSION="3.1.7" SOURCE="gmetad">
<GRID NAME="ENAMINE" AUTHORITY="http://ganglia.hogehoge.co.jp/ganglia/" LOCALTIME="1381113110">
<CLUSTER NAME="PiyoServers" LOCALTIME="1381113096" OWNER="piyo-admin" LATLONG="unspecified" URL="unspecified">
<HOST NAME="piyo.hogehoge.co.jp" IP="192.168.1.243" REPORTED="1381113093" TN="16" TMAX="20" DMAX="3600" LOCATION="unspecified" GMOND_STARTED="1378875960">
<METRIC NAME="machine_type" VAL="x86_64" TYPE="string" UNITS="" TN="345" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond">
<EXTRA_DATA>
<EXTRA_ELEMENT NAME="GROUP" VAL="system"/>
<EXTRA_ELEMENT NAME="DESC" VAL="System architecture"/>
<EXTRA_ELEMENT NAME="TITLE" VAL="Machine Type"/>
</EXTRA_DATA>
</METRIC>
<METRIC NAME="disk_free" VAL="229.198" TYPE="double" UNITS="GB" TN="173" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond">
<EXTRA_DATA>
<EXTRA_ELEMENT NAME="GROUP" VAL="disk"/>
<EXTRA_ELEMENT NAME="DESC" VAL="Total free disk space"/>
<EXTRA_ELEMENT NAME="TITLE" VAL="Disk Space Available"/>
</EXTRA_DATA>
</METRIC>
<METRIC NAME="bytes_out" VAL="12116.92" TYPE="float" UNITS="bytes/sec" TN="177" TMAX="300" DMAX="0" SLOPE="both" SOURCE="gmond">
<EXTRA_DATA>
<EXTRA_ELEMENT NAME="GROUP" VAL="network"/>
<EXTRA_ELEMENT NAME="DESC" VAL="Number of bytes out per second"/>
<EXTRA_ELEMENT NAME="TITLE" VAL="Bytes Sent"/>
</EXTRA_DATA>
</METRIC>
<METRIC NAME="metricssystem.MetricsSystem.Sink_gangliaNumOps" VAL="164278" TYPE="float" UNITS="" TN="13" TMAX="60" DMAX="0" SLOPE="positive" SOURCE="gmond">
<EXTRA_DATA>
<EXTRA_ELEMENT NAME="GROUP" VAL="metricssystem.MetricsSystem"/>
</EXTRA_DATA>
</METRIC>
<METRIC NAME="mapred.jobtracker.maps_launched" VAL="0" TYPE="int32" UNITS="" TN="1644155" TMAX="60" DMAX="0" SLOPE="both" SOURCE="gmond">
<EXTRA_DATA>
<EXTRA_ELEMENT NAME="GROUP" VAL="mapred.jobtracker"/>
</EXTRA_DATA>
</METRIC>
========Cut========


以外と便利だな、これ。
[PR]

# by respection | 2013-10-07 14:56 | Hadoop
2013年 09月 12日

代替での優先度・・・

Cloudera ManagerのGatewayの設定画面で表示される[代替での優先度]とは、Alternativesシステムでの優先度のこと。
Cloudera Managerを使用しないでCDHを構築する場合には、Alternativesシステムに複数の設定を登録しておき、本番と開発などの環境を瞬時に変更するために使用される。
Cloudera Managerでの環境の場合、数値の高い方いものが優先される。

Hadoopクライアントを構築する場合Gatewayのロールを割り当てますが、通常はHDFSとMapReduceの二つのロールを割り当てます。
この二つのロールの[代替での優先度]はHDFSが90でMapReduceが92となっています。よってMapReduceの設定項目が優先されるようになっています。


さて、HDFSのゴミ箱機能を無効にするよう要請されて(良いのかなぁ、無効にしちゃって・・・知らないよ)、HDFSの設定画面からGatewayでのTrash機能を無効にし、NameNodeのfs.trash.intervalを0にしました。
b0035613_1227252.jpg


ところが、コマンドラインからhadoop fs -rmコマンドを行ってもMoveとなってしまい.Trashに入ってしまいます。

何回やってもだめ。。。二つの環境でやってもだめ。。。
ちょっと悩みましたよ。。。


ということでHDFSの[代替での優先度]を調べてみると90となっていました。
b0035613_12274697.jpg

MapReduceは92です。
b0035613_12275812.jpg


fs.trash.intervalはcore-site.xmlに記述されているので、MapReduce側のcore-site.xmlが優先されてhdfs側でいくら設定してもだめということです。

簡単に変更するにはHDFS側の[代替での優先度]の数値を変更すればよいのです。今回は190にします。
b0035613_1228322.jpg

変更したら[アクション]ボタンから設定情報を反映させます。


で、Gatewayの端末からファイルを削除してみるとDeleteとなりMoveではなくなりましたと。
[root@d-cl tmp]# hadoop fs -rm hogehoge-agent-378806909.log
Deleted hogehoge-agent-378806909.log
[root@d-cl tmp]#



良かった、よかった、ヨカッタ。
[PR]

# by respection | 2013-09-12 11:41 | Hadoop
2013年 09月 04日

ServerCoreでチーミング設定

ServerCoreでチーミングはどう設定したのか忘れている。。。

最初にネットワークアダプターの情報を取得します。
PS C:\Users\Administrator> Get-NetAdapter

Name InterfaceDescription ifIndex Status
---- -------------------- ------- -----
J_ETH1          Broadcom BCM57810 NetXtreme II 1...#135 22 Up
イーサネット 4      Broadcom NetXtreme Gigabit Ethernet #4 17 Di...
イーサネット 8      Broadcom NetXtreme Gigabit Ethernet #8 21 Up
イーサネット 3      Broadcom NetXtreme Gigabit Ethernet #3 16 Up
イーサネット 5      Broadcom NetXtreme Gigabit Ethernet #5 18 Up
イーサネット 2      Broadcom NetXtreme Gigabit Ethernet #2 15 Up
イーサネット       Broadcom NetXtreme Gigabit Ethernet 13 Up
イーサネット 6      Broadcom NetXtreme Gigabit Ethernet #6 19 Up
イーサネット 7      Broadcom NetXtreme Gigabit Ethernet #7 20 Up
J_ETH2          Broadcom BCM57810 NetXtreme II 1...#136 14 Up


どれが目的のアダプターか分からないのでハードウェア情報を取得します。
PS C:\Users\Administrator> Get-NetAdapterHardwareInfo

Name Segment Bus Device Function Slot NumaNode PcieLinkSpeed
---- ------- --- ------ -------- ---- -------- ------
J_ETH1                0 1 0 0 0 ...T/s
イーサネット 4           0 4 0 3 1 0 ...T/s
イーサネット 8           0 4 0 2 1 0 ...T/s
イーサネット 3           0 4 0 1 1 0 ...T/s
イーサネット 5           0 4 0 0 1 0 ...T/s
イーサネット 2           0 3 0 3 3 0 ...T/s
イーサネット            0 3 0 2 3 0 ...T/s
イーサネット 6           0 3 0 1 3 0 ...T/s
イーサネット 7           0 3 0 0 3 0 ...T/s
J_ETH2               0 1 0 1 0 ...T/s

Busが3でDeviceは0、Functionは0と1が目的のアダプターなので、イーサネット6とイーサネット7が目的となります。サーバーごとに変わったりするので、何とかして欲しいのが正直なところ。

チーミングを行っていきます。日本語化されている"イーサネット 6"とか入力が面倒。。。
PS C:\Users\Administrator> New-NetLbfoTeam –Name Mgmt-Team –TeamMembers 'イーサネット 6', 'イーサネット 7'

確認
この操作を実行しますか?
Creates Team:'Mgmt-Team' with TeamMembers:{'イーサネット 6', 'イーサネット 7'},
TeamNicName:'Mgmt-Team', TeamingMode:'SwitchIndependent' and
LoadBalancingAlgorithm:'TransportPorts'.
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S)
[?] ヘルプ(既定値は "Y"): Y


Name : Mgmt-Team
Members : {イーサネット 7, イーサネット 6}
TeamNics : Mgmt-Team
TeamingMode : SwitchIndependent
LoadBalancingAlgorithm : TransportPorts
Status : Down


これをHyper-V用のポートに変更します。
PS C:\Users\Administrator> Set-NetLbfoTeam -Name Mgmt-Team -TeamingMode SwitchIndependent -LoadBalancingAlgorithm HyperVPort


そしてHyper-Vで使用する仮想スイッチを作成して、チーミングを施したネットワークアダプターを割り当てます。
PS C:\Users\Administrator> New-VMSwitch -Name VMNET -NetAdapterName Mgmt-Team -AllowManagementOS $true -MinimumBandwidthMode Weight

Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
VMNET External Microsoft Network Adapter Multiplexor Driver


こんな感じでHyper-V用のポートを作成できます。ただし、仮想ネットワークアダプターへの重み付けなど実際はもっと細かく行わなければならないのですが。。。。
[PR]

# by respection | 2013-09-04 17:03 | Windows
2013年 09月 03日

Windowsのサービスを無効化する

Widnwos Firewallを止めるのに、ServerCore環境だとどうやったっけ?

最初に初期状態の確認です。
全てのサービスの状態は sc queryで取得できるので、サービスの識別名はそれからとってきています。
C:\Users\piyo>sc query MpsSvc status

SERVICE_NAME: mpssvc
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0


続いて起動そのものを行わない"無効"状態に変更します。
C:\Users\piyo>sc config MpsSvc start= disabled


再起動した後確認します。
C:\Users\piyo>sc query MpsSvc

SERVICE_NAME: mpssvc
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0


久しぶりだから忘れていた。。。
[PR]

# by respection | 2013-09-03 11:41 | Windows Server 2008
2013年 08月 30日

GangliaのWebフロントエンドからノードを消す

サーバーの障害や、もう使用しないノードをGangliaの表示から消す場合は、あらかじめ設定を行っておく必要がある。

# vi /etc/ganglia/gmond.conf
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
allow_extra_data = yes
host_dmax = 3600 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
send_metadata_interval = 0 /*secs */
}

設定は赤く太文字にしたパラメータを使用する。意味はおそらく一定時間ハートビートがなかった場合に、Webフロントエンドから削除する時間、だと思う。テストしてみたところ、対象のノードをシャットダウンして1時間を過ぎるとGangliaのWebフロントエンドから消えてくれた。

最初、gmetad.confにこのパラメータを書きくむものだと思い込み、うまくいかなかったけれど、よくよく調べるとgmond.confに記述だった。なんだか少し不思議な気分だが、そういうものらしい。
[PR]

# by respection | 2013-08-30 16:46 | AGM-119