赞
踩
任何Spark程序都是以SparkContext对象开始的,因为SparkContext是Spark应用程序的上下文和入口,无论是Scala、Python、R程序,都是通过SparkContext对象的实例来创建RDD。
因此在实际Spark应用程序的开发中,在main方法中需要创建SparkContext对象,作为Spark应用程序的入口,并在Spark程序结束时关闭SparkContext对象。
初始化SparkContext需要一个SparkConf对象,SparkConf包含了Spark集群配置的各种参数,属性参数是一种键值对的格式,一般可以通过set(属性名,属性设置值)的方法修改属性。其中还包含了设置程序名setAppName、设置运行模式setMaster等方法。
SparkSession.builder
.master("local") \\设置运行模式
.appName("Word Count") \\设置名称
.config("spark.some.config.option", "some-value") \\设置集群配置
.enableHiveSupport() \\ 支持读取Hive
.getOrCreate()
数据:
Hello World Our World
Hello BigData Real BigData
Hello Hadoop Great Hadoop
Hadoop MapReduce
代码:
package demo.spark
import org.apache.spark.sql.SparkSession
object WordCount {
def main(args:Array[String])={
val spark = SparkSession.builder().master("local").appName("wordcount").getOrCreate()
val sc = spark.sparkContext
val wordCount = sc.textFile("D:\\data\\words.txt")
.flatMap(x=>x.split(" "))
.map(x=>(x,1)).reduceByKey(_+_)
wordCount.foreach(x=>println(x))
}
}
改成自己传参(文件路径,分隔符):
spark-submit提交任务
spark-submit --master<master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
--class <main-class> \
<application-jar> \
application-arguments
参数解释:
--class:应用程序的入口点,指主程序。
--master:指定要连接的集群URL。
--deploy-mode:是否将驱动程序部署在工作节点(cluster)或本地作为外部客户端(client)。
--conf:设置任意Spark配置属性,即允许使用key=value格式设置任意的SparkConf配置选项。
application-jar:包含应用程序和所有依赖关系的捆绑JAR的路径。
application-arguments:传递给主类的main方法的参数。
运行模式
spark-submit运行示例
1、提交到yarn-cluster集群
2、提交到spark集群
设置spark-submit提交单词计数程序时的环境配置,设置运行时所启用的资源
spark-submit --master spark://master:7077 --executor-memory 512m --executor-cores 2 --class demo.spark.WordCount /opt/word.jar /user/root/words.txt " " /user/root/word_ count2
(浏览器:master:8080
查看)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。