たごもりすメモ

コードとかその他の話とか。

2011-04-01から1ヶ月間の記事一覧

簡単にscribedにログを転送するためのエージェント scribeline を作った

まあ実際のコード自体はずいぶん前に書き上がっててGitHubにあったんだけど。tagomoris/scribe_line · GitHub 何で作ったの scribedはログ収集サーバとしてはグッドなんだけど、なぜかエージェント側、ログを送出する側のコード例が極めて貧弱で、たとえば俺…

Webサーバ勉強会#3に参加してきたよ&しゃべってきたよ

震災の影響で日程が変わって行けるようになったけど定員ぴったりだなー、と思ったら枠が増えたので参加してきた。なんと全員発表ということだったので、2日前からネタを急遽考えはじめる始末。結局昔のネタを掘り出して、最近の状況をちょっとまとめてきまし…

Linux mdを構成したら実戦投入する前に実施しておくべきたったひとつの重要なことがら

再起動し、再起動後に md が正常に構成されているか cat /proc/mdstat して確認する。 なんで? Linux md はパーティションタイプ fd (Linux RAID AutoDetect) になっていれば、OS起動時にアレイ構成に必要なパーティションを自動的に集めてきて md をスター…

hp SmartArrayをhpacucliコマンドを使って設定変更する

hpacucliコマンドはHPのサーバ関連のソフトウェアツールキットに含まれてる。インストール方法とかはぐぐって適当に。あまりに使い方がよくわからなくてダメな感じなのでいくつかの手順をメモっておく。 そもそもの使いかた まず hpacucli とコマンドを実行…

16TBを超えるサイズのファイルシステムを作る

無事20TBのRAID-6ボリューム /dev/md0 ができたので、ファイルシステムをどうしようかなー、まあext4でいいか安定路線で、と思って調べてみたら ext4 の最大サイズは 1EB らしい。素敵! ということで作ろうとしてみたら、なんかうまくいかない。 # mkfs -t …

RAIDレベルの話: 各レベルのアレイのビルド/リビルド速度について

RAIDアレイをなんらかの指標をもとに設計するとき、容量、性能および安全性と価格が最初に来るのはともかくとして、それに付随する重要な要素としてディスクがfailしたときのリビルドの所要時間およびリビルド中のパフォーマンス低下具合についても注意は必…

Linux Software RAIDでmdをベリファイする

RHEL系OSでmdadmを入れていると cron.weekly にraid-checkというスクリプトが入る。これは作成済みのmdすべてに対してベリファイをかけるもので、何も考えていないLinux Software RAID利用者でも実は既にベリファイは行われていたんだよ! なんだってー! と…

RAIDレベルの話: 1+0と6はどっちが安全か?

仕事でちょっくら12台のHDDを使ったRAIDアレイを組むんだけど、その折にちょうどTwitterで「RAID-1+0にしないとRAID-6とか怖くて使えませんよ!」というウソ八百な内容のWebページのURLを見掛けたので、いいかげんそのような迷信が消え去ってもよかろうと思…

Hiveに対するThriftの各RPCレスポンス

メモ。HiveServer用に定義されている各メソッドをThrift RPCで呼んだときに何が返ってくるのよ、と。順序的には、基本的には execute をまずクエリつきで呼んで、それに対してクエリプラン・結果データのスキーマ・結果データそのものを取得する、というかた…

複数クライアントからHiveServerへの同時接続

Hadoopクラスタは(ノードの処理能力が許すかぎり)複数のジョブを並行に起動できるが、その一方でHiveServerはシングルスレッドで動作し、複数のクライアントを(厳密な意味で)同時に相手にはできない。そのあたりはWikiに書いてある。 The HiveServer is curr…

HiveServerを使用してnode.jsからHiveQLを実行する

HiveServerはThriftプロトコルをしゃべるので、おなじくThriftで接続すると任意のクエリを発行できたりして大変便利。ということで node.js からもやった。以前からやってる内容の続き。 HiveServerを使用してPythonやPerlからHiveQLを実行する - tagomoris…

圧縮ファイルを入力にしても展開されない症状

CDH3b2にて。 Hadoop Streaming (MapReduce) では入力が圧縮ファイルだと拡張子を見て適当に展開してくれる。くれるはずなんだけど、なんか気付いたらうまく展開できないようになってた。どうもバイナリデータのまま mapper に渡されているらしい。 しかし手…

node.js用のKyoto Tycoonクライアントライブラリ2種類を比較

アプリのデータ格納にKyoto Tycoonでも使うべ、と思って調べてみるとnode.js用には2種類のクライアントライブラリがあるようだ。 kyoto-client - Kyoto Tycoon client for node.js node-kyoto-tycoon - SWDYH どちらも npm install kyoto-client および npm …

node.jsの非同期I/Oにおけるデータ受信のパターンのバリエーション

そもそもなんでnode.jsのThriftライブラリではBufferedTransportがサポートされず、FramedTransportのみが使える状態だったのか。Thriftの歴史的にはBufferedTransportの方が先行して存在しており、また仕様自体も単純のようだ。*1 実装を開始してみてわかっ…

node.js用のThriftライブラリにパッチを書いた

先日の node.jsからThrift経由でHiveServerに通信しようとして力尽きた - tagomorisのメモ置き場 の記事に書いた件、しばらくThriftの BufferedTransport の他言語実装を眺めていたらなんとなく作れそうな気がした*1ので、transport層を置き換え可能にするた…