hadoop
Vagrant
Spark
hive

「Hadoop+Hive」のローカル開発環境の構築を自動化する

More than 1 year has passed since last update.


はじめに

Hadoop+Hive を使って大量データの分析基盤を構築することがあります。


Hadoop+Spark を使うケースも増えています。


課題

以下のような理由で、 Hadoop+Hive / Hadoop+Spark のいずれもローカル開発環境の構築が非常に大変です。


なぜローカル開発環境の構築が大変なの?


理由1:構成するアプリケーション数が多い

Hadoop+Hive の場合を例に取ると、以下のようなアプリケーションのインストールが必要です。


  • hadoop

  • hadoop-client

  • hadoop-conf-pseudo

  • hadoop-hdfs

  • hadoop-hdfs-datanode

  • hadoop-hdfs-namenode

  • hadoop-hdfs-secondarynamenode

  • hadoop-mapreduce

  • hadoop-mapreduce-historyserver

  • hadoop-yarn

  • hadoop-yarn-nodemanager

  • hadoop-yarn-resourcemanager

これらをイチからインストールするのは非常に大変です。


理由2:設定項目が非常に多い

アプリケーション数が多いことに加えて、設定項目が非常に多いです。

誤った設定により環境が故障してしまうこともあります。

そのため、設定変更によるチューニングに足踏みしてしまうわけです。


解決策はないの?

ローカル開発環境の構築を用意にするために、 Vagrant がよい解決策となります。

Docker という方法もありますが、Windows/Linux/Macのいずれの環境での動作実績が豊富さ、ネット上での情報の集めやすさは Vagrant に軍配があがります。


作ってみました

作っては壊す ができるように、 vagrant up コマンドを実行した際に自動的に Hadoop+Hive 環境が出来上がるような仕組みを作ってみました。

Vagrantfile と プロビジョン時に実行されるコマンド をまとめ、Githugに公開しました。


使い方

以下のコマンドを実行するだけです。

$ git clone git@github.com:genzouw/hive-pseudo-distributed.git; cd hive-pseudo-distributed/

$ vagrant up


最後に

Hadoop+Spark の組み合わせについても、上記のVagrantfile+setup.shを拡張して実現できると思います。

大小にかかわらず、フィードバッグをお待ちしております!