Mapreduce Wordcount白名单 Python实现

1.Mapper部分的map.py代码:

其中读入文件The_Man_of_Property.txt需要上传到HDFS文件系统上:hadoop fs -put The_Man_of_Property.txt /

# coding=utf-8
import sysdef read_local_file_func(f):word_set = set();file_in = open(f,'r')for line in file_in:word = line.strip()word_set.add(word)return word_setdef mapper_func(white_list_fd):#white_list_fd 由run.sh配置文件传入word_set = read_local_file_func(white_list_fd)file_in = open('The_Man_of_Property.txt','r')#file_out = open('mapper_result','w')for line in sys.stdin:ss = line.strip().split(' ')for s in ss:word = s.strip()if word !="" and (word in word_set):#file_out.write(s+"\t"+"1\n")print "%s\t%s" % (s,1)#file_out.close()if __name__ == "__main__":module = sys.modules[__name__]func = getattr(module, sys.argv[1])args = Noneif len(sys.argv) > 1:args = sys.argv[2:]func(*args)

2.Reducer部分的red.py代码:

# coding = utf-8
import sysdef reducer_func():current_word = Nonecount_pool = []sum = 0#file_in = open('mapper_result','r')for line in sys.stdin:word,val = line.strip().split('\t')count_pool.append(int(val))if current_word == None :current_word = wordif current_word != word:for count in count_pool:sum += countprint "%s\t%s" % (current_word,sum)current_word = wordcount_pool = []sum = 0for count in count_pool:sum += countprint "%s\t%s" % (current_word, str(sum))if __name__ == "__main__":module = sys.modules[__name__]func = getattr(module, sys.argv[1])args = Noneif len(sys.argv)> 1:args = sys.argv[2:]func(*args)

3.建立一个shell脚本文件:streaming接口运行的脚本run.sh

HADOOP_CMD="/usr/local/src/hadoop-1.2.1/bin/hadoop" #hadoop的安装路径
STREAM_JAR_PATH="/usr/local/src/hadoop-1.2.1/contrib/streaming/hadoop-streaming-1.2.1.jar"INPUT_FILE_PATH_1="/The_Man_of_Property.txt" #wordcount文件
OUTPUT_PATH="/output_file_broadcast" #输出文件$HADOOP_CMD fs -rmr -skipTrash  #删除HDFS已存在的输出文件
$OUTPUT_PATH# Step 1.
$HADOOP_CMD jar $STREAM_JAR_PATH \-input $INPUT_FILE_PATH_2 \-output $OUTPUT_PATH \-mapper "python map.py mapper_func white_list" \ #指定map的方法和参数-reducer "python red.py reduer_func" \ #指定处理reduce的方法-jobconf "mapred.reduce.tasks=3" \ #配置3个reduce-file ./map.py \-file ./red.py \-file ./white_list

4.本地测试

cat The_Man_of_Property.txt | python map.py mapper_func white_list | sort -k1 | python red.py reduer_func

5.hadoop集群测试
运行bash.run.sh

hadoop fs -ls /output_file_broadcast
-rw-r--r--   3 root supergroup          0 2019-10-30 03:26 /output_file_broadcast/_SUCCESS
drwxr-xr-x   - root supergroup          0 2019-10-30 03:24 /output_file_broadcast/_logs
-rw-r--r--   3 root supergroup         22 2019-10-30 03:26 /output_file_broadcast/part-00000
-rw-r--r--   3 root supergroup          9 2019-10-30 03:25 /output_file_broadcast/part-00001
-rw-r--r--   3 root supergroup          0 2019-10-30 03:26 /output_file_broadcast/part-00002

Mapreduce Wordcount白名单 Python实现相关推荐

  1. python白名单验证-python脚本简单检测ip合法性并添加到白名单文件

    一.功能说明 有时候项目需要通过ip地址来判定是否允许访问,通常通过一个白名单地址文件来存放这些允许放行的ip,但每次打开文件编辑比较麻烦,容易出错,也不知道是否添加过,故用python写了一个自动添 ...

  2. python白名单验证是什么意思_第10.5节 使用__all__定义Python模块导入白名单

    一.引言 <第10.4节 Python模块的弱封装机制>介绍了Python模块的的弱封装机制,除了使用弱封装机制来从一定程度上防止导入特定成员外,Python模块中还提供可另外一种类似白名 ...

  3. python白名单验证是什么意思_luminati python+selenium使用方式(白名单和账号密码验证方式)...

    一,在Windows下使用 1.官网登录后下载对应的exe代理软件 2.下载完成后打开,打开完成后登录127.0.0.1:22999,然后输入用户名和密码进行登录.登录成功后进入到如下界面 3.将本机 ...

  4. python白名单验证-Python中XSS白名单过滤的实现

    在Web开发中很多地方需要用户输入富文本但又要确保输入的这些内容绝对安全不会引发XSS漏洞,那么最常用的技术就是白名单技术. 白名单的通常做法都是构建一个允许使用的标签及对应属性的列表,然后对用户输入 ...

  5. python白名单验证-JWT黑名单和白名单

    单点登录系统 单点登录系统保存了用户的登录名和密码,上网用户在单点登录系统中认证成功后,就可以直接登录各个业务系统. 1. 用户使用单点登录系统的登录界面,输入用户名和密码登录成功后, 单点登录系统为 ...

  6. python白名单验证是什么意思_JWT黑名单和白名单

    单点登录系统 单点登录系统保存了用户的登录名和密码,上网用户在单点登录系统中认证成功后,就可以直接登录各个业务系统. 1. 用户使用单点登录系统的登录界面,输入用户名和密码登录成功后, 单点登录系统为 ...

  7. 进行模拟点击的时候,利用python完成黑名单和白名单(判断字符串是否包含)

    在做项目的时候,遇到一个需求,就是在进行模拟点击的时候,要求加上一个黑名单和白名单 意思就是: 白名单:模拟点击的时候,不能点击白名单里面有的元素,例如:包含什么地址,或者什么数字和特殊的字符串的时候 ...

  8. Python SOCKS5 二级代理服务器 实现白名单与网络控制

    过程 如果不太明白SCOKS5具体通讯过程,请先阅读一篇很详细的文章SOCKS5代理原理探索 建立SOCKS5连接时获取访问的目标域名或者IP,如果在白名单中或者是你想要拦截的广告等可进行直连或者屏蔽 ...

  9. Nginx PHP 使用 limit_req,limit_conn 限制并发,外加白名单

    2019独角兽企业重金招聘Python工程师标准>>> 下面方法可以防止黑客知道你的源服务器真实IP进行并发攻击,通常只需要保护动态文件请求,如PHP. 添加文件 nginx/con ...

最新文章

  1. 两个坐标系进行了缩放平移后的变换关系
  2. 如何成为自己所在领域内前1%的顶尖人才? 凤凰科技 09-29 07:42 原标题:如何成为自己所在领域内前1%的顶尖人才? 有时你会觉得,可能你永远也实现自己的梦想。你清楚地知道自己想做什么,但有
  3. STM32开发 -- 外部中断详解
  4. C51 汇编 双层循环延时代码
  5. 华大单片机HC32L136J8TA读取DS18B20温度(源码+时钟配置)
  6. 64测试cpu稳定性_SuperPI-圆周率计算与CPU性能与稳定性测试
  7. 使用window自带的截图工具
  8. CentOS 7安装配置vsftpd做FTP服务
  9. java获取手机安装app_Android之——获取手机安装的应用程序
  10. 为什么要进行软件著作权登记?
  11. jqgrid点击搜索无法重置参数问题
  12. paip.提升用户体验----表格显示及控件布局错乱的问题
  13. MaxProxy可以成为永久关闭的911S5代理的新选择吗?
  14. HTNL5列表,表格,音频,视频,iframe内联框架
  15. 什么是NaN,NaN==NaN?
  16. 谈产品的差异化思路:进可攻退可守
  17. 运维工程师的工作内容有哪些?能详细列举一下吗?
  18. 5个增加数据科学学习的技巧
  19. PCI DSS合规性审核认证服务
  20. 告诉你什么是挖洞最清奇的脑回路

热门文章

  1. 无限纷争怎么看以前的服务器,无限纷争怎么切换角色 无限纷争切换角色方法...
  2. [Keil 烧录器下载报错] “Flash Timeout. Reset the Target and try it again”
  3. html class生效顺序,HTML5 CSS3小猪日历(动物挂历)
  4. 《魔兽世界》衰败之因:掉进“大数据陷阱”
  5. python爬取网站新闻_Python爬取网站新闻
  6. GitHub 3.6k Satr自监督学习(Self-Supervised Learning)资源你值得拥有!
  7. 管理科学基础知识__后悔值计算
  8. 计算机exo乐谱,【图片】【送谱】EXO所有歌曲的谱子【吉他谱吧】_百度贴吧
  9. uniapp 微信小程序实现运动轨迹、行车轨迹、历史轨迹、轨迹回放、不同速度有不同的路线颜色
  10. 关于长高问题 我的看法