摘要: 先看下面的代码: 执行代码,会发现这个程序一直会运行,而不会停止。 因为在主线程中创建了rt对象,并且调用了run方法,启动了另一个线程,这个线程会复制isRunnning变量的副本到工作内存空间。 所以当主线程对rt对象的属性isRunning做了更改时,对其他线程而言是无效的,因为其他的线程都有 阅读全文
posted @ 2016-07-27 18:00 dongdone 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 一、改变了锁对象 本来打算让t1先执行,t1执行完成之后t2再执行,但是t1线程将锁对象改变了,所以可以说t1线程获取的是字符串“lock”的对象锁,t2线程获取的是字符串“change lock”的对象锁。 二、死锁问题 三、修改锁对象的属性 四、对象锁与类所 五、使用synchronized代码 阅读全文
posted @ 2016-07-27 15:58 dongdone 阅读(319) 评论(0) 推荐(1) 编辑
摘要: 上面的两个例子比较简单,可以复制代码查看运行结果即可。 阅读全文
posted @ 2016-07-27 15:26 dongdone 阅读(571) 评论(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 阅读(3558) 评论(0) 推荐(0) 编辑
摘要: eval的作用:Evaluate a SQL statement and display the results,也就是说eval像是一个数据库的客户端工具。 一、使用eval来查询表 二、使用eval来插入数据 其中-e选项和--query选项是一样的 阅读全文
posted @ 2016-07-27 13:34 dongdone 阅读(4576) 评论(0) 推荐(0) 编辑
摘要: task是代码执行的地方。task通过target互相依赖。 下面是一个典型的task的大纲视图。 一、Task.requires requires方法用来指定本task的依赖的其他task对象,依赖的task对象甚至可以是同一个class的对象,下面是一个例子: 上述的DailyReport ta 阅读全文
posted @ 2016-07-27 11:44 dongdone 阅读(3006) 评论(0) 推荐(1) 编辑