шаблон проектирования для каталогов distcp с подстановочными знаками или переменными (glob)

Я знаю, что distcp не может использовать подстановочные знаки. Однако мне нужно будет планировать distcp при смене каталогов. (т. е. копировать только данные из каталога «пятница» в понедельник и т. д.), но также и из всех проектов в указанном каталоге.

Есть ли какой-то шаблон проектирования для написания сценариев такого рода?

Короче говоря, я хочу иметь возможность:

hadoop distcp /foo/*/bar/$year/$month/$day hdfs://namespace-foo/replication-dir/

person Havnar    schedule 10.11.2015    source источник
comment
Рассматривали ли вы возможность использования Oozie для планирования заданий? Используя Oozie, вы можете указать подстановочные знаки, которые хотите.   -  person Manjunath Ballur    schedule 11.11.2015
comment
Мы стараемся держаться подальше от Узи.   -  person Havnar    schedule 12.11.2015


Ответы (1)


В итоге я использовал следующую функцию, чтобы добраться до нужных мне каталогов.

    function get_list_of_directories_for_input_dir {

        local fvar_dirlist=`hadoop fs -ls "$1" | awk '{print $8}'`
        local fvar_count=`echo "$fvar_dirlist" | wc -l`
        if [ "$fvar_count" -ge "2" ]; then

                local fvar_len=$(($fvar_count - 1))
                local fvar_dirlist=`echo $fvar_dirlist | tail -n $fvar_len`
                echo "$fvar_dirlist"

        else
                exit 1;
        fi

}
person Havnar    schedule 28.01.2016