正如标题所说,我正在尝试使用集中式调度程序运行luigi
。我只需运行luigid
并启动调度程序。我检查了localhost:8082/
,我得到了预期的页面,因为到目前为止还没有工作。
然后我开始我的小测试程序。它无法连接到调度程序,从而产生错误
HTTPError: 411 Client Error: Length Required for url:http://localhost:8082/api/ping
我正在运行Linux 4.4.0-104
,Python版本2.7.12
和Luigi版本2.7.1
。
这是我的小测试程序,它以整数 n 作为输入。首先,所有直到该号码的文件都写入文件。然后下一个任务也会这样做,但是对于数字的平方
import luigi
class PrintNumbers(luigi.Task):
n = luigi.IntParameter()
def requires(self):
return []
def output(self):
return luigi.LocalTarget("numbers_up_to_{}.txt".format(self.n))
def run(self):
with self.output().open('w') as f:
for i in range(1, self.n+1):
f.write("{}\n".format(i))
class SquareNumbers(luigi.Task):
n = luigi.IntParameter()
def requires(self):
return [PrintNumbers(n=self.n)]
def output(self):
return luigi.LocalTarget("squares_up_to_{}.txt".format(self.n))
def run(self):
with self.input()[0].open() as fin, self.output().open('w') as fout:
for line in fin:
n = int(line.strip())
out = n*n
fout.write("{}:{}\n".format(n,out))
if __name__ == "__main__":
luigi.run(['--n', '100000'], main_task_cls=SquaredNumbers)
编辑:在工作目录中添加了luigi.cfg
文件:
我在工作目录中使用以下内容创建了luigi.cfg
:
[core]
default-scheduler-host=localhost
default-scheduler-port=8082
max-reschedules=2
parallel-scheduling=true
rpc-connect-timeout=10.0