Weather Sensorデモの実行

Weather Sensorデモは、さまざまな都市の多数の気象センサーに関する集計データに対してSpark SQLクエリーを実行するのにかかる時間を比較します。

Weather Sensorデモを使用すると、さまざまな都市の多数の気象センサーに関する集計データに対してSpark SQLクエリーを実行するのにかかる時間を比較できます。たとえば、温度や湿度などのさまざまなメトリクスを使用してレポートを表示し、日次ロールアップを取得できます。



カスタムのSpark SQLクエリーは、さまざまなメトリクスや日付を使用して実行します。CQLテーブルをクエリーすることに加え、Spark SQLクエリーにかかる時間を、DataStax Enterpriseファイル・システム(DSEFS)内のデータと比較します。
注: DataStaxのデモは、LDAPまたは内部権限管理(ユーザー名/パスワード)のいずれかを有効にした状態では動作しません。

前提条件

デモを実行する前に、以下のソース・コードとツールがインストールされていることを確認します。

  • Python 2.7:
    • DebianおよびUbuntu
      $ sudo apt-get install python2.7-dev
    • RedHatまたはCentOS
      $ sudo yum install python27
    • Mac OS XにはPython 2.7が既にインストールされています。
  • pipインストーラー・ツール:
    • DebianおよびUbuntu
      $ sudo apt-get install python-pip
    • RedHatまたはCentOS
      $ sudo yum install python-pip
    • Mac OS X
      $ sudo easy_install pip
  • libsasl2-devパッケージ:
    • DebianおよびUbuntu
      $ sudo apt-get install libsasl2-dev
    • RedHatまたはCentOS
      $ sudo yum install cyrus-sasl-lib
  • 必要なPythonパッケージ:
    • すべてのプラットフォーム
      sudo pip install pyhs2 six flask cassandra-driver

tarボールまたはGUI-noサービス・オプションを使用してDataStax Enterpriseをインストールした場合は、PATH環境変数をDataStax Enterpriseの/binインストール・ディレクトリーに設定します。

export PATH=$PATH:installation_location/bin

DataStax Enterpriseの起動とデータのインポート

DataStax EnterpriseをSparkモードで起動し、その後で、気象センサー・データ・モデルのスキーマを作成するスクリプトを実行します。このスクリプトによって、CSVファイルからDSEテーブルへの集計データのインポートも行われます。このスクリプトでは、CSVファイルをDSEFS内に配置するためにhadoop fsコマンドが使用されます。
  1. DataStax EnterpriseをSparkモードで起動します。
  2. create-and-load CQLスクリプトをdemosweather_sensors/resourcesディレクトリーで実行します。たとえば、Linuxでは以下のようにします。
    $ cd installation_location/demos/weather_sensors
    $ bin/create-and-load 
    demosディレクトリーの場所は、インストールのタイプによって異なります。
    • パッケージ・インストールおよびInstaller-Services:/usr/share/dse/demos
    • tarボール・インストールおよびInstaller-No Services:installation_location/demos
    スクリプトによってデータがCQLにインポートされ、ファイルがDSEFSにコピーされたことが、出力で確認されます。
    . . .
    10 rows imported in 0.019 seconds.
    2590 rows imported in 2.211 seconds.
    76790 rows imported in 33.522 seconds.
    + echo 'Copy csv files to Hadoop...'
    Copy csv files to Hadoop...
    + dse hadoop fs -mkdir /datastax/demos/weather_sensors/
エラーが発生する場合は、「前提条件」で説明するようにPATHを設定して、再度試してください。

Spark SQL Thriftサーバーの起動

競合を防ぐために、Spark SQL Thriftサーバーを特定のポートで起動します。起動には、ローカル・ユーザー・アカウントを使用します。sudoは使用しないでください。

  1. Spark SQL Thriftサーバーをポート5588で起動します。たとえば、Linuxでは以下のようにします。
    $ cd installation_location
    $ dse spark-sql-thriftserver start --hiveconf hive.server2.thrift.port=5588

Webアプリの起動とデータのクエリー

  1. 別のターミナルを開いて、Webインターフェイスを制御するPythonサービスを起動します。
    $ cd installation_location/demos/weather_sensors
    $ python web/weather.py
  2. ブラウザーを開いて、次のURLに移動します。http://localhost:8983/

    気象センサー・アプリが表示されます。横方向のメニューで[Near Real-Time Reports]を選択します。気象観測ステーションのドロップダウン・リストが表示されます。



  3. ドロップダウンから気象観測ステーションを選択し、グラフを表示して、ページ左側の縦方向メニューからさまざまなメトリクスを選択します。
  4. 横方向のメニューで、[Sample Live Queries]をクリックして、サンプル・スクリプトを選択します。[Spark SQL]ボタンをクリックしてから[Submit]をクリックします。

    Sparkを使用して結果を読み込むのにかかった時間が表示されます。



  5. 縦方向のメニューから[Custom Live Queries]をクリックします。曜日、メトリクス(風向きなど)の順にクリックします。[Recalculate Query]をクリックします。選択内容がクエリーに反映されます。
  6. 横方向のメニューから[DSEFS Live Queries]をクリックします。[Submit]をクリックします。Spark SQLを使用してDSEFSから結果を読み込むのにかかった時間が表示されます。


クリーンアップ

生成されたデータをすべて削除するには、以下のコマンドを実行します。

$ cd installation_location/demos/weather_sensors
$ bin/cleanup
クラスターからキースペースを削除するには、以下のコマンドを実行します。
echo "DROP KEYSPACE weathercql;" | cqlsh