脚本宝典收集整理的这篇文章主要介绍了spark-2.4.5的standalone的部署,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Spark支持3种集群部署模式:Standalone、Yarn、Mesos;
粗粒度模式(Coarse-grained Mode):每个应用程序的运行环境由一个Dirver和 若干个Executor组成,其中,每个Executor占用若干资源,内部可运行多个Task。 应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中要一直占用这些资源,即使不用,最后程序运行结束后,回收这些资源。
细粒度模式(Fine-grained Mode):鉴于粗粒度模式会造成大量资源浪费,Spark On Mesos还提供了另外一种调度模式:细粒度模式,这种模式类似于现在的云计算,核心思想是按需分配。
Spark官网,选择 spark-2.4.5-bin-wIThout-hadoop-scala-2.12.tgz
备注:不用安装scala
[root@gcw1 src]# ll | grep spark
-rw-r--r-- 1 root root 145961599 Sep 22 22:50 spark-2.4.5-bin-without-hadoop-scala-2.12.tgz
[root@gcw1 src]# tar -zxf spark-2.4.5-bin-without-hadoop-scala-2.12.tgz -C /opt/app/
[root@gcw1 src]# cd /opt/app/
[root@gcw1 app]# ln -s spark-2.4.5-bin-without-hadoop-scala-2.12 spark
vi /etc/PRofile
export SPARK_HOME=/opt/app/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
[root@gcw1 app]# cd $SPARK_HOME/conf
[root@gcw1 conf]# ll
total 36
-rw-r--r-- 1 gcw1 gcw1 996 Feb 3 2020 docker.proPErties.template
-rw-r--r-- 1 gcw1 gcw1 1105 Feb 3 2020 fairscheduler.XMl.template
-rw-r--r-- 1 gcw1 gcw1 2025 Feb 3 2020 LOG4j.properties.template
-rw-r--r-- 1 gcw1 gcw1 7801 Feb 3 2020 metrics.properties.template
-rw-r--r-- 1 gcw1 gcw1 865 Feb 3 2020 slaves.template
-rw-r--r-- 1 gcw1 gcw1 1292 Feb 3 2020 spark-defaults.conf.template
-rwxr-xr-x 1 gcw1 gcw1 4221 Feb 3 2020 spark-env.sh.template
[root@gcw1 conf]# cp slaves.template slaves
[root@gcw1 conf]# vi slaves
[root@gcw1 conf]#
[root@gcw1 conf]# cp spark-defaults.conf.template spark-defaults.conf
[root@gcw1 conf]# vi spark-defaults.conf
spark.master spark://gcw1:7077
spark.eventLog.enabled true
spark.eventLog.dir hDFs://gcw1:9000/spark-log
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.driver.memory 512m
# spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
创建 HDFS 目录
hdfs dfs -mkdir /spark-log
备注:
export JAVA_HOME=/opt/app/jdk
export HADOOP_HOME=/opt/app/hadoop
export HADOOP_CONF_DIR=/opt/app/hadoop/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/opt/app/hadoop/bin/hadoop classpath)
export SPARK_MASTER_HOST=gcw1
export SPARK_MASTER_PORT=7077
备注:这里使用的是 spark-2.4.5-bin-without-hadoop,所以要将 Hadoop 相关 jars 的位置告诉Spark
解决spark的命令和hadoop的命令重名
[root@gcw1 sbin]# cd /opt/app/spark/sbin/
[root@gcw1 sbin]# mv ./start-all.sh spark-start-all.sh
[root@gcw1 sbin]# mv ./stop-all.sh spark-stop-all.sh
[root@gcw1 sbin]# mv ./start-history-server.sh spark-start-history-server.sh
[root@gcw1 sbin]# mv stop-history-server.sh spark-stop-history-server.sh
cd /opt/app
scp -r spark-2.4.5-bin-without-hadoop-scala-2.12 gcw2:`pwd`
scp -r spark-2.4.5-bin-without-hadoop-scala-2.12 gcw3:`pwd`
配置环境变量,创建软连接
[root@gcw2 app]# cd /opt/app/
[root@gcw2 app]# ln -s spark-2.4.5-bin-without-hadoop-scala-2.12 spark
[root@gcw3 ~]# cd /opt/app/
[root@gcw3 app]# ln -s spark-2.4.5-bin-without-hadoop-scala-2.12/ spark
vi /etc/profile
export SPARK_HOME=/opt/app/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
[root@gcw1 spark]# spark-start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /opt/app/spark/logs/spark-root-org.apache.spark.deploy.master.Master-1-gcw1.out
gcw2: starting org.apache.spark.deploy.worker.Worker, logging to /opt/app/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-gcw2.out
gcw1: starting org.apache.spark.deploy.worker.Worker, logging to /opt/app/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-gcw1.out
gcw3: starting org.apache.spark.deploy.worker.Worker, logging to /opt/app/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-gcw3.out
[root@gcw1 spark]# jps
1072 -- process information unavailable
2515 NodeManager
2296 DataNode
3224 Jps
2123 NameNode
3164 Worker
3039 Master
[root@gcw1 spark]#
gcw2
[root@gcw2 sbin]# jps
1936 Worker
1718 NodeManager
1993 Jps
1596 DataNode
前端
http://gcw1:8080
最大的区别:Driver运行在哪里;client是缺省的模式,能看见返回结果,适合调 试;cluster与此相反;
spark-submit --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark-examples_2.12-2.4.5.jar 1000
再次使用 jps 检查集群中的进程:
spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode cluster $SPARK_HOME/examples/jars/spark-examples_2.12-2.4.5.jar 1000
SparkSubmit 进程会在应用程序提交给集群之后就退出
Master会在集群中选择一个 Worker 进程生成一个子进程
DriverWrapper 来启 动 Driver 程序 Worker节点上会启动
CoarseGrainedExecutorBackend DriverWrapper 进程会占用 Worker 进程的一个core(缺省分配1个core,1G内 存)
应用程序的结果,会在执行 Driver 程序的节点的 stdout 中输出,而不是打印在 屏幕上
# spark-defaults.conf
# history server
spark.eventLog.enabled true
spark.eventLog.dir hdfs://gcw1:9000/spark-log
spark.eventLog.COMPress true
# spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=50 -Dspark.history.fs.logDirectory=hdfs://gcw1:9000/spark-log"
以上是脚本宝典为你收集整理的spark-2.4.5的standalone的部署全部内容,希望文章能够帮你解决spark-2.4.5的standalone的部署所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。