摘要:
最简单去运行一个luigi task的方式是通过luigi命令行工具。 示例代码: 在命令行上运行: 或者可以选择这种方式运行: 注意:如果一个参数的名字中含有'_',在命令行中你需要替代为'-'。例如MyTask有一个参数名字是'my_parameter',你需要这么赋值: luigi --mod 阅读全文
摘要:
parameter就好比是一个task的构造方法。luigi要求你在类的scope上定义parameter。 如下面就是一个定义parameter的例子: 对于上述的parameter你可以使用这样的方式来初始化: DailyReport(datetime.date(2012,5,10))或者仅仅使 阅读全文
摘要:
先看下面的代码: 执行代码,会发现这个程序一直会运行,而不会停止。 因为在主线程中创建了rt对象,并且调用了run方法,启动了另一个线程,这个线程会复制isRunnning变量的副本到工作内存空间。 所以当主线程对rt对象的属性isRunning做了更改时,对其他线程而言是无效的,因为其他的线程都有 阅读全文
摘要:
一、改变了锁对象 本来打算让t1先执行,t1执行完成之后t2再执行,但是t1线程将锁对象改变了,所以可以说t1线程获取的是字符串“lock”的对象锁,t2线程获取的是字符串“change lock”的对象锁。 二、死锁问题 三、修改锁对象的属性 四、对象锁与类所 五、使用synchronized代码 阅读全文
摘要:
上面的两个例子比较简单,可以复制代码查看运行结果即可。 阅读全文
摘要:
sqoop job: Work with saved jobs 就是将sqoop的某条语句保存为一个job 1.把person表导入到HDFS上,可以使用下面的语句 2.我们现在要把上面的语句保存成为一个job 3.查看可用的job 4.执行person_job来完成导入 5.执行person_jo 阅读全文
摘要:
eval的作用:Evaluate a SQL statement and display the results,也就是说eval像是一个数据库的客户端工具。 一、使用eval来查询表 二、使用eval来插入数据 其中-e选项和--query选项是一样的 阅读全文
摘要:
task是代码执行的地方。task通过target互相依赖。 下面是一个典型的task的大纲视图。 一、Task.requires requires方法用来指定本task的依赖的其他task对象,依赖的task对象甚至可以是同一个class的对象,下面是一个例子: 上述的DailyReport ta 阅读全文