技術

データ民主化の負の側面

データの活用が当然のことのようになってエンジニア以外でもSQL書いてデータ抽出するのが一般的になってきました。さらにデータサイエンティストの登場により高度な分析もされるようになってきて、顕在化してきたのがHadoopクラスタの無法地帯化とエンジニア…

予期せぬクエリ、データに対してロバストにする

ログ解析基盤を運用しているとユーザから予期せぬクエリやデータが来てシステムが不安定になることがあります。そういうケースに遭遇してどうハンドリングしてきたかをメモっておきます。 1回のprestoクエリの結果が100GBを超えるそんなクエリを連発されたら…

最近は使っているミドルウェアのバージョンアップ作業をしていた

題記の通りです。例えばElasticsearchなら2.4 -> 5.0.1 -> 5.2とバージョンアップした。 Elasticsearch 2.4から5.0.1にアップグレードしていろいろはまった - wyukawa’s blog Elasticsearch, Kibanaを5.0.1から5.2にアップグレードした - wyukawa’s blogHado…

バッチ処理の実装方法

僕はHive, Pythonでバッチ処理を書いてAzkabanでジョブ管理するシステムを構築、運用してかれこれ2年経つのでその経験をもとにバッチ処理の実装方法を書いてみようかと思う。バッチ処理、ジョブ管理について書いてみる - wyukawa’s blogでは主にジョブ管理に…

バッチ処理、ジョブ管理について書いてみる

僕はHive, Pythonでバッチ処理を書いてAzkabanでジョブ管理するシステムを構築、運用した経験が2年ほどあるので今日はバッチ処理、ジョブ管理について書いてみようと思います。僕の経験上Hadoop特有の部分、例えばテスト環境が作りづらいとかバッチサーバー…

NetezzaとかRedshiftとかPrestoとかその辺の話

4日間のNetezza研修に行ってきたのでNetezzaのアーキテクチャについて書いてみる。Netezzaの全体像はこんな感じです。SMP hostというのがクエリを受け付けてparseして最適化してプランを作ります。SMP hostのDiskはDRBDで二重化されています。プランはSnippe…

第1回 Vertica 勉強会に行ってきた

第1回 Vertica 勉強会 : ATND発表者、スタッフのみなさんお疲れ様でした。ありがとうございました。DeNAの勉強会は素晴らしいですね。DeNA水出るし、寿司出るし、無線LAN使えるしで至れり尽くせりです。当日の雰囲気は第1回 Vertica 勉強会 - Togetterを見…

CGI、マルチスレッド、シングルスレッド+イベント駆動そしてNode.js

僕はNode.jsとはそんなに関わりはなくてshibを使っているのが唯一の接点なんだけど、http://mozaic.fm/post/99334017903/10-node-jsを聞いてたら大変に面白かったので面白かった部分について書く。このpodcastは全部で2時間以上あって全部聞くのはなかなか辛…

プログラミング言語自体の開発など下回りを整備することについて

WWDCでAppleがSwiftを発表しましたけど、AppleのSwiftにしろGoogleのGoにしろFacebookのHackにしろ自社でプログラミング言語を作るってなんかすごいなと思いますね。それを作ることにはコストがすごくかかると思うんですけど、それでも作ると判断するのはど…

Hadoopを使ったログ分析システムにおける開発、デプロイのフローについて

Hadoopを使ったログ分析システムっていうのを何回か経験してて、そういえば開発、デプロイのフローがあんまりうまく回せなかったよなあと思ったのでそのあたりについて今日は書きたいと思います。まずネットワーク周りの前提から書きます。サーバーにログイ…

Web APサーバーとWebフレームワークをつなぐもの

インターネット黎明期はCGIが一般的でPerl+CGIで掲示板を作るというのはよくあるパターンだったと思う。CGIは言語非依存で環境変数経由でHTTPリクエストパラメーターなどを受け取って標準出力に出せば良いというシンプルなモデル。リクエストごとにプロセス…

RDBMSのコネクションプーリングとかその辺の話

データベース技術の羅針盤 from Yoshinori Matsunobu これは素晴らしい資料で後半のキャリアの話とか面白いんだけど、今回書くのはp6,p8に書かれていた下記の話です。 PosgreSQLは接続がプロセスベースなのでLL言語との相性がよくない Pgpool(これはプロキシ…

疎結合っていいよね

今までの経験でいろんなレイヤーで依存性べったりで密結合なシステムを見てきてそれをちょっとだけ改善してきて思うところを書いてみる。小さなシステムであれば多少は密結合でも何とかなるかもしれない、というか扱うファイル数、Gitプロジェクト数が1つで…

ログ解析における統計値の妥当性

ログ解析における統計値の妥当性をどうやって担保するのかは難しい問題だと思っていてぶっちゃけ最終的にはオレを信じろ、でも間違ってたらゴメンの世界な気がする。社内で閉じていて外に出ない統計値ならまあいいんだけど、世の中そんな統計値ばかりではな…

監視、モニタリング、サーバー管理

いわゆるSIer(BtoB受託開発がメインでプロパーは管理、パートナーが開発をやるような会社をここでは指す)からWeb系(BtoC自社サービス開発がメインで基本的にプロパーしかいないような会社をここでは指す)に転職して8か月ほど経ちましたが、自分が今までや…

大量データを扱う際に気にするといい(かもしれない)チェックポイント

いままで教えてもらったことを忘れないうちに軽くメモっておく。MB単位のデータだったら気にする必要はそんなに無いと思うけどGB以上になってくるといろいろ考えること増えるのよね。 シングルスレッドで処理するのではなくマルチスレッドでの処理を検討する…

Garbage Collectionについてちょっと調べてみた

HBaseのJuliet PauseをきっかけにしてGarbage Collection(以下GC)についてちょっと調べてみました。そういえば長年Javaでお仕事している割にはGCのこと全然知らなかった(汗GCというのは不要になったメモリを回収することをいいますがそのアルゴリズムにはい…

やったことない仕事をうまくやるための抽象化スキル

抽象化スキルが、生死を分ける時代に : NED-WLTを読んでなんとなく書いてみる自分が過去にやったことある仕事と同じような仕事をアサインされた場合には対応するのが簡単でしょうが当然のことながら世の中そういう仕事ばかりではないわけです。自分がやった…

プログラマに質問して聞いてみたいこと

プログラマの採用面接でFizz Buzz解いてもらうのもいいかもしれないが、個人的にはそういう正解があるものよりかは正解がなくその人の個人的な経験、知識、考え方などをしゃべってもらうような質問が良いと思っている。というか僕が面接官ならしてみたいかな…

プログラマを面接する際に出すコードの問題について

Fizz Buzzは解けてもAntsは解けないwyukawaです。こんにちは。Antsというのはこういう問題です。 長さLcmの竿の上をn匹のアリが毎秒1cmのスピードで歩いています。アリが竿の端に到達すると竿の下に落ちていきます。また、竿の上は狭くてすれ違えないので、…

Puppetについての素晴らしい資料があったのでめもっとく

以前ミドルウェアの設定ファイルのバージョン管理について書きました。 ミドルウェアの設定ファイルをどのようにバージョン管理すべきか - wyukawa’s blogで、最近Puppetについての素晴らしい資料を見つけたのではっときます。 Puppetのススメ View more pre…

ミドルウェアの設定ファイルをどのようにバージョン管理すべきか

僕は最近インフラ屋さんになりつつあるのでミドルウェアの設定ファイルをどのようにバージョン管理すべきという話をちらほら考えてます。あ、実際に何かを試した訳ではないです。あしからず。開発したアプリケーションのソースコードをバージョン管理しない…

要するにプログラミングって

WEB+DB PRESS 総集編 / I told my code to sing - Backnumbers: Steps to Phantasien相変わらず面白いエントリを書いていて素晴らしいですね。リンク先にあるようなレベルの高い話は置いておいて僕自身にとってプログラミングの抽象というのは何だろうという…

ミドルウェア寄りのことが書かれている良い資料

多分有名だと思うけどまずはこちらLinux-DB システム構築/運用入門 (DB Magazine SELECTION)作者: 松信嘉範出版社/メーカー: 翔泳社発売日: 2009/09/17メディア: 単行本(ソフトカバー)購入: 55人 クリック: 3,402回この商品を含むブログ (32件) を見るDRBD…

クラウド時代、ビッグデータ時代に求められるスキルは何なのか?

Google App EngineやAmazon EC2、Microsoft Azure、SalesforceなどのSaaS/PaaS/IaaSが広まるにつれて、 またHadoopやNoSQLのようなビッグデータを扱う技術が登場し広まるにつれて、 従来のシステム開発とは求められるスキルも変わってくるのではないかと思い…

シェルスクリプトのテスト

以前シェルスクリプトのテストについて少し書きました。シェルスクリプトの開発環境 - wyukawa’s blog最近実際にテストを始めたのでどうやっているかを書いてみたいと思います。やりたいことはHiveQLをキックするシェルスクリプトのテストです。ブラックボッ…

シェルスクリプトの開発環境

モダンとまではいかなくてもシェルスクリプトの開発環境ってみんなどうしてるのかなあと思う今日この頃。今はHiveでデータをうごうごいじったりするのにシェルスクリプト使っているんだけどなんだかスクリプト地獄になってきている気がするんだよなあ。前の…

ゆとりなJavaプログラマが読むといいかもしれないオープンソースソフトウェア

Java出来ますって言ってるのにOpenJDKのコードをチェックアウトした事も無いようならモグリである可能性は高い。 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。 OpenJDKのコードをチェックアウトした事も無いモ…

インフラはアプリケーションである

ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE)作者: John Allspaw,Jesse Robbins,角征典出版社/メーカー: オライリージャパン発売日: 2011/05/14メディア: 大型本購入: 10人 クリック: 923回この商品を含むブログ (50件) を見…

シンボリックリンクを使ってのデプロイ

WEB+DB PRESS Vol.62の特別企画を読んで面白いなーと思ったシンボリックリンクを使ってのデプロイについて書いてみます。記事ではhttpd.confを環境毎に切り替えるやり方が紹介されています。なおデプロイ先はLinuxで、リポジトリはステージング環境、商用環…