夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

Cludera ManagerでImpalaをインストールする

こんにちは。

前回でCludera Managerが動作するようになったため、
Impalaを実際動く所までインストールしてみます。

1.OS設定実施

前回のvm.swappinessのエラーが出ていたため、それだけは解消してしまいます。

各サーバで下記のコマンドを実行することで解消可能です。

# echo "vm.swappiness = 0" >> /etc/sysctl.conf
# sysctl -p

上記のコマンドを実行後、再度ホストインスペクタを実行するとエラーが解消するため、「続行」を押下します。

2. Impalaのインストール

「続行」を押下すると下記の画面が表示されるため、「Impalaがあるコア」を選択し、「続行」を押下します。

すると、必要なサービスをどこにインストールするか、を選択する画面が出るため、
下記のように修正します。

  • HDFS:NameNode > cluster1
  • HDFS:Secondary NameNode > cluster2
  • HDFS:Balancer > cluster1
  • HDFS:DataNode > cluster2、cluster3、cluster4
  • Hive:Gateway > cluster1、cluster2、cluster3、cluster4
  • Hive:Hive MetaStore Server > cluster1
  • Hive:HiveServer2 > cluster1
  • Hue:Hue Server > cluster1
  • Impala:Impala Catalog Server > cluster1
  • Impala:Impala State Store > cluster1
  • Impala:Impala Daemon > HDFS:DataNodeと同じ
  • Cloudera Management Service:Service Monitor > cluster1
  • Cloudera Management Service:Host Monitor > cluster1
  • Cloudera Management Service:Event Server > cluster1
  • Cloudera Management Service:Alarm Publisher > cluster1
  • Oozie:Oozie Server > cluster1
  • Sqoop2:Sqoop2 Server > cluster1
  • YARN(MR2 Included):Resource Manager > cluster1
  • YARN(MR2 Included):Job History Server > cluster1
  • YARN(MR2 Included):NodeManager > HDFS:DataNodeと同じ
  • ZooKeeper:Server > cluster2、cluster3、cluster4

次はデータベースの設定です。
これはそのまま組み込みのデータベースを使う、として先に進めます。

次は各種設定が聞かれます。

わかりやすくするために下記の通りデータの出力先だけ「/opt」配下に修正し、「続行」を行います。
#記述が無いものはデフォルトです。

  • データディレクトリ : /opt/zookeeper/snapshot
  • トランザクションログのディレクトリ : /opt/zookeeper/transaction
  • DataNode データディレクトリ(DataNode Default Group) : /opt/dfs/dn
  • DataNode データディレクトリ(DataNode Group 1) : /opt/dfs/dn
  • NameNode データディレクトリ : /opt/dfs/nn
  • HDFS チェックポイントディレクトリ : /opt/dfs/snn
  • NodeManager のローカルディレクトリリスト(NodeManager Default Group) : /opt/yarn/nm
  • NodeManager のローカルディレクトリリスト(NodeManager Group 1) : /opt/yarn/nm
  • Hive ウェアハウスディレクトリ : /opt/hive/warehouse
  • Sqoop 2 Server の Metastore ディレクトリ : /opt/sqoop2
  • Impala Daemon スクラッチディレクトリ(Impala Daemon Default Group) : /opt/impala/impalad
  • Impala Daemon スクラッチディレクトリ(Impala Daemon Group 1) : /opt/impala/impalad
  • Oozie Server のデータディレクトリ : /opt/oozie/data
  • Host Monitor のストレージディレクトリ : /opt/cloudera-host-monitor
  • Service Monitor のストレージディレクトリ : /opt/cloudera-service-monitor

すると、インストールがはじまり、各サーバにサービスがインストールされ、起動します。
・・・このあたり、以前rpmファイルを一つ一つ指定してHadoopのサービスを各サーバに
必要なものだけインストールしていたころと比べるとあっけなく感じる位楽ですね。

これでクラスタのインストールは完了です。

ちなみにトップページに戻ると設定の警告が出ているため、確認すると
下記のようにリソース系の設定エラーが出ていました。
とはいえ、今回は仮想マシンを使用しているためこの手のエラーは出るものとして継続します。

3. Impalaコマンドの動作確認

クラスタのサービス一覧からHueを選択し、Hueの画面を開いてアカウントを登録します。
アカウント登録後、サービスのテンプレートを全て登録し、継続します。

ユーザは特に何もせず次へ進みます。

続行後、画面上部のQuery Editor > Impalaを選択します。
すると、Impala Editor画面が表示されます。

まだテーブルは作成していないため、「show databases」を実行し、結果が表示されるのを確認します。

cluster2にログインし、impala-shellから同じコマンドを実行してみます。

# impala-shell
Starting Impala Shell without Kerberos authentication
Connected to cluster2:21000
Server version: impalad version 2.0.0-cdh5 RELEASE (build ecf30af0b4d6e56ea80297df2189367ada6b7da7)
Welcome to the Impala shell. Press TAB twice to see a list of available commands.

Copyright (c) 2012 Cloudera, Inc. All rights reserved.

(Shell build version: Impala Shell v2.0.0-cdh5 (ecf30af) built on Sat Oct 11 13:56:06 PDT 2014)
> show databases;
Query: show databases
+------------------+
| name             |
+------------------+
| _impala_builtins |
| default          |
+------------------+

Hueの画面と同じ結果が表示されることが確認できました。


とりあえずImpala用のコマンドが実行可能になったため、次はImpalaに投入するためのデータを作成します。
ただ、CSVで投入してParquetに変換する、だといまいち効率が悪いため、
事前にParquetに変換するための処理を実際に流してみます。

あまりそのあたりの情報が無いようですが、
データを投入してからImpalaで変換を行うのは効率が悪いため、まずは試してみます。