Skip to content

Commit 7563a8a

Browse files
authored
Bind random port for kube api proxy (#7)
* bind random port for kube api proxy * bumpup version
1 parent 3ad3379 commit 7563a8a

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

ods/spark_cluster/spark_cluster.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
import platform
33
import os, re, time, sys
44
import subprocess
5+
import socket
6+
from contextlib import closing
57
import wget
68
import staroid
79
import requests
@@ -98,13 +100,20 @@ def __download_jar(self, download_dir, url):
98100
if not os.path.exists("{}/{}".format(download_dir, filename)):
99101
wget.download(url, download_dir)
100102

103+
def __find_free_port(self):
104+
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
105+
s.bind(('localhost', 0))
106+
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
107+
return s.getsockname()[1]
108+
101109
def start(self):
102110
"Start cluster"
103111

104112
# run previous steps
105113
self.install()
106114

107-
local_kube_api_port = 8001
115+
local_kube_api_port = self.__find_free_port()
116+
self.__local_kube_api_port = local_kube_api_port
108117
local_kube_api_addr = "http://localhost:{}".format(local_kube_api_port)
109118

110119
# create start namespace
@@ -243,7 +252,7 @@ def session(self):
243252
jars_packages = []
244253
session_builder = SparkSession.builder \
245254
.appName(self.__cluster_name) \
246-
.config("spark.master", "k8s://http://localhost:8001") \
255+
.config("spark.master", "k8s://http://localhost:{}".format(self.__local_kube_api_port)) \
247256
.config("spark.kubernetes.namespace", ns.namespace()) \
248257
.config("spark.kubernetes.container.image", SPARK_ARTIFACTS[self.__spark_version]["image"]) \
249258
.config("spark.driver.host", "driver-{}".format(self.__cluster_name)) \

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="ods",
8-
version="0.0.6",
8+
version="0.0.7",
99
license='MIT',
1010
author="Open Data Studio",
1111
author_email="moon@staroid.com",

0 commit comments

Comments
 (0)