このサンプルは、Asakusa Framework で Apacheのログファイルを解析するサンプルです。
本リポジトリにはデータは付属していません。ご自身でご用意いただくか、
WorldCup98 などのデータをご利用ください。
データは apache
ディレクトリ以下に保存してください。
本サンプルはOSX/Linuxにて実行を確認しています。
本サンプルの実行には、hadoop + sparkの実行環境が必要です。 (ローカル実行環境の構築は、sparkドキュメントや、Blog記事 などを 参照ください。
Apacheログファイルから、CSVへの変換に、Embulk を利用しています。
本サンプルはMicrosoft Azure の、HDInsight で 実行を確認しています。ご自身で用意したsparkクラスタ、もしくはAmazon EMR での実行も可能と思われます。
embulk run apache.yml
embulkを使って、ApacheログファイルをCSVにします。出力ファイルは、logfiles
以下にできます。- ホームディレクトリで下記を行います
hadoop fs -mkdir target/testing/directio/logfiles
- (ディレクトリを戻って)
mv ./logfiles ~/target/testing/directio/
ローカル環境での実行手順を記載します。クラスタ(クラウド)環境での実行については、各サービスのマニュアルをご参照ください。
gradlew sparkCompileBatchApps
Spark用にソースファイルをコンパイルします。cp -rp build/spark-batchapps/spark.example.log $ASAKUSA_HOME/batchapps
$ASAKUSA_HOME/yaess/bin/yaess-batch.sh spark.example.log
YAESSによりアプリケーションを起動します。
$HOME/target/testing/directio/logsummaries
にステータスコード 200のログファイルの集計が、
$HOME/target/testing/directio/urlsummaries
にステータスコード 200以外の集計結果が出ています。