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が既にインストールされています。
- 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ボールまたは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
コマンドが使用されます。- DataStax EnterpriseをSparkモードで起動します。
- 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
は使用しないでください。
- 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を使用して結果を読み込むのにかかった時間が表示されます。
- 縦方向のメニューから[Custom Live Queries]をクリックします。曜日、メトリクス(風向きなど)の順にクリックします。[Recalculate Query]をクリックします。選択内容がクエリーに反映されます。
- 横方向のメニューから[DSEFS Live Queries]をクリックします。[Submit]をクリックします。Spark SQLを使用してDSEFSから結果を読み込むのにかかった時間が表示されます。
クリーンアップ
生成されたデータをすべて削除するには、以下のコマンドを実行します。
$ cd installation_location/demos/weather_sensors
$ bin/cleanup
クラスターからキースペースを削除するには、以下のコマンドを実行します。
echo "DROP KEYSPACE weathercql;" | cqlsh