目录
一 大数据的组织部门结构
要向着数据挖掘组的职位努力,平台组偏向于运维方向,数据仓库组和数据挖掘组是最好的就业方向,报表开发组就不好意思评价了,其实就是普通的javaEE工程师,学的大数据就没有意义了。
二 Hadoop的组成部分
2.1 HDFS
为了解决大数据的存储的问题,它的成员有三个,分别是NameNode,DataNode,SecondaryNameNode(2nn),下面分别介绍这三个成员,因为HDFS是解决大数据的存储问题,所以在入门这方面的时候要牢记存储二字。
- NameNode:存储文件的元数据,比如文件名,文件目录结构,文件属性(生成时间,副本书,文件权限),以及每个文件的块列表,和块所在的DataNode。
- DataNode:在本地硬盘上存储的具体文件,块文件和块文件的校验和。它和NameNode的关系就像目录和具体内容的关系一样。
- SecondaryNode:作为NameNode的辅助工具,相当于NameNode中元数据的备份
2.2 YARN
YARN相当于Hadoop的大管家,主要是分配资源,管理这个集群上的任务,对这些任务进行管理,还是理解大管家这个词比较贴切。它的成员主要有ResourceManager,NodeManager,ApplicationMaster,Container。
- ResourceManager:处理客户端的请求如job.waitForCompletion(true);监控NodeManager,如所有的Node都要向ResourceManager报告自己的状态;启动和监控ApplicationMaster;资源的分配和调度。总的来说ResourceManager是大管家
- NodeManager:管理单个节点的资源;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令;总的来说NodeManager是当前这个服务器的小管家
- ApplicationMaster:由ResourceManager创建;负责数据的切片;为job申请资源并分配资源;
- Container:它是ResourceManager中提到的资源的抽象,它存储的是当前服务器的配置比如说内存,硬盘,cpu等,当ApplicationMaster向ResourceManager申请资源的时候,它负责分配。
2.3 MapReduce
MapReduce是分为两个阶段的,分别是Map阶段和Reduce阶段。
- Map阶段:主要作用是并行处理输入的数据,比方说有1TB的数据,用一台电脑处理和1千个电脑处理就是不一样的,Map阶段就相当于使用一千个电脑处理数据
- Reduce阶段:主要作用是汇总Map阶段的结果,上面说了Map阶段是并行的,所以有很多电脑处理,那么每个电脑处理的结果谁来汇总呢?Reduce阶段就是干的这个活
三 Hadoop生态体系
很多人都不知道Hadoop生态是什么?大数据仅仅依靠Hadoop框架是不够的,这个体系是庞大的,不仅仅包含Hadoop,它还有其它的框架,这个生态构成了现在的大数据生态。
四 Hadoop的目录结构
本不该在这个地方介绍Hadoop目录结构的,但是也没有关系,看一看它长什么模样,不是更直观吗?在Linux上安装好Hadoop之后,可以查看一下它的目录结构。如下:
4.1 bin目录
存放着对Hadoop相关服务(HDFS,YARN)进行操作的脚本。
普及一下Linux的基本知识,上图中行首那一串估计有很多人不懂,这里普及一下:
-rwxr-xr-x. 1 wanglei wanglei 11386 5月 22 2017 yarn.cmd
- - :不要忽略这个横杠,第一位表示文件类型,- 表示普通文件,d 表示文件夹,1 表示软连接, c 表示设备,键盘什么的,b 表示块文件,硬盘。
- rwx:三位结合来看,r表示可读,w表示可写,x表示可执行,这三位表示文件所有者对这个文件拥有读写执行权限
- r-x:同理,这三位表示文件所在组的其他用户对这个文件有读执行权限
- r-x:同理,这三位表示其他组的用户对这个文件有读执行权限
- 1:如果是文件,表示硬链接的个数,如果是文件夹,表示子文件夹的个数
- wanglei wanglei:文件的所有者和所有者在的组
- 11386:文件大小,如果是文件夹的话,大小为4096
- 后面的是文件时间和文件名称
4.2 etc目录
存放Hadoop的配置文件
4.3 lib目录
存放Hadoop的本地库,对数据进行压缩和解压缩的功能库
4.4 sbin目录
存放启动和停止Hadoop服务的命令,与bin的区别在于bin中是具体操作的命令,而sbin目录是启动和停止服务的。
4.5 share目录
存放Hadoop的依赖jar包,官方文档,和官方的案例