84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
如题,我想在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中有没有