0%

MapReduce

1.1 输入输出

pic1

首先都是 k, v 的形式

map 到 reduce 端是通过网络来传输,所以 k, v 都需要序列化和反序列化,Java 基本数据类型不支持序列化,所以需要用 MR 自己封装的类型,比如 LongWritable, Text, IntWritable 等等

reduce 的输入顺序默认是按照 key 的大小顺序(字符串的字典顺序)来进行处理,如果 map 输出的 key 是一个对象,可以 implements WritableComparable 接口,自定义 key 的顺序来交给 reduce

Read more »

Zookeeper

1. 知识点

ZooKeeper 集群中包含 Leader、Follower 以及 Observer 三个角色:

Leader:负责进行投票的发起和决议,更新系统状态,Leader 是由选举产生;
Follower: 用于接受客户端请求并向客户端返回结果,在选主过程中参与投票;
Observer:可以接受客户端连接,接受读写请求,写请求转发给 Leader,但 Observer 不参加投票过程,只同步 Leader 的状态,Observer 的目的是为了扩展系统,提高读取速度。

Read more »

Hive Sql的日常使用笔记

1. distinct 和 group by

distinct 只能返回去重的列

group by 理论上是需要在 select 后面配合聚合函数(sum, avg, max, min, count)来使用的

select 后面没有在聚合函数中的列都需要写在 group by 的后面,eg:

1
select A1, A2, A3, max(B) from test group by A1, A2, A3
Read more »

布隆过滤器 Bloom Filter

之前的一版笔记 点此跳转

1. 什么是布隆过滤器

本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。

相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。

解决目标:在海量数据的场景当中用来快速地判断某个元素在不在一个庞大的集合当中。

Read more »

常见的Python运行时错误

摘自 菜鸟学Python 公众号

1. SyntaxError:invalid syntax

  1. 忘记在 if,for,def,elif,else,class 等声明末尾加冒号 :
  2. 使用= 而不是 ==

    = 是赋值操作符而 == 是等于比较操作

  3. 尝试使用Python关键字作为变量名
  4. 不存在 ++ 或者 – 自增自减操作符
Read more »