当您为Hadoop提供除HDFS以外的其他存储(如MySql服务器等)时,Map / Reduce部分的数据位置功能会发生什么变化?换句话说,我的理解是Hadoop Map / Reduce使用数据局部性来尝试在数据所在的同一节点上启动映射任务,但是当数据存储在sql服务器中时,任务节点上没有本地数据作为所有数据都在sql server节点中。那么在这种情况下我们是否会丢失数据局部性,或者数据局部性的定义是否正在发生变化?如果它改变了,那么新的定义是什么?
答案 0 :(得分:4)
如果数据不在群集中,则没有数据位置。必须从远程源复制所有数据。这与无法在包含HDFS中的数据的节点上运行任务相同。有几种输入格式使用远程源,包括S3,HBase和DB。如果您可以将数据放入HDFS中,那就太棒了。我经常使用Mongo作为远程源来处理经常更新的少量数据,我对结果感到满意。