重写我的程序,使其符合映射约简结构



我编写了一个InvertedIndex java程序,其中给定一个单词,它在某个静态字符串数组中搜索该单词,其中每个字符串都是需要搜索的url。它最终返回一个包含该单词在其中找到的所有url的列表。

下面是我的相关代码:

static final String[] URL_SEARCH_LIST = {
        "http://www.cnn.com", "http://www.daniel.com", "http://www.amazon.com"
    };
private static List<String> search (String query) {
        try {
            List<String> urlList = new ArrayList<String>();
            for (String site : URL_SEARCH_LIST) {
                URL url = new URL(site);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        (conn.getInputStream())));
                String htmlContent;
                while ((htmlContent = br.readLine()) != null) {
                    if (htmlContent.contains(query)) {
                        urlList.add(site);
                        break;
                    }
                }
            }
            System.out.println("Search for: " + query + " Is Done!");
            return urlList;
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return null;
        }
    }

现在我想让它在Amazon EMR上运行,这意味着我需要将我的程序转换为Map-Reduce程序,它做同样的事情。

给出这个代码,有人能帮我开始吗?我没有完全理解map和reduce的概念。

Thanks in advance

map -reduce基本上就是分而治之,加上很多基础设施,所以划分(map)你的URL_SEARCH_LIST数组,创建每个本地urlList,并结合(reduce)所有的urlLists为最终输出

相关内容

  • 没有找到相关文章

最新更新