WedX - журнал о программировании и компьютерных науках

Каскадная конфигурация Tap для Amazon S3 в локальной файловой системе

Итак, я пробую каскадную структуру и могу запускать приложения локально. В качестве следующего шага я хочу использовать Cascading для загрузки файлов с S3 в локальную файловую систему. Я планирую использовать FileTap. Когда я гуглил, я нашел S3FS и похоже, что он устарел. Может ли кто-нибудь указать мне в правильном направлении. Другими словами, как правильно создать FileTap для Amazon S3 с идентификатором доступа и секретным ключом.

24.08.2016


Ответы:


1

Хотя этот код предназначен для HadoopFlowConnector, он будет работать с соединителем Local Flow при использовании FileTap.

public class Main {
                public void run(String[] args) {
                    Properties properties = new Properties();
                    String accessKey = args[0];
                    String secretKey = args[1];
                    // better put these keys to hadoop xml file
                    // for block file system
                    properties.setProperty("fs.s3.awsAccessKeyId", accessKey);
                    properties.setProperty("fs.s3.awsSecretAccessKey", secretKey);
                    // for s3 native file system
                    // properties.setProperty("fs.s3n.awsAccessKeyId", accessKey);
                    // properties.setProperty("fs.s3n.awsSecretAccessKey", secretKey);
                    // properties.setProperty("fs.defaultFS", "hdfs://localhost:8020/");
                    // properties.setProperty("fs.permissions.umask-mode", "007");
                    AppProps.setApplicationJarClass(properties, Main.class);
                    HadoopFlowConnector flowConnector = new HadoopFlowConnector(
                        properties);
                    String input = "s3://my-bucket/my-log.csv";
                    // If using the native S3
                    // String input = "s3n://my-bucket/my-log.csv";

                    Tap inTap = new Hfs(new TextDelimited(false, ";"), input);
                    Pipe copyPipe = new Pipe("copy");
                    Tap outTap = new Hfs(new TextDelimited(false, ";"),
                        "data/output");
                    FlowDef flowDef = FlowDef.flowDef()
                        .addSource(copyPipe, inTap)
                        .addTailSink(copyPipe, outTap);
                    flowConnector.connect(flowDef).complete();
                }

                public static void main(String[] args) {
                    new Main().run(args);
                }
            }

Код предоставлен https://whiteboxdeveloper.blogspot.com/2015/01/processing-data-from-aws-s3-using.html.

Я только что добавил строку ввода строки S3N с комментариями. Поскольку я использовал доступ на основе S3N, я раскомментировал функции S3N и использовал их.

28.08.2016
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: wedx@cp9.ru