Hive
Cloudera World Tokyo 2013で登壇する機会をいただいたので行ってきた。Cloudera World Tokyo 2013 | Cloudera Japan しゃべってきた しゃべる方は最近作ってるNorikra……の話だけだとなんでCloudera World Tokyoだということになるので、集計処理をSQLに一本…
shib v0.2 beta なのを書いてる - tagomorisのメモ置き場書いてましたが、APIをひととおりfixしたのでgithub上でv0.2.0のタグを打ちました。お仕事で既にこのバージョンを使ってます。 移行したい人は上記エントリの注意書きを読んでください。http://github…
だいぶ前に最初のバージョンをつくった shib というHive Webフロントエンドツール、ずっと使ってるんだけど色々こまめに手を入れたりしてた。tagomoris/shib · GitHub Hive Client Webアプリケーション shib をつくった - tagomorisのメモ置き場 Hive WebCli…
hiveserver が /tmp 下に消されると困るファイルを置く問題、hive 0.10に上げれば直るらしい! と思ったのでうっかり yum update hadoop hive したら Hive 0.10 のmetastoreが Hive 0.9 と非互換なので動かなくなりました。 CDH4.1.x使ってる人はいま yum up…
CDHでHadoopを使っている良い子のみんな、hiveserverまわりで罠があるので気をつけましょう! という話。ふたつあるので順番に。 hive-server 再起動時にログがtruncateされる hiveserverがなんかおかしかったりすると、原因究明はやるとしてとりあえず再起…
YARN使っててHDFSにログを吐くよう設定してるとアホみたいにたまっていくので削除しないとやばい。 とりあえず10日経過したら削除するようにした。 ( for searchpath in '/tmp/hive-*' '/mr-history/done/*/*' '/mr-history/tmp/*' '/yarn/user/*/.staging' …
ひとことで言うと「通常必要なパーティション階層の更に下にもうひとつパーティションを掘っておけ」だけ。 普通のパーティション設計 仮にWebサーバのアクセスログを投入するためのテーブル accesslog があるとする。このテーブルを、まずサービス名 servic…
馬鹿でかいデータを2回なめたくないでござる! という話。SQLなら WITH ROLLUP で一発なんだけどHiveでは現状サポートされていない。(hive 0.9.x or before) select x,sum(y) group by x と select sum(y) を出すのに同じデータセットを2回舐めたくない、だ…
HadoopSCRでしゃべったときにデモったりNHNテクノロジーカンファレンスでデモったりしたHiveクエリのスケジュール実行および結果のグラフ登録をやる社内用のアプリケーションがあったんだけど、コードの整理をやるついでに社内依存部分を切り分けたりしたの…
きわめてざっくり書くと以下のような感じ 同じようなクエリを発行しているふたつの出力の圧縮方法が違う 片方はHDFS上でのファイル全体がgzip圧縮されている (ファイルを見ると 00000_0.gz のようになっている) 片方はレコード/ブロック単位でのgzip圧縮にな…
メモ。CDH3u2 (hive-0.7.1-cdh3u2) での話。(1/23 HiveServerについていくつか追記した)Hiveで自分でつくった関数(User Defined Function: UDF)を使いたい! と思い艱難辛苦を乗り越えJavaのコードを書きjarにまとめたとする。書くまでの話はWikiの該当ペー…
(2013/04/02追記 see: http://d.hatena.ne.jp/tagomoris/20130402/1364898063 )まだ完成度がいまいちだからなーと思ってエントリ書いてなかったんだけどLTでしゃべっちゃったので、ちゃんと書いておく。Hiveにクエリを発行して結果を確認するためのWebアプリ…
メモ。HiveServer用に定義されている各メソッドをThrift RPCで呼んだときに何が返ってくるのよ、と。順序的には、基本的には execute をまずクエリつきで呼んで、それに対してクエリプラン・結果データのスキーマ・結果データそのものを取得する、というかた…
Hadoopクラスタは(ノードの処理能力が許すかぎり)複数のジョブを並行に起動できるが、その一方でHiveServerはシングルスレッドで動作し、複数のクライアントを(厳密な意味で)同時に相手にはできない。そのあたりはWikiに書いてある。 The HiveServer is curr…
HiveServerはThriftプロトコルをしゃべるので、おなじくThriftで接続すると任意のクエリを発行できたりして大変便利。ということで node.js からもやった。以前からやってる内容の続き。 HiveServerを使用してPythonやPerlからHiveQLを実行する - tagomoris…
先日の node.jsからThrift経由でHiveServerに通信しようとして力尽きた - tagomorisのメモ置き場 の記事に書いた件、しばらくThriftの BufferedTransport の他言語実装を眺めていたらなんとなく作れそうな気がした*1ので、transport層を置き換え可能にするた…
力尽きたのでメモだけ。 Thriftがバージョン 0.6.0 でnode.jsに対応したことになっているが、送信/受信ともに FramedTransport でしか動作しない 開発はここ https://github.com/wadey/node-thrift 今のところFramedTransport以外の実装を作る気配はなさそう…
HiveServerはThriftプロトコルをしゃべる*1ので、おなじくThriftで接続すると任意のクエリを発行できたりして大変便利。ということで、やったので、そのメモ。 準備 まずHiveServerだけど、hiveコマンドを叩いてクエリが実行できる状態なら以下のコマンドで…
Hive CLIはHiveQLをがんがん書くとさくさくMapReduceされて超絶便利なんだけど、HiveServerをどこかに立てて複数のアプリケーションからそこに接続する場合、Hive CLIをどう使えばいいの、というのがぱっとわからなかった。ぐぐってみてもぜんぜん方法がひっ…