ienki 发表于 2019-1-30 12:16:14

spark入门知识和job任务提交流程

spark是Apache开源社区的一个分布式计算引擎,基于内存计算,所以速度要快于hadoop.
下载

[*]  地址spark.apache.org
安装

[*]  复制一台单独的虚拟机,名c
[*]  修改其ip,192.168.56.200
[*]  修改其hostname为c,hostnamectl set-hostname c
[*]  修改/etc/hosts加入对本机的解析
[*]  重启网络服务 systemctl restart network
[*]  上传spark安装文件到root目录
[*]  解压spark到/usr/local下,将其名字修改为spark
本地运行模式
使用spark-submit提交job

[*]  cd /usr/local/spark
[*]  ./bin/spark-submit --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.11-2.1.0.jar 10000
使用spark-shell进行交互式提交

[*]  创建root下的文本文件hello.txt
[*]  ./bin/spark-shell
[*]  再次连接一个terminal,用jps观察进程,会看到spark-submit进程
[*]  sc
[*]  sc.textFile("/root/hello.txt")
[*]  val lineRDD = sc.textFile("/root/hello.txt")
[*]  lineRDD.foreach(println)
[*]  观察网页端情况
[*]  val wordRDD = lineRDD.flatMap(line => line.split(" "))
[*]  wordRDD.collect
[*]  val wordCountRDD = wordRDD.map(word => (word,1))
[*]  wordCountRDD.collect
[*]  val resultRDD = wordCountRDD.reduceByKey((x,y)=>x+y)
[*]  resultRDD.collect
[*]  val orderedRDD = resultRDD.sortByKey(false)
[*]  orderedRDD.collect
[*]  orderedRDD.saveAsTextFile("/root/result")
[*]  观察结果
[*]  简便写法:sc.textFile("/root/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().collect
使用local模式访问hdfs数据

[*]  start-dfs.sh
[*]  spark-shell执行:sc.textFile("hdfs://192.168.56.100:9000/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().collect (可以把ip换成master,修改/etc/hosts)
[*]  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模式

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




页: [1]
查看完整版本: spark入门知识和job任务提交流程