由一般网络文章得知Hadoop 是一个能够储存并管理大量数据的云端平台,透过丛集系统(cluster system),由单一服务器扩充到数以千计的机器,整合应用起来像是一台超级计算机。而数据存放在这个丛集中的方式则是采用 HDFS 分布式档案系统(Hadoop Distributed File System), 并采用分布式计算的技术处理各机器上的数据。根据我的教学经验,大多数人都不是很了解以上文字内容。 我用 wordcount 这支分布式运算程序以白话文的方式来说明以上叙述: 在每台机器的 user 可将任意长度字符串以档案方式上传至 HDFS 档案系统的目录 (HDFS 档案系统是由分散在各地的硬盘组成,但是对 user 而言好像只有一颗硬盘,目录的内容也是存在不同的硬盘, 对 user 而言好像是同一颗硬盘的目录), wordcount 这支程序会自动在每台机器执行 Map 程序, (读取档案系统的字符串, 会读取离机器最近硬盘的字符串,拆开计算不同[word]出现次数),每台机器将 Map 程序执行结果 (不同 word 出现次数) 送至一台执行 Reduce 程序的机器,它会将各地送来相同名称 [word] 合并并将数量相加输出。 以下网址范例是在树莓派以单机安装 hadoop 执行 wordcount,其优点是环境单纯,不会受到其它软件的干扰,user比较没有挫折感;而单机环境适合第一次使用 hadoop 的 user。 https://drive.google.com/file/d/0B8ToAuLFOH1fYkNfbEVtUXZQeHM/view?usp=sharing
|