move arquivos em um diretório hadoop com o número especificado de arquivos

1

Eu desejo mover os arquivos em um diretório de hadoop em tempo hábil.

O diretório hadoop contém 1000 arquivos com a mesma extensão. Desejo mover 100 deles a cada 10 minutos. Eu posso configurar um cron job para mover os arquivos a cada 10 minutos, mas não sei como especificar o número de arquivos a serem movidos.

hdfs dfs -ls /src/ | tail -100 | xargs hdfs dfs -mv {} / dest/

Qualquer comando para usar?

Obrigado antecipadamente.

    
por GulshanS 19.06.2016 / 18:36

2 respostas

2

Você pode usar mv assim: mv -t target file1 file2 file3 ...

ls | head -n 100 | xargs mv -t destination
    
por gustavwiz 19.06.2016 / 22:41
1

Que tal usar um script como este:

#!/bin/bash

Source="/where/they/are/now/*"
Destination="/where/they/will/go"

while true; do
  count=0
  for file in $Source; do
    if [ $((count++)) -eq 100 ];then
      break
    else mv "$file" "$Destination"
    fi
  done
  sleep 10m
done
    
por bashBedlam 21.06.2016 / 04:09