84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
如题,我想在hadoop上运行如下命令:
hadoop fs -get /test/*.log
但是在test目录下有着太多的log,而且很难用名称限制个数,应该如何改写这条命令,使得可以手动确定下载的文件个数呢?
认证0级讲师
没用过 hadoop ;如果你是要下载 total 个的 log 的话可以试下:
cnt=0 total=100 for file in $(ls /test/*.log); do echo hadoop fs -get ${file} let cnt=$((${cnt} + 1)) # 这个 bash 可以用,别的 Shell 你改一下吧 if [ ${cnt} -ge ${total} ]; then break fi done
那个 echo 你自己去掉吧,命令我直接手写的,没试过;一般情况生产上,先 echo 测一下,看下输出对不对,没问题,再执行。
看了楼下的提示,我再补充一个简单的:
ls /test/*.log | head -100 | xargs echo hadoop fs -get
你可以试一下。
shell中有个head命令,不知道hadoop中有没有
没用过 hadoop ;如果你是要下载 total 个的 log 的话可以试下:
那个 echo 你自己去掉吧,命令我直接手写的,没试过;
一般情况生产上,先 echo 测一下,看下输出对不对,没问题,再执行。
看了楼下的提示,我再补充一个简单的:
你可以试一下。
shell中有个head命令,不知道hadoop中有没有