Apache spark 预期HTTP 101响应,但为';403禁止';
/* *根据一个或多个许可证颁发给Apache软件基金会(ASF) *贡献者许可协议。请参阅随附的通知文件 *本作品提供了有关版权所有权的更多信息。 *ASF根据Apache许可证2.0版将此文件许可给您 *(以下简称“许可证”);除非符合以下要求,否则不得使用此文件 *执照。您可以通过以下方式获得许可证副本: * * * *除非适用法律要求或书面同意,软件 *根据许可证进行的分发是按“原样”进行分发的, *无任何明示或暗示的保证或条件。 *请参阅许可证以了解管理权限和权限的特定语言 *许可证下的限制。 */Apache spark 预期HTTP 101响应,但为';403禁止';,apache-spark,kubernetes,Apache Spark,Kubernetes,/* *根据一个或多个许可证颁发给Apache软件基金会(ASF) *贡献者许可协议。请参阅随附的通知文件 *本作品提供了有关版权所有权的更多信息。 *ASF根据Apache许可证2.0版将此文件许可给您 *(以下简称“许可证”);除非符合以下要求,否则不得使用此文件 *执照。您可以通过以下方式获得许可证副本: * * * *除非适用法律要求或书面同意,软件 *根据许可证进行的分发是按“原样”进行分发的, *无任何明示或暗示的保证或条件。 *请参阅许可证以了解管理权限和权限的特定语言 *
package org.apache.spark.examples;
导入org.apache.spark.api.java.JavaRDD;
导入org.apache.spark.api.java.JavaSparkContext;
导入org.apache.spark.sql.SparkSession;
导入java.util.ArrayList;
导入java.util.List;
/**
*计算pi的近似值
*用法:JavaSparkPi[分区]
*/
公共最终类JavaSparkPi{
公共静态void main(字符串[]args)引发异常{
火花会话火花=火花会话
.builder()
.appName(“JavaSparkPi”)
.getOrCreate();
JavaSparkContext jsc=新的JavaSparkContext(spark.sparkContext());
int slices=(args.length==1)?Integer.parseInt(args[0]):2;
int n=100000*个切片;
列表l=新阵列列表(n);
对于(int i=0;i{
double x=Math.random()*2-1;
double y=Math.random()*2-1;
返回(x*x+y*y整数+整数2);
System.out.println(“Pi大致为”+4.0*计数/n);
spark.stop();
}
}
预期结果:spark submit命令应平稳运行,并通过创建成功的pod成功终止它。
受影响的Spark版本似乎存在报告问题
- 2.3.0
- 2.3.1
- 2.3.3
- 2.4.0
- 2.4.1
- 2.4.2
- 2.4.3
- 2.4.4
- 2.4.5
- 3.0.0
您可能需要升级受影响的Spark版本似乎存在报告问题
- 2.3.0
- 2.3.1
- 2.3.3
- 2.4.0
- 2.4.1
- 2.4.2
- 2.4.3
- 2.4.4
- 2.4.5
- 3.0.0
您可能需要升级带有k8s 1.18的Spark 2.4.4或Spark 3.0.0。我遇到了相同的错误 您可以尝试使用http而不是https API 转到主k8s并创建HTTP访问点:
package org.apache.spark.examples;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import java.util.ArrayList;
import java.util.List;
/**
* Computes an approximation to pi
* Usage: JavaSparkPi [partitions]
*/
public final class JavaSparkPi {
public static void main(String[] args) throws Exception {
SparkSession spark = SparkSession
.builder()
.appName("JavaSparkPi")
.getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
int n = 100000 * slices;
List<Integer> l = new ArrayList<>(n);
for (int i = 0; i < n; i++) {
l.add(i);
}
JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);
int count = dataSet.map(integer -> {
double x = Math.random() * 2 - 1;
double y = Math.random() * 2 - 1;
return (x * x + y * y <= 1) ? 1 : 0;
}).reduce((integer, integer2) -> integer + integer2);
System.out.println("Pi is roughly " + 4.0 * count / n);
spark.stop();
}
}
Expected result : spark-submit command should run smoothly and terminate it successfully by creating a successful pod.
然后:
kubectl proxy --address=ip_your_master_k8s --port=port_what_you_want --accept-hosts='^*' --accept-paths='^.*' --disable-filter=true
Spark 2.4.4或带有k8s 1.18的Spark 3.0.0对我来说也有同样的错误 您可以尝试使用http而不是https API 转到主k8s并创建HTTP访问点:
package org.apache.spark.examples;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import java.util.ArrayList;
import java.util.List;
/**
* Computes an approximation to pi
* Usage: JavaSparkPi [partitions]
*/
public final class JavaSparkPi {
public static void main(String[] args) throws Exception {
SparkSession spark = SparkSession
.builder()
.appName("JavaSparkPi")
.getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
int n = 100000 * slices;
List<Integer> l = new ArrayList<>(n);
for (int i = 0; i < n; i++) {
l.add(i);
}
JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);
int count = dataSet.map(integer -> {
double x = Math.random() * 2 - 1;
double y = Math.random() * 2 - 1;
return (x * x + y * y <= 1) ? 1 : 0;
}).reduce((integer, integer2) -> integer + integer2);
System.out.println("Pi is roughly " + 4.0 * count / n);
spark.stop();
}
}
Expected result : spark-submit command should run smoothly and terminate it successfully by creating a successful pod.
然后:
kubectl proxy --address=ip_your_master_k8s --port=port_what_you_want --accept-hosts='^*' --accept-paths='^.*' --disable-filter=true
上述给定解决方案的可能副本对我不起作用。得到相同的问题。如果有人对此有想法,请务必回复。尝试在ENTRYPOINT之前将此添加到Dockerfile。运行rm$SPARK_HOME/jars/kubernetes-client-3.0.0.jar ADD$SPARK_HOME/jars。我也尝试了上述解决方案,但对我无效。可能是重复的a以上给出的解决方案对我不起作用。遇到同样的问题。如果有人对此有想法,请回复。尝试在ENTRYPOINT之前将此添加到Dockerfile。运行rm$SPARK\u HOME/jars/kubernetes-client-3.0.0.jar ADD$SPARK\u HOME/jar。我也尝试了上述解决方案,但对我无效。