mapReduce入门程序
一个简单排序的实现:知乎第一个MapReduce程序,里面最后的两个脚本map.py reduce.py
在单机上用如下命令测试:
cat filename.txt | python map.py | sort | python reduce.py > outfile.txt
单机测试通过后就可以上hadoop环境跑了,需要写一个配置文件,执行结束后会显示"Output directory: hdfs://xxxxx;执行如下命令拉回:
hadoop fs -get hdfs://xxxxx dstDir
如下命令查看:
hdfs -ls hdfs://xxxxx
如下命令删除文件夹:
hdfs -rm -r hdfs://xxxxx
附加一个python2中文无法用python3函数处理的问题(python2下print出来看到一堆'\xe9\x9f\xa9\xe6\xad\xa3',然后这样的字符串无法用python3下写好的函数来处理),逐行打印定位到是split('\t')以后就有问题,涉及到字符编码,似懂非懂,以下代码可以在python2下正常处理:
# -*- coding: utf-8 -*- import sys import os reload(sys) sys.setdefaultencoding('utf8') sys.path.append(os.getcwd()) #拆分时'\t'前面加u sentences = line.split(u'\t') #会输出形如u'\u97e9\u6b63\uff1a\u4e3b\u52a8\u9002\u5e94\u65b0\'的文本行,可以用python3下的字符串处理函数进行处理