python 实现 map的分词原理
Map 的作用,即数据的映射,用于把一组键值对映射成另一组新的键值对。白话就是对数据按照一定的格式进行归整。举个例子,有一遍文章,需要对文章中出现过的相同的单词进行归类,期望结果如下:将map的输出作为reduce的输入的过程就是shuffle了,这个是mapreduce优化的重点地方。
12{"1", "are" : 1}{"1", "are" : 1}
123456#encodeing=utf-8import sysfor line in sys.stdin: ss = line.strip().split(' ') for word in ss: print '\t'.join([word.strip(), '1'])
测试数据: THE_MAN_OF_PROPERTY.txt,这里存一篇网上随机找的一篇英文长篇文章。
执行命令,并打印结果: ...
hadoop 1.0 和 NameNode 的一些回顾
NameNode可以理解为主从模式:
NameNode 是主节点 [Master]SecondaryNameNode[Master]
DataNode 是从节点 [Worker]
Hdfs 1.0 回顾1.NameNode 两种元数据映射:1.文件名—->block数据映射2.block 数据块 —> datanode 节点地址的映射
细节: 1.是持久化到NN的磁盘上的(fsimage<—edits log<—NN的内存变化来的) 2.是通过心跳来组织起来的(DN—>NN)
注意:如果设置的副本数量小于DataNode的节点个数,其实是不会超过DataNode 的个数的。比如副本个数设3,DataNode只有两个,副本只会有两个。
2.就目前我们的环境(1个master,2个slaves):虽然默认3个副本,期实是两个。3.NN倾向存储大数据:太小的话,block多,内存放不下,太大的话,MR作务执行慢。4.如果没有SNN,fsimage多久加载一次,只有重启时加载,如果有了SNN呢?SNN存在的意义?备份,数据恢复editlog 什么时候会合并 ...
大数据常见业务
常见业务1.搜索引擎三段式结构:1.检索系统2.索引系统3.spider爬虫
1.爬虫:由搜索引擎主动发起,去别人家的网站去爬数据关键是建索引
快速判重:布隆过滤器。给定数据排序:1.常见排序算法2.BitMap 算法, 数据量小的时间复杂度、空间复杂度比较大如(10、122、10万)。但是适应于密集的情况,有明显优势。
2.推荐系统NetFlix 推荐系统公司,很多公司的标杆,其他公司的系统多少都会抄这家公司。
推荐系统通常有三个部份:
offline 部份,离线
nearline 部分,近线
online部分,在线
划分为以上三部分的理由:
|昨天|今天|
离线:当天肯定无法将当天所有用户的行为数据拿到,所以将昨天的数据存储后进行计算。比如,用户9点看了鞋子的广告,但量不能确定10后用户还看了什么。离线挖掘出的数据,应快带提供出去,比如使用NOSQL做为中间介质传递出去。redis、mongo、hbase 等前端从nosql中去取数据。大至是这个流程。
在线:处理在线的时时的数据,对数据进行时时产生。如地图。为什么不用时实代替离线??如果时实时系统做的很完备,可以不要离线 ...