近年来大数据 (big data)很夯, Google 使用 hadoop 分析全世界 user 在搜寻引擎输入的关键词,分析客户的未来动向,做为产品开发依据。hadoop 执行 MapReduce 分布式运算时(例如wordcount),中间运算过程 (例如合并) 必须由硬盘读出 data运算后再将结果写回硬盘,如果合并的次数过多,就会影响系统的效率;Spark 就是解决这项缺点的新产品, Spark 将这些中间运算结果存于memory,当然 memory 的 I/O 效率是大于disk;只是会增加系统memory 的成本;另外执行 MapReduce 需要人为写程序 (例如java), Spark 可透过Spark-shell 交谈接口,数行指令就能达成原先使用MapReduce Api 的效果;因为以上优点 mahout 已使用 Spark 替代 MapReduce; 为了可透过 spark-shell 读取存于 HDFS 的数据,以下网址范例先在 3 片树莓派建立 Hadoop丛集 (1 master, 2 slaves); 然后在 master node安装 Spark,使得同一问题可用 MapReduce 及 Spark 两种不同方式处理,但可得到相同结果 (差别在处里时间多寡)。 使用树莓派学习 hadoop 的系统开发,就不怕系统 crash;因为重烧 image sdcard 比在 VMware player建立虚拟机快多了;待孰悉 hadoop 及 spark 的使用后,再将系统移植至要付钱的 Google, IBM,Amazon,Microsoft 的云端平台虚拟机使用。 https://drive.google.com/file/d/0B7_CUSsY2cbnZUw3MndfSkJiZDQ/view?usp=sharing https://drive.google.com/folderview?id=0B7_CUSsY2cbnbm90UTNDWmcwaGs&usp=sharing
|