$kubectl get po
NAME READY STATUS RESTARTS AGE
spark-master-668325562-w369p 1/1 Running 0 23s
spark-worker-1868749523-xt7hg 1/1 Running 0 23s
现在,spark群集在由minikube创建的本地kubernetes群集上运行良好。我试图通过以下命令向它提交spark作业:
spark-2.1.1-bin-hadoop2.7/bin$ ./spark-submit --master spark://<spark-master>:7077 /home/me/workspace/myproj/myproj.jar
如何知道spark-master IP?我只是按照上面的步骤进行操作,无法找到有关如何知道/设置 spark-master IP的相关教程。
任何人都可以解释一下吗?感谢
更新
我尝试了以下ips,但失败了。
$ minikube ip
192.168.42.55
$kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.0.0.1 <none> 443/TCP 3h
spark-master 10.0.0.175 <none> 8080/TCP,7077/TCP 42m
错误:
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: Can only call getServletHandlers on a running MetricsSystem
at scala.Predef$.require(Predef.scala:224)
at org.apache.spark.metrics.MetricsSystem.getServletHandlers(MetricsSystem.scala:91)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:524)
at NetworkScanCounter$.main(network-scan-counter.scala:68)
at NetworkScanCounter.main(network-scan-counter.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:743)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
答案 0 :(得分:0)
kubectl get po -o wide
将显示pod ip地址,您需要使用Nodeport公开,之后您可以使用minikueip:service port到达master。
答案 1 :(得分:0)
最新的apache spark 2.3.0支持kubernetes。
$ spark-submit --master k8s://https://127.0.0.1:8443 --name cfe8 --deploy-mode cluster --class com.yyy.Application --conf spark.executor.instances=4 --conf spark.kubernetes.container.image=anantpukale/spark_app:1.2 local://CashFlow-0.0.2-SNAPSHOT-shaded.jar
需要注意的要点
1.截至目前,spark 2.3.0仅支持群集部署模式。
2.application jar必须位于HDFS或docker-image或通过http访问的任何远程位置。在上面的命令中,local关键字表示本地到docker容器。
3.在master中传递的ip和端口在
中找到 $ kubectl cluster-info
一旦看到上面的触发器命令,您就可以看到在kubernetes仪表板上创建了pod和服务。