本文全部手写原创,请勿复制粘贴、转载请注明出处,谢谢配合!
Spark运行模式
Local模式
Local[n] 本地模式 启动n个线程
Local模式通常用于测试用,直接bin/spark-shell启动即可。
Standalone模式
Standalone是Spark自带的资源管理器,无需依赖任何其他资源管理系统
配置
vim conf/spark-env.sh
主要配置如下参数:
SPARK_MASTER_HOST=master
SPARK_MASTER_PORT=7077
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1g
SPARK_CONF_DIR=/usr/local/spark-2.2.0-bin-hadoop2.6.0-cdh5.11.1/conf
启动
cd /usr/local/spark-2.2.0-bin-hadoop2.6.0-cdh5.11.1/sbin/
./start-master.sh
//在哪台机器上启动 那台机器就成了Master
./start-slaves.sh
//启动所有的从节点
- sbin目录总结:
sbin/start-master.sh - 在当前机器上启动一个主节点。
sbin/start-slaves.sh- 在conf/slaves文件中指定的所有机器上启动一个从节点。
sbin/start-slave.sh - 在当前机器上启动一个从节点。
sbin/start-all.sh - 启动所有master和slave。
sbin/stop-master.sh- 停止master。
sbin/stop-slaves.sh- 停止所有slave。
sbin/stop-all.sh - 停止所有master和slave。
验证
-
使用命令jps查看进程。master机器上会有Master和Worker。slave机器上会有Worker进程。
-
web端界面显示
客户端测试
bin/spark-shell --master spark://master:7077
可以在Web端实时的看见Spark的运行任务
Yarn模式
使用Hadoop中的Yarn作为资源管理器。
Yarn Cluster:主程序逻辑和任务都运行在Yarn集群中
Yarn Client:主程序逻辑运行在本地,任务运行在Yarn集群中
配置
HADOOP_CONF_DIR必须有export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0-cdh5.11.1/etc/hadoop
其他可选,根据自己的需求配
启动
bin/spark-shell --master yarn
//注意要先启动hadoop
验证
能在yarn的web界面上看见spark shell这个进程:
Spark程序提交
提交方式分为Standalone(client\cluster)和Yarn(client\cluster) 四种。
首先编写好我们的wordcount程序然后打成jar包,传到我们的服务器上。
object Wordcount {
def main(args:Array[String]): Unit ={
val conf = new SparkConf().setAppName("WordCount")
val sc = new SparkContext(conf)
val inputpath = args(0)
val lines = sc.textFile(inputpath)
val words = lines.flatMap(line=>line.split(" "))
words.count()
val wordcounts = words.map(word=>(word,1)).reduceByKey(_+_)
wordcounts.saveAsTextFile(args(1))
}
}
我们需要使用spark的bin/spark-submit来提交我们的程序,具体参数使用help命令查看:
bin/spark-submit --help
Standalone模式 client
bin/spark-submit \
--class cn.lyl.spark.Wordcount \
--master spark://master:7077 \
--executor-memory 1G \
wordcount.jar \
hdfs://master:8020/user/README.txt \
hdfs://master:8020/user/wordcount1
Standalone模式 cluster
bin/spark-submit \
--class cn.lyl.spark.Wordcount \
--master spark://master:7077 \
--executor-memory 1G \
--deploy-mode cluster \
wordcount.jar \
hdfs://master:8020/user/README.txt \
hdfs://master:8020/user/wordcount2
Yarn模式 client
bin/spark-submit \
--class cn.lyl.spark.Wordcount \
--deploy-mode client \
--master yarn \
--executor-memory 1G \
wordcount.jar \
hdfs://master:8020/user/README.txt \
hdfs://master:8020/user/wordcount3
Yarn cluster
bin/spark-submit \
--class cn.lyl.spark.Wordcount \
--deploy-mode cluster \
--master yarn \
--executor-memory 1G \
wordcount.jar \
hdfs://master:8020/user/README.txt \
hdfs://master:8020/user/wordcount4