스파크 쉘에서 streaming을 테스트하기 위해 코드를 그대로 따라하면 Only one SparkContext may be running in this JVM 이라는 Exception이 발생한다. 



scala> import org.apache.spark._

import org.apache.spark._


scala> import org.apache.spark.streaming._

import org.apache.spark.streaming._


scala> import org.apache.spark.streaming.StreamingContext._

import org.apache.spark.streaming.StreamingContext._


scala> val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")

conf: org.apache.spark.SparkConf = org.apache.spark.SparkConf@38394e76


scala> val ssc = new StreamingContext(conf, Seconds(1))

org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at:

org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)

org.apache.spark.repl.Main$.createSparkSession(Main.scala:95)




Exception이 발생하는 이유는 데몬이 떠 있어서 그런 것이 아나라 스파크 쉘에 spark context(sc)가 있기 때문이다. 아래와 같이 코딩하면 에러가 발생하지 않고 spark streaming 객체를 얻을 수 있다. 



 import org.apache.spark._

import org.apache.spark.streaming._

import org.apache.spark.streaming.StreamingContext._

val ssc = new StreamingContext(sc, Seconds(1))


Posted by '김용환'
,

[spark] rdd의 stats 함수

scala 2017. 3. 24. 19:24


spark rdd에 간단한 통계 기능(count, mean, stdev, max, min)이 있고 이를 한 번에 묶는 stats 함수가 있다.



scala> val a = sc.parallelize(List("111", "222"))

a: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[0] at parallelize at <console>:24



scala> val ints = a.map(string => string.toInt)

ints: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[1] at map at <console>:26


scala> val stats = ints.stats()

stats: org.apache.spark.util.StatCounter = (count: 2, mean: 166.500000, stdev: 55.500000, max: 222.000000, min: 111.000000)


scala> stats.count

res0: Long = 2


scala> stats.mean

res1: Double = 166.5


scala> stats.stdev

res2: Double = 55.5


scala> stats.max

res3: Double = 222.0


scala> stats.min

res4: Double = 111.0

Posted by '김용환'
,



cassandra를 운영하면서 key cache와 row cache는 성능에 밀접한 연관성이 있다.



좋은 글은 다음과 같다. 


https://www.datastax.com/dev/blog/maximizing-cache-benefit-with-cassandra





http://docs.datastax.com/en/archived/cassandra/3.x/cassandra/dml/dmlAboutReads.html





row key를 잘 설정해 35% 좋아졌다는 내용이



파티셔닝이 점차적으로 커지는 현상





Posted by '김용환'
,