2012-08-29 59 views
10

我们希望在当前数据库之上使用Amazon Elastic MapReduce(我们在EC2上使用Cassandra)。纵观亚马逊EMR常见问题,它应该是可能的: Amazon EMR FAQ: Q: Can I load my data from the internet or somewhere other than Amazon S3?为Elastic MapReduce配置外部数据源

但是,创建一个新的工作流时,我们只能配置一个S3存储作为输入数据源。

任何想法/样品如何做到这一点?

谢谢!

P.S .:我见过这个问题How to use external data with Elastic MapReduce,但答案并没有真正解释如何做到/配置它,只是这是可能的。

回答

0

尝试使用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 
1

是如何你处理数据? EMR只是管理hadoop。你仍然需要编写某种程序。

如果您正在编写Hadoop Mapreduce作业,那么您正在编写Java,并且可以使用Cassandra apis来访问它。

如果您想使用类似配置单元的东西,您需要编写一个Hive存储处理程序来使用由Cassandra支持的数据。