Spark

来自马士兵
跳转至: 导航搜索

下载

  1. 地址spark.apache.org

安装

  1. 复制一台单独的虚拟机,名c
  2. 修改其ip,192.168.56.200
  3. 修改其hostname为c,hostnamectl set-hostname c
  4. 修改/etc/hosts加入对本机的解析
  5. 重启网络服务 systemctl restart network
  6. 上传spark安装文件到root目录
  7. 解压spark到/usr/local下,将其名字修改为spark

本地运行模式

使用spark-submit提交job

  1. cd /usr/local/spark
  2. ./bin/spark-submit --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.11-2.1.0.jar 10000

使用spark-shell进行交互式提交

  1. 创建root下的文本文件hello.txt
  2. ./bin/spark-shell
  3. 再次连接一个terminal,用jps观察进程,会看到spark-submit进程
  4. sc
  5. sc.textFile("/root/hello.txt")
  6. val lineRDD = sc.textFile("/root/hello.txt")
  7. lineRDD.foreach(println)
  8. 观察网页端情况
  9. val wordRDD = lineRDD.flatMap(line => line.split(" "))
  10. wordRDD.collect
  11. val wordCountRDD = wordRDD.map(word => (word,1))
  12. wordCountRDD.collect
  13. val resultRDD = wordCountRDD.reduceByKey((x,y)=>x+y)
  14. resultRDD.collect
  15. val orderedRDD = resultRDD.sortByKey(false)
  16. orderedRDD.collect
  17. orderedRDD.saveAsTextFile("/root/result")
  18. 观察结果
  19. 简便写法:sc.textFile("/root/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().collect

使用local模式访问hdfs数据

  1. start-dfs.sh
  2. spark-shell执行:sc.textFile("hdfs://192.168.56.100:9000/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().collect (可以把ip换成master,修改/etc/hosts)
  3. sc.textFile("hdfs://192.168.56.100:9000/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().saveAsTextFile("hdfs://192.168.56.100:9000/output1")

spark standalone模式

  1. 在master和所有slave上解压spark
  2. 修改master上conf/slaves文件,加入slave
  3. 修改conf/spark-env.sh,export SPARK_MASTER_HOST=master
  4. 复制spark-env.sh到每一台slave
  5. cd /usr/local/spark
  6. ./sbin/start-all.sh
  7. 在c上执行:./bin/spark-shell --master spark://192.168.56.100:7077 (也可以使用配置文件)
  8. 观察http://master:8080

spark on yarn模式