LoginSignup
26
27

More than 5 years have passed since last update.

Vagrant で 始める CDH5 (Hadoop) + Hive + Impala 環境構築

Last updated at Posted at 2014-11-04

Hadoop、 Hive、Impala に関する書籍をちょこちょこ読み始めて、手元に実行環境が欲しくなったのでさくっと構築。

必要なもの: メモリ16GB以上積んだ Mac or Linux インストール済みのPC。

以下の記事を参考にしつつテスト環境を作る。
how-to-install-a-virtual-apache-hadoop-cluster-with-vagrant-and-cloudera-manager

VirtualBox のインストール

以下から最新版をインストール。
https://www.virtualbox.org/wiki/Downloads

Vagrant のインストール

以下から最新版をインストール。
http://www.vagrantup.com/downloads

Vagrant によるクラスタ環境構築

ホストのコンソールで次のコマンドを実行。

$ mkdir ~/vagrant
$ cd ~/vagrant/
$ vagrant plugin install vagrant-hostmanager
$ git clone https://github.com/DandyDev/virtual-hadoop-cluster.git
$ cd virtual-hadoop-cluster
$ vagrant up

Cloudera Manager によるクラスタ環境設定

ブラウザで以下にアクセス。
http://vm-cluster-node1:7180

Cloudera Manager 5 の画面にアクセスできるはず。

  • admin / admin でログイン。
  • Cloudera Express を選んで「続行」をクリック。
  • CDHクラスタインストールのホストを指定。
    • vm-cluster-node[1-4] と入力して「検索」をクリックすると4台のノードが検索できる。
  • クラスタのインストール > リポジトリの選択
    • デフォルトのまま「続行」をクリック。
  • クラスタのインストール > JDK インストールオプション
    • デフォルトのまま「続行」をクリック。
  • クラスタのインストール > SSH ログインの資格情報を入力してください。
    • 別のユーザー: vagrant パスワード: vagrant パスワードの確認:vagrant を入力。これでクラスタのインストール作業が進む。
      • 途中で1台のみインストールが進行しなくなったので一度中止をクリックした後、もう一度インストールを進めたら問題なく進行。「続行」をクリック。
  • クラスタのインストール > 選択した Parcel のインストール
    • 各種パッケージがインストールされるのを待つ。終わったら「続行」をクリック。
  • クラスタのインストール > ホストが正常かどうかの検査
    • インストール状況を確認できる。「続行」をクリック。
  • クラスタのセットアップ > クラスタにインストールする CDH 5 サービスを選択してください。 *「すべてのサービス」を選んで「続行」をクリック。
  • クラスタのセットアップ > ロール割り当てのカスタマイズ デフォルトのまま「続行」をクリック。
  • クラスタのセットアップ > データベースセットアップ
    • デフォルトのまま「続行」をクリック。
  • クラスタのセットアップ > 変更の確認
    • デフォルトのまま「続行」をクリック。
  • クラスタのセットアップ > 進行状況
    • 全てインストールされるのを待ち「続行」をクリック。

これで Cloudera Manager のホーム画面にアクセス出来る。

Impala のインストール

http://gyazo.com/f606d5ead7ffe1152e9353ae6f1f1204
f606d5ead7ffe1152e9353ae6f1f1204.png

この図の6になっている部分をクリックし、Impalaをダウンロード。
画面下部の Cluster 1 の部分の配布ボタンをクリック。

作成したクラスタにログイン

ホストのコンソールで次のコマンドを実行。

$ ssh vagrant@vm-cluster-node1

PASS は vagrant

YARN で MapReduce 処理の動作チェック

vagrant@vm-cluster-node1 で作業。

$ sudo su - hdfs
$ hadoop jar /opt/cloudera/parcels/CDH-5.2.0-1.cdh5.2.0.p0.36/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 4 100

Job の実行状況は下記URLで確認できる。
http://vm-cluster-node1:8088/cluster

実行結果

Number of Maps  = 4
Samples per Map = 100
Wrote input for Map #0
Wrote input for Map #1
Wrote input for Map #2
Wrote input for Map #3
Starting Job
14/11/03 11:44:03 INFO client.RMProxy: Connecting to ResourceManager at vm-cluster-node1/10.211.55.100:8032
14/11/03 11:44:04 INFO input.FileInputFormat: Total input paths to process : 4
14/11/03 11:44:04 INFO mapreduce.JobSubmitter: number of splits:4
14/11/03 11:44:05 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1415003058856_0001
14/11/03 11:44:05 INFO impl.YarnClientImpl: Submitted application application_1415003058856_0001
14/11/03 11:44:05 INFO mapreduce.Job: The url to track the job: http://vm-cluster-node1:8088/proxy/application_1415003058856_0001/
14/11/03 11:44:05 INFO mapreduce.Job: Running job: job_1415003058856_0001
14/11/03 11:44:25 INFO mapreduce.Job: Job job_1415003058856_0001 running in uber mode : false
14/11/03 11:44:25 INFO mapreduce.Job:  map 0% reduce 0%
14/11/03 11:44:39 INFO mapreduce.Job:  map 25% reduce 0%
14/11/03 11:44:40 INFO mapreduce.Job:  map 50% reduce 0%
14/11/03 11:44:50 INFO mapreduce.Job:  map 100% reduce 0%
14/11/03 11:45:01 INFO mapreduce.Job:  map 100% reduce 100%
14/11/03 11:45:02 INFO mapreduce.Job: Job job_1415003058856_0001 completed successfully
14/11/03 11:45:02 INFO mapreduce.Job: Counters: 49
         File System Counters
              FILE: Number of bytes read=62
                    FILE: Number of bytes written=532213
                          FILE: Number of read operations=0
                                FILE: Number of large read operations=0
                                      FILE: Number of write operations=0
                                            HDFS: Number of bytes read=1084
                                                  HDFS: Number of bytes written=215
                                                        HDFS: Number of read operations=19
                                                              HDFS: Number of large read operations=0
                                                                    HDFS: Number of write operations=3
                                                                    Job Counters 
                                                                        Launched map tasks=4
                                                                                 Launched reduce tasks=1
                                                                                          Data-local map tasks=4
                                                                                                     Total time spent by all maps in occupied slots (ms)=40475
                                                                                                           Total time spent by all reduces in occupied slots (ms)=5994
                                                                                                                 Total time spent by all map tasks (ms)=40475
                                                                                                                       Total time spent by all reduce tasks (ms)=5994
                                                                                                                             Total vcore-seconds taken by all map tasks=40475
                                                                                                                                   Total vcore-seconds taken by all reduce tasks=5994
                                                                                                                                         Total megabyte-seconds taken by all map tasks=41446400
                                                                                                                                               Total megabyte-seconds taken by all reduce tasks=6137856
                                                                                                                                               Map-Reduce Framework
                                                                                                                                                          Map input records=4
                                                                                                                                                              Map output records=8
                                                                                                                                                                  Map output bytes=72
                                                                                                                                                                      Map output materialized bytes=136
                                                                                                                                                                          Input split bytes=612
                                                                                                                                                                                Combine input records=0
                                                                                                                                                                                        Combine output records=0
                                                                                                                                                                                                Reduce input groups=2
                                                                                                                                                                                                       Reduce shuffle bytes=136
                                                                                                                                                                                                              Reduce input records=8
                                                                                                                                                                                                                     Reduce output records=0
                                                                                                                                                                                                                            Spilled Records=16
                                                                                                                                                                                                                                    Shuffled Maps =4
                                                                                                                                                                                                                                             Failed Shuffles=0
                                                                                                                                                                                                                                                    Merged Map outputs=4
                                                                                                                                                                                                                                                           GC time elapsed (ms)=211
                                                                                                                                                                                                                                                              CPU time spent (ms)=5230
                                                                                                                                                                                                                                                                  Physical memory (bytes) snapshot=1845346304
                                                                                                                                                                                                                                                                           Virtual memory (bytes) snapshot=8395341824
                                                                                                                                                                                                                                                                                   Total committed heap usage (bytes)=1530396672
                                                                                                                                                                                                                                                                                   Shuffle Errors
                                                                                                                                                                                                                                                                                           BAD_ID=0
                                                                                                                                                                                                                                                                                            CONNECTION=0
                                                                                                                                                                                                                                                                                             IO_ERROR=0
                                                                                                                                                                                                                                                                                              WRONG_LENGTH=0
                                                                                                                                                                                                                                                                                               WRONG_MAP=0
                                                                                                                                                                                                                                                                                                WRONG_REDUCE=0
                                                                                                                                                                                                                                                                                                File Input Format Counters 
                                                                                                                                                                                                                                                                                                     Bytes Read=472
                                                                                                                                                                                                                                                                                                     File Output Format Counters 
                                                                                                                                                                                                                                                                                                          Bytes Written=97
Job Finished in 59.247 seconds
Estimated value of Pi is 3.17000000000000000000
hdfs@vm-cluster-node1:~$ 

MapReduce の Job が YARN で実行できた。

Hive の動作確認

vagrant@vm-cluster-node1 で作業。

$ hive
hive> SHOW databases;
OK
default
Time taken: 0.388 seconds, Fetched: 1 row(s)
hive> CREATE DATABASE IF NOT EXISTS sample_logs;
OK
Time taken: 0.408 seconds
hive> USE sample_logs;          
OK
Time taken: 0.54 seconds
hive> CREATE TABLE logs(id INT, created_at STRING) row format delimited fields terminated by ',' lines terminated by '\n';
OK
Time taken: 0.771 seconds
hive>

動作した。

Impala の動作確認

次のURLにアクセスすると Impala の WebUI にアクセスできる。
http://vm-cluster-node1:25010

vm-cluster-node1 で下記コマンドを実行し、シェルの起動。ノード2 ~ 4 のどれかにログイン。

$ impala-shell -i vm-cluster-node2

操作してみる。

[vm-cluster-node2:21000] > SHOW databases;
[vm-cluster-node2:21000] > CREATE DATABASE IF NOT EXISTS sample_logs;
[vm-cluster-node2:21000] > USE sample_logs;
[vm-cluster-node2:21000] > CREATE TABLE logs(id INT, created_at STRING) row format delimited fields terminated by ',' lines terminated by '\n';
[vm-cluster-node2:21000] > SHOW tables;
Query: show tables
+------+
| name |
+------+
| logs |
+------+

動作した。

サーバーからログアウトして、

$ vagrant halt

でクラスタの全サーバーをシャットダウン。

とりあえず、ここまででテスト用の CDH5 の Hadoop (HDFS + YARN によるMapReduce)、Hive、Impala環境が構築できた。

26
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
27