MapReduce和Hadoop的理解
2个回答
展开全部
我的普通的电脑是主板上接一块或几块硬盘,分区后格式化成FAT32或是NTFS或是EXT3,这样操作系统就可以直接访问。
而这层逻辑就是文件系统,它负责处理管理分区中的数据,文件是如何放置,目录结构怎么处理,怎么由一个文件名找到它实际存放的数据的磁道。
然后,在Hadoop层面,由于它设计为以多台廉价的机器处理大数据,所以一台机器无法放置如此多的数据,把这些数据存放至多台机器的硬盘上。
为了存储这些文件,Hadoop在操作系统的文件系统层面上又虚拟了一层文件系统,叫HDFS。它的用途基本上与我们平时用的文件系统类型,只不过对多机环境做了特殊设置,比如将数据进行分块,默认存储多份等。但这些都是在文件系统层面做到,在Hadoop用户层面,人们看到的就是一个统一的文件系统,就像你看到C盘,直接用就好,不用关心数据是如何存在磁盘中的。
然后MapReduce是在Hadoop的基础上操作,或者说是以前你统计一个文件中的单词数,直接计算就好了。但是,在Hadoop的环境下,你的文件可能被分成块保存在了多台机器上,只在一台机器上计算无法取得正确的结果。
所以,MapReduce是在获得大数据计算能力前提上的妥协,它把你以前逻辑上一步就能完成的事拆成两步。比如wordcount的Map函数就是把可以多台机器并行操作的拆分单词并标记个数为1的操作拆出来,这样多台机器可以同时进行计算。完成后再进行Reduce步骤,把每个单词的总的个数计算出来。
瞎写了几句,不知道能不能看明白。
而这层逻辑就是文件系统,它负责处理管理分区中的数据,文件是如何放置,目录结构怎么处理,怎么由一个文件名找到它实际存放的数据的磁道。
然后,在Hadoop层面,由于它设计为以多台廉价的机器处理大数据,所以一台机器无法放置如此多的数据,把这些数据存放至多台机器的硬盘上。
为了存储这些文件,Hadoop在操作系统的文件系统层面上又虚拟了一层文件系统,叫HDFS。它的用途基本上与我们平时用的文件系统类型,只不过对多机环境做了特殊设置,比如将数据进行分块,默认存储多份等。但这些都是在文件系统层面做到,在Hadoop用户层面,人们看到的就是一个统一的文件系统,就像你看到C盘,直接用就好,不用关心数据是如何存在磁盘中的。
然后MapReduce是在Hadoop的基础上操作,或者说是以前你统计一个文件中的单词数,直接计算就好了。但是,在Hadoop的环境下,你的文件可能被分成块保存在了多台机器上,只在一台机器上计算无法取得正确的结果。
所以,MapReduce是在获得大数据计算能力前提上的妥协,它把你以前逻辑上一步就能完成的事拆成两步。比如wordcount的Map函数就是把可以多台机器并行操作的拆分单词并标记个数为1的操作拆出来,这样多台机器可以同时进行计算。完成后再进行Reduce步骤,把每个单词的总的个数计算出来。
瞎写了几句,不知道能不能看明白。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询