【转】Linux中多线程wait使用注意
生活随笔
收集整理的這篇文章主要介紹了
【转】Linux中多线程wait使用注意
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用管道生成的while,是無法進行并發管理的
hdfs dfs -rmr $cdns_hadoop_base_dir/dt=$ydate hdfs dfs -mkdir $cdns_hadoop_base_dir/dt=$ydate cat nodeList| while read nodename dohdfs dfs -mkdir $cdns_hadoop_base_dir/dt=$ydate/node=$nodenamels *$nodename*lzo > cdnsFileListLzowhile read query_logdo( hdfs dfs -put $query_log $cdns_hadoop_base_dir/dt=$ydate/node=$nodenamerm $query_log -rfyarn jar ${hadooplzojar} ${hadooplzoclass} $cdns_hadoop_base_dir/dt=$ydate/node=$nodename/$query_log ) &done < cdnsFileListLzo wait done?
里面用小括號括住代碼塊。。。在處理日志的時候,采用管道多線程,怎么都實現不了wait功能,經上篇文章才知道,使用管道生成的while,無法進行并發管理。
while read query_logdo( hdfs dfs -put $query_log $cdns_hadoop_base_dir/dt=$ydate/node=$nodenamerm $query_log -rfyarn jar ${hadooplzojar} ${hadooplzoclass} $cdns_hadoop_base_dir/dt=$ydate/node=$nodename/$query_log ) &done < cdnsFileListLzo修改為上述方式,完美解決問題。。。
?
OVER
轉載于:https://www.cnblogs.com/zhzhang/p/6268517.html
總結
以上是生活随笔為你收集整理的【转】Linux中多线程wait使用注意的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】Javascript面向对象编程(
- 下一篇: Ceph OSD操作 命令详解