上文我们介绍了两种分发文件方式,接下来我们介绍第三种:通过解压压缩包形式进行文件分发:其中white_list是以压缩包形式上传的,并且也是需要先上传至hdfs上,这里我们的压缩包如下:
将其上传至hdfs上:
3)-cacheArchive形式分发
map.py需要重新开发,对目录进行遍历并读取压缩包文件的内容:
#!/usr/bin/python
import os
import sys
import gzip
import time
def get_file_handler(f):
file_in = open(f, 'r')
return file_in
def get_cachefile_handlers(f):
f_handlers_list = []
if os.path.isdir(f):
for fd in os.listdir(f):
f_handlers_list.append(get_file_handler(f + '/' + fd))
return f_handlers_list
def read_local_file_func(f):
word_set = set()
for cachefile in get_cachefile_handlers(f):
for l