Tech Sketch Bucket of Technical Chips by TIS Inc.

Hadoop Vaidyaを用いてMapReduceタスクの性能を診断する

Pocket

はじめに

「Hadoop」の「MapReduce」で提供している「カウンター」機能は、ジョブ(MapReduceの実行単位)の統計値を取得できる組み込み機能で、ユーザーで定義することが可能です。例えば、ジョブ実行時の読み込みバイト数やCPU時間、物理メモリ使用量といったリソース情報の統計値が取得可能で、MapReduceタスクの性能分析に役立てることができます。
Apache HadoopのMapReduceに含まれている、 「Vaidya」 (「ヴァイジャ」サンスクリット語で「医師」)は、ジョブの統計値を用いて、MapReduceタスクの性能診断を行うフレームワークです。Vaidyaを利用することで、統計値からイレギュラーなリソース使用を示すMapReduceタスクを判定するといった、性能診断プログラムを容易に作成し、実行することができます。

Hadoop Pig の使いどころ

Pocket

「PigとHive何が違うの?」

「Difference between Pig and Hive? Why have both?(PigとHive何が違うの?)」 という質問を、先日、StackOverFlowで見かけました。恐らくHadoopを触ると一度は疑問に思う事ではではないでしょうか。

PigとHiveは、共にSQLライクな記法でMapReduceを書けるDSLですが、利用者数においてはHiveに軍配が上がっているようにみえます。
一方で、「Pigをもっと早く試せば良かった」というお話を伺うこともあり、有用(かもしれない)ツールであれば、正しく理解しておいた方がよさそうです。
というわけで、ここではPigの活用を探ります。

zabbixでhadoopクラスタのJVMを監視したい

Pocket

なぜzabbix?

Hadoop監視ツールとしてはAmazon Elastic MapReduceでの利用や、NTTデータが公表した 検証資料 で採用された Ganglia の方が有名ですが、日本ではユーザ会の活動も活発なzabbix を使って監視したい!という方のためのアプローチです。zabbixに強いTISの某I氏が作成したものを引き取ってJVM監視用に拡張しました。
zabbix-server-1.8.5に含まれているzabbix-templateにはjmxを使った定義も格納されているのですが、portの特定等少々面倒なようなので、新たに定義しなおしています。

Hadoop MapReduce、1ジョブで全体ソートする方法を考えた

Pocket

Hadoop MapReduceは、プログラマが何もしなくても処理結果をkey順にソートしてくれます。
ところが!処理結果全体はkey順になりません。

と、訳が分からないことを言いました。がんばって説明します。

Hadoop MapReduceは並列分散処理フレームワークなので、処理はふつう複数のタスクとして実行されます。処理結果はタスクごとに出力され、それぞれの中はkey順なのですが、タスクに割り当てられるkeyがマチマチなので全タスクの出力をつなぐとkeyが前後してしまいます。このように:

map-reduce.JPG

Hadoop MapReduceではタスクごとのソートを「部分ソート」、処理結果全体のソートを「全体ソート」といいますが、全体ソートの実現には一手間かかります。どんなやり方がいいか考えてみました。

Hadoopファミリーの人気投票

Pocket

といってもロゴのはなし。
kkawamuraさんの Hadoopと愉快な仲間たち ~おなじみのキャラクターを集めてみた~ にも

さてHadoopを使っている人が、みんな口を揃えて言うのが「ロゴ(キャラクター)がダサイ」ということです。果たして本当にそんなにダサいのか

と書かれていたり、Twitterなんかでもそういう空気。
 
そうなの?!Hadoopは結構かわいいよ!
援護射撃を期待して、社内SNSで聞いてみました。その結果は、、、