タグ

ブックマーク / tagomoris.hatenablog.com (85)

  • Ruby 2.1.1 + Fluentd 0.10.44 + Cool.io 1.2.1 - たごもりすメモ

    Ruby 2.1が正式にリリースされてから試してなかったので、試した。ついでにGVLまわりの改善があったとかいうCool.io 1.2.1 も入れたり、Fluentdも新しくしてみたり*1 で、2日くらい経ったけど、良さそう。26日午後にこのサーバの全プロセスを切り替えた。 これはdeliverと読んでいる中継用のFluentdノード(8プロセス)だけど、他の役割のノード(exec_filter + webhdfs)でもやってみてて、そっちも問題ない。CPU使用率もメモリ使用率も前後でほとんど変化が見られなかった。 なお変更前の構成は Ruby 2.0.0-p195 + Fluentd 0.10.39 + Cool.io 1.1.1 でした。 安心して使える良いアップデートだと言えるのではないでしょうか。すばらしい。 なお Ruby 1.9.x をお使いの皆様(td-agentユーザを含む

    Ruby 2.1.1 + Fluentd 0.10.44 + Cool.io 1.2.1 - たごもりすメモ
  • 4年前、おれがSIerの片隅で、何者でもなかった頃 - たごもりすメモ

    今からちょうど4年前の2010年2月、某巨大SIerの片隅でExcelPowerPointばかりを眺めて過ごしていた頃、おれは仕事でも仕事以外でもコードなんかまったく書いていなかったし、GitHubのアカウントも持ってなかった。毎日見積書とWBSと納品書と請求書と、Excel方眼紙の詳細設計書と格闘してた。 当時おれは30歳だった。一度はプログラマとして生きるのは自分には無理だと思って入社したSIerで数年やってて、そこそこ成功した数年を送っているとは思っていたけど、でもやっぱり、そんな毎日に飽きていた。 技術力を重視とか言いながらプロパー社員にコードを書かせようとしない会社の方針にも、svnもgitも閉じられててガチガチに監視されたネットワークに繋がせておいてオープンソースがどうのと言う文化にも、手順や履歴を重視とか言いながらロクにバージョン管理システムを使おうとしない一部の同僚にも、

    4年前、おれがSIerの片隅で、何者でもなかった頃 - たごもりすメモ
  • LINE Developer Meetup in Fukuoka #1 でしゃべってきた - たごもりすメモ

    勤務先であるところのLINE株式会社*1がこれから月イチでdeveloper meetupを福岡でやる、ついては第一回目でしゃべってくるがよい、ということになったので、いってきた。わーい出張だー。*2 LINE Developer Meetup in Fukuoka #1 - connpass 話題はどうしようかと思ったけど、普通に自分のお仕事そのものについて話すか、ということでログ収集・集計システムの概要、これまでの流れおよび最近の変更を設計指針なんかの話もからめてひと通りやった。1時間近い話になってしまった。 Log Analysis System And its designs in LINE Corp. 2014 early from SATOSHI TAGOMORI 過去のスライドURLも貼ってあるけど、基的にはそれを受けて、更にそこからNorikraやPrestoを加えたとき

    LINE Developer Meetup in Fukuoka #1 でしゃべってきた - たごもりすメモ
  • fluentdとシステム設計の小ネタ - たごもりすメモ

    あるいは http://yugui.jp/articles/879 へのreply。 システム監視をfluentdに統合してしまうべきか否か システム監視は分けておいた方がいいと思う。分けるべき、とまでは言わないけれど。 それらの仕組みには相応の必要な機能セットがあり、それらは長い歴史の中で比較的決まった機能セットに収斂してきており、その収集・モニタリング・可視化・アラート通知など決まりきったパターンを様々な項目について停止なく行う必要がある。 Fluentdの各種プラグインを用いることで同じような機能は実現できる。そのプラグインのうち数割は自分が書いものだったりする。とはいえ各ホストのシステム監視までそこで行うことを想定して書いたかというと、もうちょっと高いレイヤでの監視・集計、つまりサービス単位などを目的としたものが多い。サーバ単位で行おうとしたときに設定が雑多なものになるのはおそらく

    fluentdとシステム設計の小ネタ - たごもりすメモ
  • Focuslight v0.1.0 - たごもりすメモ

    グラフツールをひとつ作り、ひととおり動くらしいところまでいったので、とりあえず v0.1.0 としました。Focuslight と名付けています。 https://github.com/tagomoris/focuslight これは何かというと、このblogでも何度も紹介している GrowthForecast のRuby移植版です。同じ機能というだけでなく、内部データの互換性がありますし、HTTP APIの互換性も可能な限り保っています。ビューまわりは丸パクりしてます。 既に日国内ではGrowthForecastは割と知られているだろう、という前提で説明をすると、これは「GrowthForecastの話は聞くが、でもPerlのツールはなー、ちょっとなー」というわがままさんのために作られたものであり、それ以上でもそれ以下でもありません。自分はおそらく今後もGrowthForecastを使

    Focuslight v0.1.0 - たごもりすメモ
  • HiveServerがZooKeeperに繋ぎまくってHiveServer2もろとも死ぬ話 - tagomorisのメモ置き場

    (訂正あり) HiveServer2で初めて有用になる hive.support.concurrency というプロパティがあって、こいつを有効にするとHiveクエリでテーブルロックがとれるようになる。まあ、でかい変更とかを他に邪魔されずにやりたい時は欲しいかもね。 で、この機能はzookeeperを使うので、オプションを true にするときは hive.zookeeper.quorum を指定しましょう。 が、こいつを有効にしているとき、HiveServer(訂正)およびHiveServer2はzookeeperへの接続をリークさせます。どうなるかというとズバリ zookeeper の maxClientCnxns から溢れて正常に動作しなくなります。 なお HiveServer では hive.support.concurrency は有効にしても意味がありませんが、このコネクション

    HiveServerがZooKeeperに繋ぎまくってHiveServer2もろとも死ぬ話 - tagomorisのメモ置き場
  • 2013年を振り返ってみる - たごもりすメモ

    今年はよくコードを書いたなあ、という気がする。OSSな年だった。個人の感想です。 Fluentd 今年はプラグイン等を書いた数はさすがに落ち着いた、けどpullreqをよくもらうようになって、人のコードを見る機会が増えた気はする。 今年新規に作ったのはこれだけ。 fluent-plugin-secure-forward fluent-plugin-norikra fluent-plugin-ruby-memory-usage-profiler fluent-plugin-dummydata-producer fluent-plugin-bigquery fluent-plugin-buffer-lightening fluent-plugin-buffered-stdout だいたい最後の駆け込みだけど、secure-forward って今年だったのか。暗号化暗号化うるせーなと思って使う予

    2013年を振り返ってみる - たごもりすメモ
  • 自家製 td-agent のrpmをつくる - たごもりすメモ

    自社サービスの運営のために fluentd を使っているとrpmでインストールできる td-agent が大変便利だ。 便利だが、自社内で使うんだから、もう最初から自社用の設定とかその設定に必要なプラグインとか入っててほしい。そんで yum install td-agent をサーバ上で実行したら設定とかいじらないでいいようにしたい。みんなラクをしたいでしょ!? もちろん td-agent のリポジトリをforkしてあれこれ手を入れればできるが、そうするとその後のメンテナンスが面倒だ。リポジトリ自体のアップデートはTreasure Dataの人に頑張っていただいて、我々は spec をいじる程度に収めておきたい。みんなラクをしたいよねー。 した いろいろと td-agent のビルドスクリプトに手を入れる必要はあったが、もうその修正は当たっているのでみなさんは以下の手順を実行するだけでよろ

    自家製 td-agent のrpmをつくる - たごもりすメモ
  • Fluentd Casual Talks #3 開催してきた&しゃべってきた - たごもりすメモ

    Fluentd Casual Talks #3 : ATND 開催しました。いつもながら会場を :DeNA さんにお借りしまして、いつもいつも大変お世話になっております。ありがとうございました。160人の募集に対して応募が最終的には200人弱、会場には定員の7割を超えるくらいは来てたのかなと思います。大盛況で良いことだったと思います。 で、もう他に感想エントリもあるようなのであまり書かないけど、fluentd v11-preview が突如リリースされたり*1、某TD社の新サービスが突然発表されたり*2、面白い人達がなんか面白いことやってて面白くて非常によかった。またやりたい。 しゃべってきた またしょうこりもなく Norikra の話。最近 fluent-plugin-norikra を大規模に整理したのでそれもからめて。 fluent-plugin-norikra #fluentdca

    Fluentd Casual Talks #3 開催してきた&しゃべってきた - たごもりすメモ
  • Fluentdとはどのようなソフトウェアなのか - たごもりすメモ

    Fluentd というソフトウェアがある。日国内ではそこそこ話題になってきたが、何ができるのか、何に使うと嬉しいのか、何に使えるのか、という点について詳細をよく知らないという人もおそらくまだ多いことでしょう。 なので、簡単にまとめる。 http://fluentd.org/ なお以下の個別項目ごとに書いていくが、その手前にまとめを置いておくので忙しい人はそれだけ読むとよい。インストールや設定については導入部分については日語の記事はもう多くあるので、触れない。 概要 できること ログの収集 センサデータ等の収集 汎用データ処理プロセッサとして 頻出ユースケース ログの収集 データの集約 簡単なリアルタイム集計 ソフトウェアとしての特徴 コア プラグイン 安定性 性能 開発体制 コミュニティ ぶっちゃけどうなの? まとめ 現時点で、複数の場所に分散したデータや常に増え続けるデータの安全な転

    Fluentdとはどのようなソフトウェアなのか - たごもりすメモ
  • Ruby 2.1.0-preview2 で #fluentd (というかmsgpack)は動きません - たごもりすメモ

    このチケット(既にclosed)の関連なんだけど。 http://bugs.ruby-lang.org/issues/9106 Ruby 2.1.0-preview2 で gem install msgpack すると、ビルド&インストールされたgemのディレクトリにおいて lib 以下にビルド済みバイナリファイル(*.so や *.bundle)がコピーされておらず、実行時にLoadErrorが出ます。手動で msgpack.so (など)をコピーすれば動きます。 Cool::IO などを試したところそっちは lib 以下にコピーされているようなので extconf あたりの書き方によるのではないかなーと思いますが、rubygemsの変更に伴うものであることも間違いありません。そこまで行くと自分にはよくわからないので誰かにどうにかしてほしいところ。 なんにしろ、注意が必要です。このまま

    Ruby 2.1.0-preview2 で #fluentd (というかmsgpack)は動きません - たごもりすメモ
  • Cloudera World Tokyo 2013 行ってきた&しゃべってきた - たごもりすメモ

    Cloudera World Tokyo 2013で登壇する機会をいただいたので行ってきた。 Cloudera World Tokyo 2013 | Cloudera Japan しゃべってきた しゃべる方は最近作ってるNorikra……の話だけだとなんでCloudera World Tokyoだということになるので、集計処理をSQLに一化してラクしよう、という文脈でHiveとNorikraで全部片付けるようにするといろいろ便利だしお仕事も回るよ! という話。 で、ついでにv0.1.0をリリースしたばかりのNorikraというやつがどういうソフトウェアなのか、について簡単に紹介した。どういうソフトウェアなのかがいまいちわからん、という話が同僚からも聞かれていたので、分かりやすい話を一度しておこうかなと。*1 Batch and Stream processing with SQL fro

    Cloudera World Tokyo 2013 行ってきた&しゃべってきた - たごもりすメモ
  • Review: Instant Apache Hive Essentials How-to - たごもりすメモ

    突然英語でメールがやってきてレビューしてくれないかと頼まれ、面白そうだから引き受けて読んでみた。日語でしかレビュー記事書かないけど大丈夫? と確認したら大丈夫だといって電子書籍データをもらいました。すごいことやってる会社があるなあ。イギリスの(電子書籍専門の?)出版社みたいだけど。 なおフォーマットは pdf, epub, mobi のどれでもダウンロードできる。すごい。日はなぜこうじゃないの。 で、読んだ。76ページの短い。 ざっくり言うと 英語だけどすごく簡単な英語で書かれてて、きわめて簡単に読める。manとか普通に英語で読んでる人なら楽勝だと思う。読めば普通に導入からいろんなクエリを発行するところまで行ける。リファレンスには使えない*1けど、それはまあ、wikiを見ればいいんじゃないですかね。 各トピックについてはかなり短いが、必ず前提になるテーブルの準備をするためのクエリ*2

    Review: Instant Apache Hive Essentials How-to - たごもりすメモ
  • ruby 2.1.0-preview1 を fluentd で試してみた (追記あり) (再度追記あり) - たごもりすメモ

    2.1.0-preview1 が出た。RGenGCはそのロジックがいかにもFluentdにジャストフィットしそうなので期待していた。あとGCまわりも含めあれこれ変わってるので、使うと事故るなら早めに確認しておこうかな、という感じ。 確認したノードは以下の2種類で1台ずつ。 fluentd + out_exec_filter (+perlの外部プロセス) でログをparseするworker fluentd で大量のクライアント(fluent-agent-liteなど)から接続を受け付け、fluentdクラスタの各ノードへロードバランスするdeliver で、日の12:40くらいに変更したと思いねえ。そのグラフがこれ。トラフィック、CPU使用率、メモリ使用量。 worker 起動するrubyのバージョンを変えてからぐんぐんメモリ使用量が伸びはじめ、見てるうちに物理メモリ量を突破しそうになった

    ruby 2.1.0-preview1 を fluentd で試してみた (追記あり) (再度追記あり) - たごもりすメモ
  • Fluentd Config DSLについての話 - たごもりすメモ

    Fluentd に Config DSL を導入しろや! つまり設定をRubyのコードで書かせろや! という声は前から多かった。が、なんかいろいろ面倒な思惑が交錯し、あと「設定ファイルにrubyのコードでcallbackとか書いてプラグインの挙動を制御したい!」とか更に面倒なことを言いだした人がいたせいでDSL以外の設定書式でそれどうすんの……とコミッタの精神状態がどん底まで落ち込み長らく放置されていた。 みんなもOSSプロジェクトにfeature requestするときはあんまりステキすぎる機能のリクエストをする前に少し考えてみよう。まじで。 https://github.com/fluent/fluentd/pull/97 で、そんな数ヶ月ののち、ちょうど Fluentd v11 ハッカソンなるものがあったので、生ハムべつつワイン飲んでたらConfig DSLのことを思い出した。まー

    Fluentd Config DSLについての話 - たごもりすメモ
  • Fluentd v11移行を前に自分がAuthorのFluentd pluginについて - たごもりすメモ

    ぶっちゃけ一人で全部移行とか無理!!!!!!! あと自分で使ってないのとかもあるので、メンテナ(&v11へのポーティング)を引き受けてくれる人を絶賛募集中です。v10の今から持っていっていただいて全く構いません。どうかよろしくお願いします。 まあ単純なプラグインもだいぶ多いのでよい練習・経験になるのではないでしょうか!*1 自分でやるよリスト これは自分で使ってるし、まあ多分やるだろうなー。でも誰か協力してくれれば早く進む! あと共同メンテナはいつでも募集中です。 fluent-plugin-flowcounter fluent-plugin-datacounter fluent-plugin-forest fluent-plugin-growthforecast fluent-plugin-webhdfs fluent-plugin-numeric-monitor fluent-plug

    Fluentd v11移行を前に自分がAuthorのFluentd pluginについて - たごもりすメモ
  • Javaの Class.forName() メソッドを経由してJRubyで定義したclassを取得する方法は無いものか(追記あり) - たごもりすメモ

    JRuby経由でEsperを使ってるんだけど、そこにこんなコードがある。 String className = desc.getFunctionClassName(); Class clazz; try { ClassLoader cl = Thread.currentThread().getContextClassLoader(); clazz = Class.forName(className, true, cl); } catch (ClassNotFoundException ex) { throw new EngineImportException("Could not load aggregation class by name '" + className + "'", ex); } このコードで解決される clazz にどうにかしてJRubyで定義したclassを渡したいな

    Javaの Class.forName() メソッドを経由してJRubyで定義したclassを取得する方法は無いものか(追記あり) - たごもりすメモ
  • fluent-plugin-secure-forward v0.1系のお話 - たごもりすメモ

    前に作ってえいやでリリースしてから「メンテナ募集!」で放置されていた fluent-plugin-secure-forward ですが。 #fluentd Casual Talks #2 やってきた&fluent-plugin-secure-forwardの話 - tagomorisのメモ置き場 手元で用途無いからもうこれ以上やらないよ宣言してたんだけど、その後放置の数ヶ月を経てうっかり用途のほうが出てきてしまった。なんということだ。 v0.1.3 リリース内容 ということであれこれ直して手元で番環境に投入したので、個人的なポリシーに従って v0.1.0 としてリリースした。その後バグが見付かったりで直してたのでもう既に v0.1.3 だけど。 fluent-plugin-secure-forward | RubyGems.org | your community gem host ta

    fluent-plugin-secure-forward v0.1系のお話 - たごもりすメモ
  • Linuxサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか - たごもりすメモ

    完全に このエントリ のネタパクりです。すいません。 何に使われてるかわかったもんじゃないマシンとか開発用サーバとかだと超巨大なバイナリとか置いてあるかもしれませんが、プロダクション用のサーバでそういうことは無いとしましょう。 その場合、原因はだいたい以下のどれかです。www/appとdbが別マシンに分かれてる場合は更に絞り込めますね。 wwwサーバやappサーバ ログ 圧縮してあるが保存世代数が多くて厳しいケース 圧縮し忘れてるケース 圧縮どころかローテーションすら忘れてて1ファイルどかんと存在するケース ローテーションがうまくいかなくて deleted ファイルなケース tmpデータなど(app) キャッシュサーバのディスクキャッシュ dbサーバ データ実体 (ib_data) バイナリログ ログの場合でも、ディスク上のどこにログが書かれてるかは色々なパターンがある可能性がありますね。

    Linuxサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか - たごもりすメモ
  • Hadoop徹底入門 第2版 - たごもりすメモ

    著者の方からいただきました! ありがとうございます! Hadoop徹底入門 第2版 オープンソース分散処理環境の構築 作者: 太田一樹,岩崎正剛,猿田浩輔,下垣徹,藤井達朗,山下真一,濱野賢一朗出版社/メーカー: 翔泳社発売日: 2013/07/09メディア: 大型この商品を含むブログ (5件) を見る 第1版も持ってたんだけど、較べてみると第2版のほうがはるかに出来がよくなってると思います。1版だと hadoop v0.20 と v0.21 の両論併記みたいになっていたところが CDH4 + MRv1 を一貫して対象とすることでずっとすっきりした内容になってますね。 というか当に全体的にCDH4にしっかり対応した内容になっていて、まあ今から入門する人に古い環境について教えることもあるまい、と思うと、これは今から始める人には当に良い内容になっているんじゃないでしょうか。 Nameno

    Hadoop徹底入門 第2版 - たごもりすメモ