只要提到大数据,就一定会提到Hadoop,那Hadoop到底是个啥?
第一,先从名字搞懂它。这个听上去让人忍不住“哇喔~”的名字其实就是一只玩具大象的名字啦。
2006年Dog Cutting前途迷茫,各个大公司都“嫌弃”他开发的名为Nutch的搜索引擎,Yahoo公司说“虽然你的引擎对我们没什么用处,但你的搜索引擎的底层系统GFS/MapReduce剥离出来好像很厉害的样子耶!”, 于是,Dog Cutting进入了Yahoo。
“emmmm,给这个项目起什么名字呢?”Dog Cutting苦思冥想
“嘻嘻,把儿子大象的名字拿来用用吧” 就这样,大象Hadoop的名字便赋予给了这个项目。(有点可爱 有木有
第二,怎么理解Hadoop宏观的过程呢?可以这样理解:
客户端A有很多数据,需要对其进行加法运行,但是客户端CPU、内存很低。这时,可以把客户端A的数据通过网络传给服务器B,在服务器B上运算。运算结果再传给客户端A。完美解决了问题。
找了一张略合心意的能理解“你”处在什么位置的配图。如下图,可以先忽略Hadoop的工作流程,首先,从这张图中找到“你”的位置,最右边那个面对电脑的小人就是你了。数据从“你的电脑中”上传,最后的结果输送回你的电脑。中间的整个过程都交给Hadoop去做。
第三,清楚Hadoop的组成。Hadoop分为三个组成部分,分别是:
此篇先用简洁的语言介绍一下这三部分。
1️⃣Hadoop Common:是一个公共基础设施,用于支撑其他项目,包括RPC、序列化包等。
2️⃣Hadoop HDFS:Hadoop分布式文件系统。可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取。
HDFS全称是Hadoop Distributed File System,是构建在Linux某个目录上面的虚拟化出来的文件系统,是和Windows、Linux系统并列的文件系统。
对于外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,类似于Windows、Linux的文件系统,HDFS也是用来放文件的地方,目录也是一层一层自建的。目录结构如下图所示。
这里要声明一下的是:文件的上传是从Linux系统操作完成的!文件上传至HDFS端后可以点开查阅上传内容是否正确,点开文件名即可。如下图所示。
(注:讲清楚Hadoop基础后,会上传新建Linux系统和构建Hadoop结构的文档,到时可以自主练习如何从Linux上传文件等其他简单操作~
下图是通过一系列的运算后的一份输出文件。由此大家是否已经感受到HDFS就是个存放文件的地方了呢?
文艺点说:故事的开始和结束,都在HDFS。
3️⃣Hadoop MapReduce:分布式计算框架,主要包含map(映射)和reduce(规约)过程。
等到需要写代码的时候,会意识到这是Hadoop的核心理念。(下篇文章讲述MapReduce的映射和规约过程的原理。敬请期待。
注1:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_permissions_guide.html
Hadoop阿帕奇中文网站。有兴趣的读者可以先行探索。
注2:图片来源自网络,侵权可删。
领取专属 10元无门槛券
私享最新 技术干货