提交 Spark job
QingMR 集群创建成功后,您可以通过 Client 创建并执行 Spark job。
前提条件
- 已获取管理控制台登录账号和密码,且已获取集群操作权限。
- 已创建 QingMR 集群,且集群状态为活跃。
- 已打通集群网络,使集群云服务器能面向互联网提供服务。例如使用端口转发或 VPN 等方式打通网络,详细操作请参见访问组件 Web 页面。
配置 Spark 模式
您可以选择是否开启 Spark Standalone 模式。
- 开启后您将以 Spark Standalone 模式提交 Spark 应用。
- 关闭后您将以 Spark on YARN 模式提交 Spark 应用(从 1.1.0 开始默认关闭),推荐使用 Spark on YARN 模式。
若仅以 Spark on YARN 模式提交 Spark 应用或者仅使用 Hadoop 相关功能,您可以选择关闭 Spark Standalone 模式以释放资源。
-
登录管理控制台。
-
选择产品与服务 > 大数据服务 > 大数据引擎 QingMR,进入集群管理页面。
-
选择目标集群,点击目标集群 ID,进入集群详情页面。
-
选择配置参数页签,点击修改属性。
说明
enable_spark_standalone 参数建议不要和其他配置参数项一起修改,推荐单独修改此项然后保存设置。
-设置为 Spark on YARN 模式
设置 enable_spark_standalone 参数为false
。
-设置为 Spark Standalone 模式
设置 enable_spark_standalone 参数为true
。
-
点击保存。
在 Spark on YARN 模式提交 job
Spark on YARN 模式需设置 enable_spark_standalone 为 false
,详细操作请参见配置 Spark 模式。
Spark job(shell)
在 Client 节点上执行以下命令:
说明
您也可以将测试文件上传到 hdfs,然后将代码中的文件路径替换为 hdfs 上的文件路径,例如 hdfs:///user/ubuntu/README.md。
-
Scala
cd /opt/spark bin/spark-shell --master yarn val textFile = spark.read.textFile("file:///opt/spark/README.md") textFile.count() textFile.filter(line => line.contains("Spark")).count()
-
Python
cd /opt/spark bin/pyspark --master yarn textFile = spark.read.text("file:///opt/spark/README.md") textFile.count() textFile.filter(textFile.value.contains("Spark")).count()
-
R
cd /opt/spark bin/sparkR --master yarn df <- as.DataFrame(faithful) head(df) people <- read.df("file:///opt/spark/examples/src/main/resources/people.json", "json") printSchema(people)
Spark job (jar)
在 Client 节点上执行以下命令:
-
Scala
cd /opt/spark bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --num-executors 3 --executor-cores 1 --executor-memory 1g examples/jars/spark-examples_2.12-2.4.8.jar 100
说明
spark-examples_2.12-2.4.8.jar
为您集群中对应的JAR包名称,您可以在 Client 节点的 opt/spark/examples/jars 路径下获取。 -
Python
cd /opt/spark bin/spark-submit --master yarn --deploy-mode client examples/src/main/python/pi.py 100
-
R
cd /opt/spark bin/spark-submit --master yarn --deploy-mode cluster /opt/spark/examples/src/main/r/ml/kmeans.R
查看作业信息
在 Spark on YARN 模式提交 Spark job 后,在浏览器输入 http://< 主节点 IP >:8088,访问 Yarn UI 查看 job 记录。
在 job 运行过程中,可以单击任务的 Tracking UI 链接,查看 job 的详细信息。
在 Spark Standalone 模式提交 job
Spark Standalone 模式需要设置 enable_spark_standalone 为 true
,详细操作请参见配置 Spark 模式。
Spark job(shell)
在 Client 节点上执行以下命令:
说明
您也可以将测试文件上传到 hdfs,然后将代码中的文件路径替换为 hdfs 上的文件路径,例如 hdfs:///user/ubuntu/README.md。
- Scala
cd /opt/spark bin/spark-shell --master spark://<主节点 IP>:7077 val textFile = spark.read.textFile("file:///opt/spark/README.md") textFile.count() textFile.filter(line => line.contains("Spark")).count()
- Python
cd /opt/spark bin/pyspark --master spark://<主节点 IP>:7077 textFile = spark.read.text("file:///opt/spark/README.md") textFile.count() textFile.filter(textFile.value.contains("Spark")).count()
- R
cd /opt/spark bin/sparkR --master spark://<主节点 IP>:7077 df <- as.DataFrame(faithful) head(df) people <- read.df("file:///opt/spark/examples/src/main/resources/people.json", "json") printSchema(people)
Spark job(jar)
在 Client 节点上执行以下命令:
-
Scala
cd /opt/spark bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://<主节点 IP>:7077 examples/jars/spark-examples_2.12-2.4.8.jar 100
说明
spark-examples_2.12-2.4.8.jar
为您集群中对应的JAR包名称,您可以在 Client 节点的 opt/spark/examples/jars 路径下获取。 -
Python
cd /opt/spark bin/spark-submit --master spark://<主节点 IP>:7077 examples/src/main/python/pi.py 100
说明
可以在配置参数页面切换 Python 版本。
-
R
cd /opt/spark bin/spark-submit --master spark://<主节点 IP>:7077 examples/src/main/r/data-manipulation.R examples/src/main/resources/people.txt
查看作业信息
在 Spark Standalone 模式提交 Spark job 后,在浏览器输入 http://< 主节点 IP >:8080,访问 Spark UI 查看 job 记录。
在 job 运行过程中,可以单击 Applocation Name 链接,查看 job 的详细信息。