Spark1

  1. 注意下GroupByKey于ReduceByKey的区别:前者只是把键相同的东西聚起来,后者会做指定的操作(在groupByKey的基础上)
  2. join操作相当于做了一个笛卡尔乘积的操作:
  3. lookup
  4. workcount
//详单与做完了wordcount,调换keyValue顺序,然后再排序
 val result = textFile.flatMap(_.split(' ')).map((_, 1)).reduceByKey(_ + _).map(x => (x._2, x._1)).sortByKey(false)
//result
scala> result.collect
res5: Array[(Int, String)] = Array((3,di), (2,wen), (2,100), (2,5000), (1,6000), (1,p), (1,diwenpu), (1,pukai), (1,pu), (1,u), (1,baidu))
  1. lineAge容错:对于Spark来说很重要.每个RDD都会记得依赖于哪个RDD,万一某个RDD某些partition挂了,可以通过其他RDD并行计算迅速恢复出来。
  2. Narrow Depedency于Wide Depedency.前者对于一个patition最多被某一个子partition所使用(典型的有map,filter,union),后者则不然(典型的有reduceByKey)
  3. 集群配置
spark-env.sh
export JAVA_HOME=
export SPARK_MASTER_IP=
export SPARK_WORKER_CORES=
export SPARK_WORKER_INSTANCES=
export SPARK_WORKER_MEMORY=
export SPARK_MASTER_PORT=
export SPARK_JAVA_OPTS="-verbose:gc -XX:-PrintGCDetails -XX:+PrintGCTimeStamps”

slaves
xx.xx.xx.2
xx.xx.xx.3
xx.xx.xx.4
xx.xx.xx.5

你可能感兴趣的:(Spark1)