Weather Sensorデモの実行
Weather Sensorデモは、さまざまな都市の多数の気象センサーに関する集計データに対してSpark SQLクエリーを実行するのにかかる時間を比較します。
Weather Sensorデモを使用すると、さまざまな都市の多数の気象センサーに関する集計データに対してSpark SQLクエリーを実行するのにかかる時間を比較できます。たとえば、温度や湿度などのさまざまなメトリクスを使用してレポートを表示し、日次ロールアップを取得できます。
カスタムのSpark SQLクエリーは、さまざまなメトリクスや日付を使用して実行します。CQLテーブルをクエリーすることに加え、Spark SQLクエリーにかかる時間を、DataStax Enterpriseファイル・システム(DSEFS)内のデータと比較します。
前提条件
デモを実行する前に、以下のソース・コードとツールがインストールされていることを確認します。
- Python 2.7:
- DebianおよびUbuntu
sudo apt-get install python2.7-dev
- RedHatまたはCentOS
sudo yum install python27
- Mac OS XにはPython 2.7が既にインストールされています。
- DebianおよびUbuntu
pip
インストーラー・ツール:- DebianおよびUbuntu
sudo apt-get install python-pip
- RedHatまたはCentOS
sudo yum install python-pip
- Mac OS X
sudo easy_install pip
- DebianおよびUbuntu
libsasl2-dev
パッケージ:- DebianおよびUbuntu
sudo apt-get install libsasl2-dev
- RedHatまたはCentOS
sudo yum install cyrus-sasl-lib
- DebianおよびUbuntu
- 必要なPythonパッケージ:
- すべてのプラットフォーム
sudo pip install pyhs2 six flask cassandra-driver
- すべてのプラットフォーム
tarボールを使用してDataStax Enterpriseをインストールした場合は、PATH
環境変数をDataStax Enterpriseの/binインストール・ディレクトリーに設定します。
export PATH=$PATH:installation_location/bin
DataStax Enterpriseの起動とデータのインポート
DataStax EnterpriseをSparkモードで起動し、その後で、気象センサー・データ・モデルのスキーマを作成するスクリプトを実行します。このスクリプトによって、CSVファイルからDSEテーブルへの集計データのインポートも行われます。このスクリプトでは、CSVファイルをDSEFS内に配置するためにhadoop fs
コマンドが使用されます。- DataStax EnterpriseをSparkモードで起動します。
- create-and-load CQLスクリプトをdemos/weather_sensors/resourcesディレクトリーで実行します。たとえば、Linuxでは以下のようにします。
cd installation_location/demos/weather_sensors && bin/create-and-load
demosディレクトリーの場所は、インストールのタイプによって異なります。- パッケージ・インストール:/usr/share/dse/demos
- tarボール・インストール:installation_location/demos
スクリプトによってデータがCQLにインポートされ、ファイルがDSEFSにコピーされたことが、出力で確認されます。
PATH
を設定して、再度試してください。Spark SQL Thriftサーバーの起動
競合を防ぐために、Spark SQL Thriftサーバーを特定のポートで起動します。起動には、ローカル・ユーザー・アカウントを使用します。sudo
は使用しないでください。
- Spark SQL Thriftサーバーをポート5588で起動します。たとえば、Linuxでは以下のようにします。
cd installation_location && dse spark-sql-thriftserver start --hiveconf hive.server2.thrift.port=5588
Webアプリの起動とデータのクエリー
- 別のターミナルを開いて、Webインターフェイスを制御するPythonサービスを起動します。
cd installation_location/demos/weather_sensors && python web/weather.py
- ブラウザーを開いて、次のURLに移動します。
http://localhost:8983/
気象センサー・アプリが表示されます。横方向のメニューで[Near Real-Time Reports]を選択します。気象観測ステーションのドロップダウン・リストが表示されます。
- ドロップダウンから気象観測ステーションを選択し、グラフを表示して、ページ左側の縦方向メニューからさまざまなメトリクスを選択します。
- 横方向のメニューで、[Sample Live Queries]をクリックして、サンプル・スクリプトを選択します。[Spark SQL]ボタンをクリックしてから[Submit]をクリックします。
Sparkを使用して結果を読み込むのにかかった時間が表示されます。
注: SearchAnalyticsデータ・センターでデモを実行している場合、ポート8983が検索Web UIと競合します。demos/weather_sensors/web/weather.pyのポートを無料ポートに変更します。app.run(host='0.0.0.0', port=8984, threaded=True, debug=True)
- 縦方向のメニューから[Custom Live Queries]をクリックします。曜日、メトリクス(風向きなど)の順にクリックします。[Recalculate Query]をクリックします。選択内容がクエリーに反映されます。
- 横方向のメニューから[DSEFS Live Queries]をクリックします。[Submit]をクリックします。Spark SQLを使用してDSEFSから結果を読み込むのにかかった時間が表示されます。
クリーンアップ
生成されたデータをすべて削除するには、以下のコマンドを実行します。
cd installation_location/demos/weather_sensors &&
bin/cleanup
cqlsh -e "DROP KEYSPACE weathercql;"