首页 » 大数据 » Hadoop » Hadoop学习笔记—初探

Hadoop学习笔记—初探

 

学习过Storm,在这将MapReduce和Storm先进行比较。 更加有助学习。

MapReduce Storm
JobTracker Nimbus
Role TaskTracker Supervisor
Child Worker
Application Job Topology
Interface Mapper/Reducer Spout/Bolt

关于MapReduce

思想其实就是源于Lisp中的Map/Reduce

以下举例Clojure中的Reduce函数

  • Clojure中的Map

Map 是把一组数据一对一的映射为另外的一组数据,其映射的规则由一个函数来指定,比如对 [1, 2, 3, 4] 进行乘 2 的映射就变成了 [2, 4, 6, 8]。

(map inc [1 2 3 4 5])
;;=> (2 3 4 5 6)

user=> (map list  [1 2 3] '(a b c) '(4 5))
((1 a 4) (2 b 5))
;相当于
user=> (list (list 1 'a 4) (list 2 'b 5))
((1 a 4) (2 b 5))
  • Clojure中的Reduce

Reduce 是对一组数据进行归约,这个归约的规则由一个函数指定,比如对 [1, 2, 3, 4] 进行求和的归约得到结果是 10 ,而对它进行求积的归约结果是 24。

(reduce + [1 2 3 4 5])  ;;=> 15

; = (+ (+ (+ 1 2) 3) 4) ;;=> 15

(reduce conj #{} [:a :b :c]) ;; =>(conj (conj (conj #{} :a):b):c)
; #{:c :b :a}
  • Map/Reduce

    (reduce + 2 (map inc [1 2 3 4 5])) ;;=> 22

Hadoop中,MapReduce过程分三个步骤:

  • Map(主要是分解并行的任务)
  • Combine(主要是为了提高Reduce的效率)
  • Reduce(把处理后的结果再汇总起来) 。

Hadoop分别从三个角度将主机划分为两种角色:

  • 第一,最基本的划分为Master和Slave,即主人与奴隶;
  • 第二,从HDFS的角度,将主机划分为NameNode和DataNode(NameNode就是目录管理者);
  • 第三,从MapReduce的角度,将主机划分为JobTracker和TaskTracker。


原文链接:Hadoop学习笔记—初探,转载请注明来源!

0