我是MapReduce编程的新手,在我的第一个MR代码中,我有这个问题。在我的映射器中,我需要访问已在主类中的映射器之前创建和填充的2D数组。我怎样才能访问它?我应该将其导出到txt并尝试在映射器中读取它吗?如果是这样,应该如何将其插入映射器?我不知道应该如何使它可用?我的代码是用Java编写的。
答案 0 :(得分:2)
您可以采取以下几种方式。
创建2D阵列后,可以将此文件加载到HDFS中,然后在Java M / R API中使用DistributedCache来访问mapper / reducer代码中的这些数据。看看这个:http://developer.yahoo.com/hadoop/tutorial/module5.html
如果您的数据不是太大而且您有一个对象来表示可序列化且非常小的数据,您可以通过作业配置传递它。序列化它并在Configuration中包含base64编码版本。然后你可以在mapper / reducer中访问这些数据:http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/conf/Configuration.html#set(java.lang.String,java.lang.String)