Hadoop的粗浅入门
Hadoop就是存储海量数据和分析海量数据的工具。
1.2、稍专业点的解释
Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。
HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。
MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。
1.3、记住下面的话:
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
把HDFS理解为一个分布式的,有冗余备份的,可以动态扩展的用来存储大规模数据的大硬盘。
把MapReduce理解成为一个计算引擎,按照MapReduce的规则编写Map计算/Reduce计算的程序,可以完成计算任务。
作者:蛙课网
链接:https://www.zhihu.com/question/333417513/answer/742465814
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
HDFS基本操作
hadoop fs –ls /user/
显示hdfs指定路径下的文件和文件夹
hadoop fs –putmy_file /data/
将本地文件上传到hdfs
hadoop fs –get/tmp /data/my_file
将hdfs上的文件下载到本地
hadoop fs –cat /tmp /data/my_file查看dfs中的文本文件内容
hadoop fs –text /tmp /data/my_sequence_file
查看dfs中的sequence文件内容
hadoop fs –rm /tmp/data/my_file
将hdfs上的文件删除
MapReduce原理是分治思想,把一件事情先分解处理,然后再把处理后的结果合并。Map阶段就是分解处理,reduce阶段合并:
分治思想
-
分解、求解
-
合并
MapReduce映射
-
分:map
-
合:reduce
举个例子,有一堆的商品,共M种,需要数一下每种商品的个数。
传统的做法是,找一个人,数所有的商品,得出结果,如果觉得不够快,那就换一个数的更快的人(分布式计算出现以前的思路)。随着商品数量的增加,单个人数商品的做法,已不太可行。
基于MR计算模型,可以采用的方案是:找N个人,每人分一堆商品,每人都各自统计自己的商品,M种中每种有多少;然后再找M个人,每个人负责一种商品,把前面N个人的统计结果进行汇总。
作者:馨宁
链接:https://zhuanlan.zhihu.com/p/20953323
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。