Common CrawlInputFormat 配送实现
commoncrawl 源码库是用于 Hadoop 的自定义 InputFormat 配送实现。
Common Crawl 提供一个示例程序 BasicArcFileReaderSample.java (位于 org.commoncrawl.samples) 用来配置 InputFormat。
该库提供了支持代码,用于使用S3上存储的Common Crawl Corpus RAW爬行数据(ARC文件)。有关如何访问语料库的更多信息,请参见https://commoncrawl.atlassian.net/wiki/display/CRWL/About+the+Data+Set。
您可以采取两条主要途径来使用ARC File内容:
(1)您可以在EC2上运行Hadoop集群,也可以使用EMR运行Hadoop作业。在这种情况下,您可以使用ARCFileInputFormat将数据驱动到映射器/缩减器。InputFormat有两种版本:一种是为符合弃用的mapred包而编写的,位于org.commoncrawl.hadoop.io.mapred,另一种是为mapreduce包而编写的,其相应地位于org.commoncrawl.hadoop.io.mapreduce。
(2)您可以通过将InputStream输入到org.commoncrawl.util.shared包中的ARCFileReader类来直接解码数据。
两种路由(InputFormat或ARCFileReader直接路由)都生成一个元组,该元组由UTF-8编码的URL(文本)和原始内容(BytesWritable)(包括HTTP标头)组成,这些内容由搜寻器下载。HTTP标头是UTF-8编码的,标头和内容由一组连续的CRLF令牌定界。内容本身是文本mime类型时,将使用源文本编码进行编码。