Настройка внешнего источника данных для Elastic MapReduce
Мы хотим использовать Amazon Elastic MapReduce поверх нашей текущей БД (мы используем Cassandra в EC2). Глядя на часто задаваемые вопросы по Amazon EMR, это должно быть возможно: Часто задаваемые вопросы по Amazon EMR: В: Могу ли я загрузить свои данные из Интернета или из другого места, кроме Amazon S3?
Однако при создании нового потока заданий мы можем настроить только сегмент S3 в качестве источника входных данных.
Любые идеи / образцы о том, как это сделать?
Спасибо!
PS: я видел этот вопрос, как использовать внешние данные с Elastic MapReduce, но ответы на самом деле не объясняют, как это сделать / настроить, просто, что это возможно.
2 ответа
Как вы обрабатываете данные? EMR это просто управляемый hadoop. Вам все еще нужно написать какой-то процесс.
Если вы пишете задание Hadoop Mapreduce, то вы пишете Java, и вы можете использовать Cassandra apis для доступа к нему.
Если вы хотите использовать что-то вроде hive, вам нужно написать обработчик хранилища Hive для использования данных, поддерживаемых Cassandra.
Попробуйте использовать 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