我不确定CNI插件和Kubernetes中的Kube-proxy有什么区别。从文档中得出的结论如下:
Kube-proxy负责与主节点进行通信并进行路由。
CNI通过将IP地址分配给Pod和服务来提供连接性,并通过其路由守护进程实现可达性。
路由似乎是两者之间的重叠功能,对吗?
亲切的问候,查尔斯
我想知道当没有为该特定Pod定义服务时如何访问Pod。如果通过环境变量,集群如何检索这些变量?
另外,在定义服务时,它在主节点上的什么位置存储?
亲切的问候,查尔斯
我的pyspark应用程序在106,36 MB数据集(817.270条记录)上运行UDF,使用常规python lambda函数大约需要100个小时。我生成了一个Google Dataproc集群,其中包含20个工作节点,每个工作节点有8个vCPU。但是,执行时仅使用3个节点和3个vCPU。显然,我希望集群使用我提供的所有资源。
结果数据帧的默认分区数为8。我尝试将其重新分区为100,但是群集仅使用3个节点和3个vCPU。另外,当我运行命令以检查spark看到的执行程序的数量时,它只有3个。
这是要执行的pyspark代码:
from pyspark.sql.types import StringType, MapType
from pyspark.sql.functions import udf
customer_names = spark.createDataFrame(customer_names)
embargo_match_udf = udf(lambda x,y: embargoMatch(x,y), MapType(StringType(), StringType()))
customer_names = customer_names.withColumn('JaroDistance', embargo_match_udf('name','customer_code'))
result = customer_names.withColumn('jaro_similarity', customer_names.JaroDistance['max_jaro'])
result.write.format("com.databricks.spark.csv").save('gs://charles-embargo-bucket/sparkytuesday')
Run Code Online (Sandbox Code Playgroud)
这是从我的jupyter笔记本上看到的一些火花输出
print(sc) -> <SparkContext master=yarn appName=PySparkShell>
print(result.rdd.getNumPartitions()) -> 8
result = result.repartition(100)
print(result.rdd.getNumPartitions()) -> 100
sc._jsc.sc().getExecutorMemoryStatus().size() -> 3
Run Code Online (Sandbox Code Playgroud)