-1
Так у меня есть этот код:искры, используя только одно ядро на параллелизм задачи
conf = SparkConf().setAll((
("spark.python.profile", "true" if args.profile else "false"),
("spark.task.maxFailures", "20"),
("spark.driver.cores", "4"),
("spark.executor.cores", "4"),
("spark.shuffle.service.enabled", "true"),
("spark.dynamicAllocation.enabled", "true"),
))
# TODO could this be set somewhere in cosr-ops instead?
executor_environment = {}
if config["ENV"] == "prod":
executor_environment = {
"PYTHONPATH": "/cosr/back",
"PYSPARK_PYTHON": "/cosr/back/venv/bin/python",
"LD_LIBRARY_PATH": "/usr/local/lib"
}
sc = SparkContext(appName="Common Search Index", conf=conf, environment=executor_environment)
# First, generate a list of all WARC files
warc_filenames = list_warc_filenames()
# Then split their indexing in Spark workers
warc_records = sc.parallelize(warc_filenames, 4).flatMap(iter_records)
В то время как lounches все свечи вещи он использует все ядра.
Но когда он начинает выполнять задачу (индексирование), тогда он использует только 1 ядро на 100%.
Как сделать одну задачу искры, используя все ядра?
Это ничего не сделает ... он не вызывает действие –
Он делает, itter_records содержит работу. – IvRRimUm
Когда его вызываемый он начинает индексировать warc bodys на ES-кластеры. – IvRRimUm