haodoop概念总结
大数据部门组织结构
Hadoop的优势(4高)
- 高可靠性:Hadoop底层维护多个数据副本
- 高扩展性:在集群间分配任务数据,可方便的扩展
- 高效性:在MapReduce的思想下,Hadoop时并行工作的,从而加快任务处理速度
- 高容错性:能够自动将失败的任务重新分配
Hadoop组成(重点)
-
hadoop1.x
mapreduce(计算+资料调度) HDFS(数据存储) Common(辅助工具)
-
hadoop2.x
mapreduce(计算) HDFS(数据存储) Common(辅助工具) yarn(资料调度)
HDFS架构
-
NameNode(主管)
存储文件的元数据 (文件名,文件目录结构,文件属性(生成时间,副本数,文件权限))以及每个文件的块列表和块所在的DataNode
- 管理HDFS的名称空间
- 配置副本策略
- 管理数据块(Block)映射信息
- 处理客户端读写请求
-
Secondary NameNode(主管秘书)
每隔一段时间对NameNode元数据备份
!!->并非NameNode的热备 无法在NameNode无法工作时代替NameNode工作
- 辅助NameNode,分担其工作量(如:定期合并Fsimage和Edits,并推送给NameNode)
- 在紧急情况下,可辅助恢复NameNode
-
DataNode(员工)
在本地文件系统存储文件块数据,以及块数据的校验和
- 存储实际的数据块
- 执行数据块的读/写操作
-
Client (客户端)
- 文件切分
- 与NameNode交互,获取文件的位置信息
- 与DataNode交互,读取或写入数据
- 执行一些命令来管理HDFS(如:NameNode的格式化)
- 执行一些命令来访问HDFS(如:HDFS的增删改查)
YARN架构
-
ResourceManager(RM)
- 处理客户端请求
- 监控NodeManager
- 启动或监控ApplicationMaster
- 资源的分配与调度
-
NodeManager(NM)
- 管理单个节点上的资源
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
-
ApplicationMaster
- 负责数据的切分
- 为应用程序申请资源并分配给内部的任务
- 任务的监控与容错
-
Container
Container是YARN中的资源抽象,封装了某个节点上的多维度资源,(内存,cpu,磁盘,网络)
大数据技术生态体系
Hadoop环境搭建的常用命令
-
修改主机名称
vim /etc/hostname
-
配置linux克隆机主机名称映射hosts
vim /etc/hosts
-
解压JDK到/opt/module目录下
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
-
配置JDK环境变量
-
新建/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
-
环境变量PATH生效
source /etc/profile
-
生成公钥和私钥
ssh-keygen -t rsa
-
Hadoop执行MapReduce程序
hadoop jar wc.jar com.atguigu.wordcount.WordcountDriver /user/atguigu/input /user/atguigu/output