-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
tmalaska
committed
May 19, 2016
1 parent
3263dda
commit 0abb29e
Showing
13 changed files
with
453 additions
and
116 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
|
||
ssh root@mriggs-strata-1.vpc.cloudera.com | ||
|
||
scp -i "tedm2.pem" KuduSpark.jar ec2_user@ec2-52-36-220-83.us-west-2.compute.amazonaws.com:./ | ||
|
||
--Setting up Kafka | ||
kafka-topics --zookeeper mriggs-strata-1.vpc.cloudera.com:2181 --create --topic gamer --partitions 1 --replication-factor 1 | ||
kafka-topics --zookeeper mriggs-strata-1.vpc.cloudera.com:2181 --list | ||
kafka-console-producer --broker-list mriggs-strata-1.vpc.cloudera.com:9092 --topic test | ||
kafka-cocsole-consumer --zookeeper mriggs-strata-1.vpc.cloudera.com:2181 --topic gamer --from-beginning | ||
|
||
vi .bash_profile | ||
export PATH=/usr/java/jdk1.7.0_67-cloudera/bin/:$PATH | ||
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera/ | ||
|
||
##Populating Kafka | ||
java -cp KuduSpark.jar org.kududb.spark.demo.gamer.KafkaProducerGenerator mriggs-strata-1.vpc.cloudera.com:9092 gamer 10000 300 1000 | ||
|
||
##create Table | ||
java -cp KuduSpark.jar org.kududb.spark.demo.gamer.CreateKuduTable ec2-52-36-220-83.us-west-2.compute.amazonaws.com gamer 3 | ||
|
||
##Run Spark Streaming | ||
spark-submit \ | ||
--master yarn --deploy-mode client \ | ||
--executor-memory 2G \ | ||
--num-executors 2 \ | ||
--jars kudu-mapreduce-0.1.0-20150903.033037-21-jar-with-dependencies.jar \ | ||
--class org.kududb.spark.demo.gamer.GamerAggergatesSparkStreaming KuduSpark.jar \ | ||
mriggs-strata-1.vpc.cloudera.com:9092 gamer mriggs-strata-1.vpc.cloudera.com gamer C | ||
|
||
##Run SparkSQL | ||
spark-submit \ | ||
--master yarn --deploy-mode client \ | ||
--executor-memory 2G \ | ||
--num-executors 2 \ | ||
--class org.kududb.spark.demo.gamer.GamerSparkSQLExample \ | ||
KuduSpark.jar ec2-52-36-220-83.us-west-2.compute.amazonaws.com l | ||
|
||
##Run direct insert | ||
java -cp KuduSpark.jar org.kududb.spark.demo.gamer.DirectDataGenerator ec2-52-36-220-83.us-west-2.compute.amazonaws.com gamer 3 | ||
|
||
##Impala | ||
impala-shell | ||
connect ec2-52-11-171-85.us-west-2.compute.amazonaws.com:21007; | ||
|
||
java -cp KuduSpark.jar org.kududb.spark.demo.gamer.cdc.CreateGamerCDCKuduTable ec2-52-36-220-83.us-west-2.compute.amazonaws.com gamer_cdc 3 | ||
|
||
java -cp KuduSpark.jar org.kududb.spark.demo.gamer.cdc.DirectDataMultiThreadedInjector ec2-52-36-220-83.us-west-2.compute.amazonaws.com gamer_cdc 10 5 1000 | ||
|
||
java -cp KuduSpark.jar org.kududb.spark.demo.gamer.cdc.DirectDataMultiThreadedInjector ec2-52-36-220-83.us-west-2.compute.amazonaws.com gamer_cdc 100 5 5 | ||
|
||
java -cp KuduSpark.jar org.kududb.spark.demo.gamer.DropTable ec2-52-36-220-83.us-west-2.compute.amazonaws.com gamer_cdc |
This file was deleted.
Oops, something went wrong.
52 changes: 52 additions & 0 deletions
52
src/main/scala/org/kududb/spark/demo/gamer/aggregates/CreateKuduTable.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
package org.kududb.spark.demo.gamer.aggregates | ||
|
||
import java.util | ||
import java.util.ArrayList | ||
|
||
import org.kududb.ColumnSchema.ColumnSchemaBuilder | ||
import org.kududb.client.{CreateTableOptions, KuduClient} | ||
import org.kududb.{ColumnSchema, Schema, Type} | ||
|
||
object CreateGamerAggregatesKuduTable { | ||
def main(args:Array[String]): Unit = { | ||
if (args.length == 0) { | ||
println("{kuduMaster} {tableName}") | ||
return | ||
} | ||
|
||
val kuduMaster = args(0) | ||
val tableName = args(1) | ||
val numberOfBuckets = args(2).toInt | ||
|
||
val kuduClient = new KuduClient.KuduClientBuilder(kuduMaster).build() | ||
val columnList = new util.ArrayList[ColumnSchema]() | ||
|
||
columnList.add(new ColumnSchemaBuilder("gamer_id", Type.STRING).key(true).build()) | ||
columnList.add(new ColumnSchemaBuilder("last_time_played", Type.INT64).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("games_played", Type.INT32).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("games_won", Type.INT32).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("oks", Type.INT32).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("deaths", Type.INT32).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("damage_given", Type.INT32).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("damage_taken", Type.INT32).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("max_oks_in_one_game", Type.INT32).key(false).build()) | ||
columnList.add(new ColumnSchemaBuilder("max_deaths_in_one_game", Type.INT32).key(false).build()) | ||
val schema = new Schema(columnList) | ||
|
||
if (kuduClient.tableExists(tableName)) { | ||
println("Deleting Table") | ||
kuduClient.deleteTable(tableName) | ||
} | ||
val builder = new CreateTableOptions() | ||
|
||
val hashColumnList = new ArrayList[String] | ||
hashColumnList.add("gamer_id") | ||
|
||
builder.addHashPartitions(hashColumnList, numberOfBuckets) | ||
|
||
println("Creating Table") | ||
kuduClient.createTable(tableName, schema, builder) | ||
println("Created Table") | ||
kuduClient.shutdown() | ||
} | ||
} |
51 changes: 51 additions & 0 deletions
51
src/main/scala/org/kududb/spark/demo/gamer/aggregates/DirectDataInjector.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
package org.kududb.spark.demo.gamer.aggregates | ||
|
||
import java.util.Random | ||
|
||
import org.kududb.client.KuduClient | ||
|
||
object DirectDataInjector { | ||
|
||
val random = new Random | ||
def main(args:Array[String]): Unit = { | ||
|
||
if (args.length == 0) { | ||
println("<kuduMaster> <tableName> <numberOfRecords>") | ||
return | ||
} | ||
|
||
val kuduMaster = args(0) | ||
val tableName = args(1) | ||
val numberOfRecords = args(2).toInt | ||
|
||
val kuduClient = new KuduClient.KuduClientBuilder(kuduMaster).build() | ||
val table = kuduClient.openTable(tableName) | ||
val session = kuduClient.newSession() | ||
|
||
table.newInsert() | ||
|
||
for (i <- 0 to numberOfRecords) { | ||
val record = GamerDataGenerator.makeNewGamerRecord(100000) | ||
val op = table.newInsert() | ||
|
||
val row = op.getRow | ||
row.addString("gamer_id", record.gamerId) | ||
row.addLong("last_time_played", record.lastTimePlayed) | ||
row.addInt("games_played", record.gamesPlayed) | ||
row.addInt("games_won", record.gamesWon) | ||
row.addInt("oks", record.oks) | ||
row.addInt("deaths", record.deaths) | ||
row.addInt("damage_given", record.damageGiven) | ||
row.addInt("damage_taken", record.damageTaken) | ||
row.addInt("max_oks_in_one_game", record.maxOksInOneGame) | ||
row.addInt("max_deaths_in_one_game", record.maxDeathsInOneGame) | ||
|
||
session.apply(op) | ||
} | ||
session.flush() | ||
|
||
kuduClient.close() | ||
|
||
|
||
} | ||
} |
9 changes: 4 additions & 5 deletions
9
...gamer/GamerAggergatesSparkStreaming.scala → ...gates/GamerAggergatesSparkStreaming.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
src/main/scala/org/kududb/spark/demo/gamer/aggregates/GamerDataGenerator.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
package org.kududb.spark.demo.gamer.aggregates | ||
|
||
import java.util.{Date, Random} | ||
|
||
import org.kududb.spark.demo.gamer.GamerEvent | ||
|
||
object GamerDataGenerator { | ||
|
||
val random = new Random() | ||
val averagePlayerPercentage = 40 | ||
val advancedPlayerPercentage = 80 | ||
val superStarPlayerPercentage = 100 | ||
var date = System.currentTimeMillis() | ||
|
||
def makeNewGamerRecord(numOfGamers:Int): GamerEvent = { | ||
println("date" + new Date(date)) | ||
date += 60000 * 60 * 6 | ||
val playerSelection = random.nextInt(100) | ||
if (playerSelection < averagePlayerPercentage) { | ||
|
||
val gamerId = random.nextInt(numOfGamers/100) * 100 + playerSelection | ||
|
||
new GamerEvent(gamerId.toString, | ||
date, | ||
1, | ||
if (random.nextInt(10) > 7) 1 else 0, | ||
random.nextInt(10), | ||
random.nextInt(20), | ||
random.nextInt(1000), | ||
random.nextInt(2000)) | ||
} else if (playerSelection < advancedPlayerPercentage) { | ||
val gamerId = random.nextInt(numOfGamers/100) * 100 + playerSelection | ||
|
||
new GamerEvent(gamerId.toString, | ||
date, | ||
1, | ||
if (random.nextInt(10) > 5) 1 else 0, | ||
random.nextInt(20), | ||
random.nextInt(18), | ||
random.nextInt(2000), | ||
random.nextInt(2000)) | ||
} else { | ||
val gamerId = random.nextInt(numOfGamers/100) * 100 + playerSelection | ||
|
||
new GamerEvent(gamerId.toString, | ||
date, | ||
1, | ||
if (random.nextInt(10) > 3) 1 else 0, | ||
random.nextInt(20), | ||
random.nextInt(10), | ||
random.nextInt(4000), | ||
random.nextInt(1500)) | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
...kududb/spark/demo/gamer/SparkSQLCmd.scala → ...k/demo/gamer/aggregates/SparkSQLCmd.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.