highlight

2017年3月13日月曜日

空が青い理由

# facebook の投稿(2015-07-29)より再掲

息子(二歳)が訊いてきた。
息「どうして空は青いの?」

これは俺もなんでかなと思って調べた事がある。よしきた任せろ!

2017年3月11日土曜日

Apache Tez を Ubuntu 16.10 にインストールする

Hive on Spark をセットアップしてみようと思ったが、上手くいかなかった。生(MapReduce) Hive で良いかと思ってたが、hive を使っていると相変わらず、hive 2 を使うなら on Spark か Tez を使え。嫌なら Hive 1 にしとけ、と警告が出てくる。じゃあ Hive on Tez を使うか、という事で Tez をインストールする。

まず、Hive on Spark が動かない原因について。 Hive から Spark のタスクを起動しようとするときに、JavaSparkListener クラスが無いという例外が発生する。 Hive のバグレポートにも挙がっているが、現在の Spark では SparkListener クラスを使うようになっていて、JavaSparkListener は Spark 2.0 では deprecated どころか、削除されてしまったらしく、これを使っている現行 Hive 2.1.1 では Spark 2 が使えない。Hive のソースリポジトリの trunk だと、既に SparkListener を使うようになっていたので、checkout してビルドしてみようとも思ったが、metastore のスキーマバージョンが変わったりするし、spark は開発が活発過ぎて、尖った変更がさらっと入ったりする。それがまあ魅力でもあったりする訳だが、この先も互換性が取れなって苦戦するケースがあり得そうだし、ということで、ここでは Tez を使うことにした。Hive on Spark 2 は、Hive 2.2 がリリースされたら、また試してみる事にしよう。

2017年3月8日水曜日

Spark を Ubuntu 16.10 にインストールする

Spark をインストールする。

方針

  • ローカルモードで動かしてみて、Standalone master-slave 方式で動かす。その後 YARN で動かしてみる。
  • YARN で動かすので、Spark History サーバを動かさないと、WebUI での実行履歴が見られない(私が誤解しているかもしれないが)様なので、History サーバは動かす
  • Hive は以前のエントリでセットアップした Metastore サーバを使用する
  • とりあえず spark ユーザは作らず、hadoop ユーザを spark 管理ユーザも代行させる方針。専用ユーザを作ったほうが良さそうなら、改めて設定し直す。

2017年3月2日木曜日

Hive を Ubuntu 16.10 にインストールする

方針

Hadoop はインストール済み、という前提

  • /opt/hive を $HIVE_HOME とする
  • Hive 用ユーザ hive を作成する
  • metastore には、mariadb を利用する
  • Hive ユーザ認証は取り敢えず設定しない。つまり NOSASL

2017年3月1日水曜日

Ubuntu で eclipse をインストールする

Ubuntu には eclipse がパッケージで用意されているが、バージョンを見てみると 3.8.1 だった。Indigo あたりになるのだとすると、流石にちょっと古すぎる。Neon をダウンロードしてインストールしたほうが良さそうだ。

eclipse はホームディレクトリに eclipse ディレクトリを作って、そこに tar xvzf するだけ。あとは、Ubuntu のランチャアイコンを用意すれば、一々端末を起動しなくて済む。