ブックマーク / wyukawa.hatenablog.com (17)

  • Azkabanについて書く - wyukawa's diary

    ちまたではAirflow(https://github.com/airbnb/airflow)が話題のようですが、Azkaban(http://azkaban.github.io/)を使っている身としてはやはりAzkabanについて書かねばならないと思ったので書きます。別にAzkabanを使ってほしいという意味ではないです。むしろAirflowの運用エントリとか読みたいです。 AzkabanJavaで実装されたジョブ管理ツールです。開発が若干停滞気味ではありますが、細々と進んでいます。 特徴としては、下記の通りです。 インストールが簡単(バイナリは古いものしか無いのでソースビルドが必要だがgradlewなので簡単) ジョブの依存関係をグラフィカルに見る事ができる。 APIがある ジョブが失敗した時でもボタン一つで失敗したジョブだけ再実行できる TTLがあるけどジョブの実行ログをブラウザか

    Azkabanについて書く - wyukawa's diary
  • バッチ処理、ジョブ管理について書いてみる - wyukawa's diary

    僕はHive, Pythonでバッチ処理を書いてAzkabanでジョブ管理するシステムを構築、運用した経験が2年ほどあるので今日はバッチ処理、ジョブ管理について書いてみようと思います。 僕の経験上Hadoop特有の部分、例えばテスト環境が作りづらいとかバッチサーバーはジョブをsubmitするだけなので負荷はそんなにかからないとか、はあるけれど割と汎用的なのではないかと思います。そもそもバッチ処理、ジョブ管理について書かれたものはほとんど見た事がないので参考になれば嬉しいし、こういう良い方法もあるよ!とかあれば是非ブログ等に書いてほしいと思っております。 最初に言っておくとバッチ処理、ジョブ管理において重要なのは障害時のリカバリのしやすさです。正常時はまあいいでしょ。 なので例えば引数に日付を持てないようなバッチ書いたら辛いですし、LL言語で書く方がコンパイル、パッケージングとか楽です。CP

    バッチ処理、ジョブ管理について書いてみる - wyukawa's diary
  • HBaseのJuliet Pauseとリージョン復旧について - wyukawa's diary

    HBaseにはJuliet Pauseというよく知られた障害のシナリオがあります。 The HBase development team has affectionately dubbed this scenario a Juliet Pause ― the master (Romeo) presumes the region server (Juliet) is dead when it’s really just sleeping, and thus takes some drastic action (recovery). When the server wakes up, it sees that a great mistake has been made and takes its own life. Makes for a good play, but a pretty awf

    HBaseのJuliet Pauseとリージョン復旧について - wyukawa's diary
  • Hive 0.10でROLLUP, CUBE, GROUPING SETSが入ったよ - wyukawa's diary

    最近Hiveをいじることはめっきりなくなりましたが1/11にHive 0.10がリリースされましたね。前の0.9が2012/4/30リリースだったことを考えると約8ヶ月ぶりのリリースですね。ちなみに僕がHiveを一番触っていた頃のバージョンは0.6だったりします。てへ。それに比べるとだいぶ機能追加されていますが今回はROLLUP, CUBE, GROUPING SETSについて書いてみたいと思います。 JIRAはこちら [HIVE-3433] Implement CUBE and ROLLUP operators in Hive - ASF JIRA いろんな軸で集計したい場合に商用DBならROLLUP, CUBE, GROUPING SETSといった機能が使えます。これらの機能がなんとHiveでも使えるようになりました。スバラシ。 Pigのほうが早く実装されるかと思いきやHiveのほうが

    Hive 0.10でROLLUP, CUBE, GROUPING SETSが入ったよ - wyukawa's diary
  • 入社しました - wyukawa's diary

    いろんなサービスを展開しているいわゆるWeb系企業に入社しました。 今日が初出社でした。 初日はいろんなオリエンテーションを受けて過ごし夕方に自席に行ってマシンのセットアップを始めたぐらいです。 私服でいいので逆にファッションに気を使いますね(嘘 マシンはWindowsMacどちらか選べるのでこの機会にMacにしました。 いままで仕事ではWindowsだったので今回初めて仕事Macを使うことになります。 もろもろのセットアップは明日以降やります。 インストールするものって何だろ。とりあえず下記あたりが候補かな。 XCode Chrome FireFox CotEditor Alfred Java Eclipse MacPorts or Homebrew Git Subversion Evernote Dropbox Skype SourceTree FileZilla 僕がjoinする

    入社しました - wyukawa's diary
  • SQL, PigのCUBE - wyukawa's diary

    SQLで小計や総合計を求める時にGROUP BYを利用することが多いと思いますがいろんな軸で集計したい場合にROLLUP, CUBE, GROUPING SETSを使うことができるようです。 詳しくはこちら参照 http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj04_4.htm ROLLUP, CUBE, GROUPING SETSを使うことができますと断定していないのは僕が試してないからです(汗 なぜ試していないかというとこれらの機能を利用できるのがOracle, SQL Server, DB2だからです。Oracle XEをダウンロードしようかと思いましたけどユーザ登録に心が折れましたw ちなみにMySQLではROLLUPのみサポートしているらしいです。 今回は考えられる全ての組み合わせで集計するCUBEについて書いてみたいと思

    SQL, PigのCUBE - wyukawa's diary
  • HDFSのファイル書き込み部分のソースを読んでみた Part2 - wyukawa's diary

    前回はこちら HDFSのファイル書き込み部分のソースを読んでみた - wyukawa’s blog ResponseProcessorスレッドをstartする前にnextBlockOutputStreamメソッドを呼び出しデータノードと接続します。 // get new block from namenode. if (blockStream == null) { LOG.debug("Allocating new block"); nodes = nextBlockOutputStream(src); this.setName("DataStreamer for file " + src + " block " + block); response = new ResponseProcessor(nodes); response.start(); } nextBlockOutputStr

    HDFSのファイル書き込み部分のソースを読んでみた Part2 - wyukawa's diary
  • HDFSのファイル書き込み部分のソースを読んでみた - wyukawa's diary

    対象は0.20.2です。該当ソースはDFSClientの内部クラスのDFSOutputStreamとそのさらに内部クラスのDataStreamerとResponseProcessorです。 この辺は象や徹底入門にも書かれていますが、それを参考に少し読んでみましたのでメモっときます。なお動かしてはいません。 ざっと絵にするとこんな感じ。 Hdfs write View more presentations from Wataru Yukawa 書き込みデータはパケットに分割されます。 書き込み要求があるとパケットはdataQueueにキューイングされます。 DataStreamerスレッドがdataQueueを監視しています。 dataQueueからパケットを取得してデータノードに複製数分だけデータを書き込んでいきます。 パケットはdataQueueからackQueueに移動します。 ac

    HDFSのファイル書き込み部分のソースを読んでみた - wyukawa's diary
  • HadoopのMapReduceジョブのチューニングに関する資料があったのでめもっとく - wyukawa's diary

    Hadoop Summit 2012でClouderaの人が発表した資料を見つけたのではっておく。 Hadoop Summit 2012 | Optimizing MapReduce Job Performance View more PowerPoint from Cloudera, Inc. HadoopのMapReduceジョブのチューニングに関するもので、内容的にはHadoop徹底入門の10章の「性能向上のためのチューニング」と若干かぶっているが参考になります。 spillとかのシャッフルフェーズをどうチューニングするかについて詳しく書かれていて、record fullってログに出てたらメタデータがspillしてるからよくないよねみたいなことが書かれてます。 徹底入門だと10.2.2の「Map処理でのフレームワークのチューニング」に書かれていますね。ていうかio.sort.reco

    HadoopのMapReduceジョブのチューニングに関する資料があったのでめもっとく - wyukawa's diary
  • スタースキーマと列指向データベース - wyukawa's diary

    Webエンジニアのための データベース技術[実践]入門 (Software Design plus) 作者: 松信嘉範出版社/メーカー: 技術評論社発売日: 2012/03/09メディア: 単行(ソフトカバー)購入: 20人 クリック: 486回この商品を含むブログを見る 僕はWebエンジニアではないけれども上記のを読み、とりわけ11-3 分析系処理と列指向データベースを興味深く読みました。 そこで分析用途のデータを作る場合にどうやるのがいいのか調べてみたのでメモっておきます。 「おむつを買った人はビールを買う傾向がある」みたいな分析を行うためには時系列に大量の業務データを蓄積してDWHを作ります。 その際にスタースキーマと呼ばれる形式でテーブル設計をします。 中心のファクトテーブルは分析のキー(例:商品ID、顧客ID)と分析対象の数値データ(例:販売数量、販売金額)を持ちます。 この

    スタースキーマと列指向データベース - wyukawa's diary
  • HadoopのMapReduceのシャッフル - wyukawa's diary

    2版の6.4 シャッフルとソートを読んでMapReduceのシャッフルって面白いし興味深いなーと思い、ついでに軽くHadoop 0.20系のソースもあわせて読んでみたのでメモっておく。 シャッフルっていうとまずソートのイメージだよね。ていうか僕自身はそうだった。 ワードカウントの例でいうとこんな感じ。キーでソートしてるね。 まあソートもメインな処理なんだろうけど他にもいろいろやってます。 map関数の出力からreduce関数の入力までの一連の処理をすべてシャッフルと呼ぶと思うんだけど、以下のようなことをやってます。 まずmapタスク側の処理を見て行きましょう。HadoopのソースはMapTaskが該当します。 mapタスクでは出力が書き込まれる循環メモリバッファがあります。これがMapOutputBufferに相当します。 このバッファの大きさがデフォルト100Mで80%書き込まれると

    HadoopのMapReduceのシャッフル - wyukawa's diary
    dayafterneet
    dayafterneet 2012/02/02
    わかりやすい
  • Fabricインストールメモ - wyukawa's diary

    Hadoopのような複数台のマシンを相手にする作業だと一括でコマンド発行したいことがあります。 その際に各マシンにいちいちSSHでログインして作業するのは面倒です。 なのでその辺りを解決するツールが欲しくなります。 Hadoop徹底入門だとparallel-sshが紹介されています。 ただこれだとsudoがうまくいかないんですよね。 sudo: sorry, you must have a tty to run sudoと言われます。 Google Code Archive - Long-term storage for Google Code Project Hosting.によれば-xオプションつけてsshの-tオプションを渡せば良いように見えますが、 pssh -h hostlist -O "StrictHostKeyChecking=no" -x -t -A -l ユーザ -i "

    Fabricインストールメモ - wyukawa's diary
  • hadoopアドベントカレンダー2011 11日目 Hadoopのスレーブノードでのメモリ割当 - wyukawa's diary

    クレジットカード現金化詐欺【業界人が教える口コミ情報】の12/11を担当するwyukawaです。 ネタもつきてきたので他人のふんどしで行きますw 今日はHadoopのスレーブノードでのメモリ割当について書きます。象でいうと9章に書いてある話になります。 元ネタは下記にある以前Hadoopのトラブルシューティングに関する資料があったのでめもっとく - wyukawa’s blogで紹介した資料の日語版です。 Hadoop Troubleshooting 101 - Japanese Version View more presentations from Cloudera, Inc. この資料はHadoopソースコードリーディング 第7回 Tickets, Mon, Nov 28, 2011 at 7:00 PM | Eventbriteでも発表されました。 この資料の中でHadoopの

    hadoopアドベントカレンダー2011 11日目 Hadoopのスレーブノードでのメモリ割当 - wyukawa's diary
  • hadoopアドベントカレンダー2011 6日目 Hiveの統計情報(続き) - wyukawa's diary

    クレジットカード現金化詐欺【業界人が教える口コミ情報】の12/6を担当するwyukawaです。ええ、書く人がいないので12/2に引き続いて書きます。ていうか明日も書く予定です。いい加減ネタつきるので書く人絶賛募集中です。 今日はHiveネタでいきます。 以前Hiveの統計情報 - wyukawa’s blogで少し書きましたが、Hive 0.7から統計情報を格納する機能が入っています。 hive-default.xmlに書かれている主な設定項目は下記のとおりです。 <property> <name>hive.stats.dbclass</name> <value>jdbc:derby</value> <description>The default database that stores temporary hive statistics.</description> </propert

    hadoopアドベントカレンダー2011 6日目 Hiveの統計情報(続き) - wyukawa's diary
  • Hiveの統計情報 - wyukawa's diary

    Hive 0.7からanalyzeコマンドで統計情報が取れるようになりました。 [HIVE-1361] table/partition level statistics - ASF JIRA メタストアをDerby以外にしてるのにderby.logとかTempStatsStoreとかあって何だろうと思ったら統計情報を保存しているようです。 ドキュメントもありました。ていうかこのページってトップからリンクされてないような。。。 StatsDev - Apache Hive - Apache Software Foundation 統計情報の保存先はDerby以外にはMySQLとHBaseが使えるようです。HBaseの意味がよくわからないですが、HiveとHbaseを統合した場合の話かな。 Hiveはいままではルールベースオプティマイザだったのですが、今後はコストベースオプティマイザ対応も進め

    Hiveの統計情報 - wyukawa's diary
  • Hadoopのトラブルシューティングに関する資料があったのでめもっとく - wyukawa's diary

    Hadoop World 2011でClouderaの人が発表した資料を見つけたのではっておく。 Hadoop Troubleshooting 101 - Kate Ting - Cloudera View more presentations from Cloudera, Inc. Clouderaのサポートチームの極意が詰め込まれているようだ。 内容的にはHadoop徹底入門の10章の「性能向上のためのチューニング」と若干かぶっているが参考になります。 io.sort.mb < mapred.child.java.opts とすることとか(ていうかmapred.child.java.optsを増やすことはあるかもしれないがio.sort.mbっていじるもんなのかな)、プロセス数やファイルディスクリプタいじれとか、map出力のスレッドいじれとか、Jetty 6.1.26は使うなとか、盛り

    Hadoopのトラブルシューティングに関する資料があったのでめもっとく - wyukawa's diary
  • ログ解析飲み会 - wyukawa's diary

    10/19(水)に都内某所でログ解析飲み会なるものを開催した。 ログ解析飲み会なのにログが無いってどういうこと?と某氏に突っ込まれたので酔っぱらいの記憶をたよりに書いてみる。ここには書けないオフレコ話も多々あったように思うが忘れたので書かない。 またここに書くことは僕の脳みそで理解した部分に限るが、誤解が含まれている可能性はもちろんあるので変なことを書いていたら指摘していただけると幸いである。 で、この飲み会を開いた経緯としてはですね、僕自身がHiveを用いたログ解析をするようになって他の人の現場寄りの話を聞きたいなーと思ってTwitterで絡んでいたら大物がきたので開催した次第である。大物が誰かはマル秘事項である。一人じゃないとだけいっておこう。 世の中的にも主にWeb業界でHadoopでのBI案件が広まるにつれて、Hive, Pig, Hadoopストリーミング, 生MapReduce

    ログ解析飲み会 - wyukawa's diary
  • 1