Настройка внешнего источника данных для Elastic MapReduce
Мы хотим использовать Amazon Elastic MapReduce поверх нашей текущей БД (мы используем Cassandra на EC2). Рассматривая FAQ Amazon EMR, это должно быть возможно:
FAQ Amazon EMR: Q: Могу ли я загрузить мои данные из Интернета или где-то кроме Amazon S3?
Однако при создании нового потока задания мы можем сконфигурировать ведро S3 в качестве источника входных данных.
Любые идеи/примеры того, как это сделать?
Спасибо!
PS: Я видел этот вопрос Как использовать внешние данные с помощью Elastic MapReduce, но ответы на них не совсем объясняют, как это сделать/настроить, просто это возможно.
Ответы
Ответ 1
Как вы обрабатываете данные? EMR только что управляется хаопом. Вам все равно нужно написать какой-то процесс.
Если вы пишете задание Hadoop Mapreduce, вы пишете java, и вы можете использовать Apis Cassandra для доступа к нему.
Если вы хотите использовать что-то вроде улья, вам нужно будет написать обработчик хранилища Hive для использования данных, поддерживаемых Cassandra.
Ответ 2
Попробуйте использовать scp для копирования файлов в экземпляр EMR:
my-desktop-box$ scp mylocaldatafile my-emr-node:/path/to/local/file
(или используйте ftp, или wget или curl или что-нибудь еще, что вы хотите)
затем войдите в свой экземпляр EMR с ssh и загрузите его в hadoop:
my-desktop-box$ ssh my-emr-node
my-emr-node$ hadoop fs -put /path/to/local/file /path/in/hdfs/file