Spark Mysqlデータの取得と分析


インストール環境
Java環境
Sparkのインストールと起動
Sparkのダウンロードと解凍
wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz
tar xzvf spark-2.2.0-bin-hadoop2.7.tgz /usr/local
cd /usr/local
ln -s spark spark-2.2.0-bin-hadoop2.7
cd spark

masterとslaveの実行
./sbin/start-master.sh -h 192.168.0.166
./sbin/start-slave.sh spark://192.168.0.166:7077

そのうち192.168.0.166はローカルip
Mysql JDBCのダウンロード
JDBCをダウンロードし、sparkディレクトリに解凍し、conf/spark-defaults.confを構成します.
spark.driver.extraClassPath      /usr/local/spark/mysql-connector-java-5.1.39-bin.jar
spark.executor.extraClassPath    /usr/local/spark/mysql-connector-java-5.1.39-bin.jar

scalaコマンドの実行(spark-shell)
./bin/spark-shell --master spark://192.168.0.166:7077
var jdbcDF = spark.read.format("jdbc").options(
    Map("url"->"jdbc:mysql://localhost:3306/collection?user=root&password=pw",
    "dbtable"->"collection.iqilu_news",
    "fetchSize"->"100",
    "partitionColumn"->"catid",
    "lowerBound"->"1",
    "upperBound"->"300",
    "numPartitions"->"30"
    )).load()
//   Spark  partitionColumn         ,numPartitions    


//    collection    ,        
jdbcDF.createOrReplaceTempView("collection")

var sqlDF = sql("SELECT title FROM collection ORDER BY id DESC LIMIT 10")

//     
sqlDF.show()

//   
sqlDF.count()

参照先:
  • http://spark.apache.org/examples.html
  • https://www.percona.com/blog/2016/08/17/apache-spark-makes-slow-mysql-queries-10x-faster/