摘要: 最简单去运行一个luigi task的方式是通过luigi命令行工具。 示例代码: 在命令行上运行: 或者可以选择这种方式运行: 注意:如果一个参数的名字中含有'_',在命令行中你需要替代为'-'。例如MyTask有一个参数名字是'my_parameter',你需要这么赋值: luigi --mod 阅读全文
posted @ 2016-07-29 10:46 dongdone 阅读(573) 评论(0) 推荐(0) 编辑
摘要: parameter就好比是一个task的构造方法。luigi要求你在类的scope上定义parameter。 如下面就是一个定义parameter的例子: 对于上述的parameter你可以使用这样的方式来初始化: DailyReport(datetime.date(2012,5,10))或者仅仅使 阅读全文
posted @ 2016-07-28 11:36 dongdone 阅读(1247) 评论(0) 推荐(0) 编辑
摘要: 先看下面的代码: 执行代码,会发现这个程序一直会运行,而不会停止。 因为在主线程中创建了rt对象,并且调用了run方法,启动了另一个线程,这个线程会复制isRunnning变量的副本到工作内存空间。 所以当主线程对rt对象的属性isRunning做了更改时,对其他线程而言是无效的,因为其他的线程都有 阅读全文
posted @ 2016-07-27 18:00 dongdone 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 一、改变了锁对象 本来打算让t1先执行,t1执行完成之后t2再执行,但是t1线程将锁对象改变了,所以可以说t1线程获取的是字符串“lock”的对象锁,t2线程获取的是字符串“change lock”的对象锁。 二、死锁问题 三、修改锁对象的属性 四、对象锁与类所 五、使用synchronized代码 阅读全文
posted @ 2016-07-27 15:58 dongdone 阅读(316) 评论(0) 推荐(1) 编辑
摘要: 上面的两个例子比较简单,可以复制代码查看运行结果即可。 阅读全文
posted @ 2016-07-27 15:26 dongdone 阅读(570) 评论(0) 推荐(1) 编辑
摘要: sqoop job: Work with saved jobs 就是将sqoop的某条语句保存为一个job 1.把person表导入到HDFS上,可以使用下面的语句 2.我们现在要把上面的语句保存成为一个job 3.查看可用的job 4.执行person_job来完成导入 5.执行person_jo 阅读全文
posted @ 2016-07-27 14:03 dongdone 阅读(3539) 评论(0) 推荐(0) 编辑
摘要: eval的作用:Evaluate a SQL statement and display the results,也就是说eval像是一个数据库的客户端工具。 一、使用eval来查询表 二、使用eval来插入数据 其中-e选项和--query选项是一样的 阅读全文
posted @ 2016-07-27 13:34 dongdone 阅读(4542) 评论(0) 推荐(0) 编辑
摘要: task是代码执行的地方。task通过target互相依赖。 下面是一个典型的task的大纲视图。 一、Task.requires requires方法用来指定本task的依赖的其他task对象,依赖的task对象甚至可以是同一个class的对象,下面是一个例子: 上述的DailyReport ta 阅读全文
posted @ 2016-07-27 11:44 dongdone 阅读(2980) 评论(0) 推荐(1) 编辑
摘要: 上述的代码会发生脏读的问题,解决的办法是在setValue的方法上加synchronized关键字 读取和设置的数据必须保证是一致的。 这和数据库的一致性原理是一样的。 阅读全文
posted @ 2016-07-26 23:29 dongdone 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 一、codegen工具的使用 其中bindir参数指明了生成的class文件,jar包的输出目录 sqoop在进行每一次的导出任务时,都会调用codegen,生成一个java文件,并编译打包成jar,供mapreduce使用。这个java文件包装了一系列的对导出数据的访问接口,我们可以尝试通过对这个 阅读全文
posted @ 2016-07-26 22:49 dongdone 阅读(1647) 评论(0) 推荐(0) 编辑