Проблема в том, что мой основной код (Python, обернутый в сценарий bash, который выполняется в Spark в режиме клиента) переходит в состояние останова, когда его подпроцесс пытается сохранить выходные данные своей команды в локальном файле. * Подпроцесс 1001 *
выполняет скрипт beeline, который подключается к базе данных Hive и получает DDL таблицы.
Env : Spark 1.6, Python 2.7, Red Hat Linux 6.10 , Bash.
Часть кода, о которой идет речь:
bl_args = '--showHeader=false --outputformat=tsv2 -e "describe ' + srcTable + ';" '
with open(schema_file, 'w') as sf:
subprocess.check_call("MybeelineScript " + bl_args,stdout=sf,shell=True)
MybeelineScript: просто однострочная оболочка, которая вызывает beeline -u "...."
Команда: nohup myMainWrapper. sh> myprog.out 2> & 1 &
Некоторые точки: Выходной файл создан, но он пуст. Код работает на переднем плане. Когда он останавливается, когда я выношу его на передний план, он продолжает бежать. Такое же поведение с использованием Popen.
Ценю вашу помощь.