Hadoop相关学习笔记
大数据架构体系结构及开源组件
Hadoop
HDFS:大数据存储
Mapreduce:大数据计算 - 批量计算
Spark:计算引擎,速度快于Hadoop
Hbase:存储对形式和格式;查询非常快,与Hive比较
Zookeeper:管理「小动物」
Nutch:分布式数据采集
Storm:内存计算,流式计算
R
Hive: 提供交互式查询,基于MapReduce
Impala: 同交互,速度快于Hive,
麒麟
大数据架构体系
Linux基本操作命令
cd 绝对路径/相对路径
cd ./ 当前目录下
cd ../ 进入当前目录的上一级
ll (List the list)
-l 列出数据串
-a 列出全部文件(包括隐藏文件)
-d (directory)
-h 显示文件大小,不同单位 kb、mb
-R 递归列出
cp&mv(copy & move相当于剪切和复制操作)
cp -a file1 file2 连同file1的所有特性把文件复制为file2
cp file1 file2 dir1 将文件file1、file2复制到dir目录下
mv -f 强制覆盖(force)
mv -i 若目标文件存在,就询问是否执行覆盖操作
rm (remove)参数如下
-f 强制删除
-r 递归删除,最常用于目录删除
-i 互动模式,在删除是会询问用户是否删除
示例:rm -rf file
ps & netstat & kill
netstat 用于查看网络端口状态
ps 用于把某个时间点的进程运行情况显示出来 ps即process
kill 用于向某个工作或者某个进程(PID)传递结束信号
tar 打包压缩,参数如下
-c 新建打包文件
-t 查看打包文件的内容包含那些文件名
-x 解压缩
-j 通过bzip2进行压缩/解压缩
-z 通过gzip进行压缩/解压缩
示例:tar -zxf hadoop-2.7.2.tar.gz hadoop-2.7.2
备注: pwd 显示当前目录
clear 清屏
ls -l 等价于 ll
Hadoop基础
Introduction
Hadoop运行模式
M/S架构
-
Master:主结点,运行NameNode、ResourceManager服务进程
-
Slave:从节点,运行DataNode,NodeManager服务进程
服务进程举例
HDFS架构
运行模式
-
单机模式
-
伪分布模式
-
分布式模式
安装
HDFS
默认副本:3个
块Block :128M一个,当一个Block挂掉了,会自动补充到3个
SecondaryNameNode(SNN): 冷备份
FS Shell命令介绍
appendToFile
cat
cp
get
ls
mv
mkdir
rm
YARN
YARN的产生背景
MRv1
-
编程模型 map阶段(输入数据解析,再输出到本地(I/O)) 和 reduce阶段
-
数据处理引擎: MapTask 和 ReduceTask
-
运行时环境: JobTracker(资源管理和作业控制)和TaskTracker接受JT命令并具体执行(
-
局限性
1)扩展性差:(JobTracker兼具资源管理及作业调度,容易负载过大)
2)可靠性差:(Master/Slave架构中,Master的单点故障)主从架构,主结点故障
3)资源利用率低:(slot资源分配模型:粗粒度的分配单位,实际用不到一个单位)
4)无法支持多种计算平台:离线计算
MRv2
-
编程模型、数据处理引擎,与MRv1是一样到
-
运行时环境:YARN(资源管理)和ApplicationMaster(作业控制)(MRv2是运行与YARN之上计算的MapReduce计算框架)
YARN:支持多种计算框架的资源管理器
YARN基本架构
- YARN的基本组成结构(主从架构)
1) ResourceManager: 全局的资源管理器,负责整个集群的资源管理、分配和调度
2)Scheduler(调度器):纯调度器、默认下是Fair Scheduler
3)NodeManager:对每一个Slave上的资源和任务做管理。包括
i. 定时的向 RM 汇报 HeartBeat(资源的使用情况和 Container 的运行状态)
ii.接受来自 AM 的启动/停止的请求
4)Container:动态的资源分配单位(相对于 MRv1 中 Slot)
5)ApplicationMaster(应用程序管理器):每个APP都会包含一个AM,
AM的功能包括:
- 向RM申请资源(用Container)
- 将任务做进一步的分配
- 与NM通信启动/体制任务
- 跟踪每一个Task的运行状态(包括Failed后的操作)
- YARN的通信协议
- Client 与 RM 通信的协议, ApplicationClientProtocol,作业的提交、应用程序的状态
- AM 与 RM 通信协议, ApplicationMasterProtocol, 向 RM 注册 AM,申请资源
- AM 与 NM 通信协议, ContainerManagementProtocol,启动/停止 Container
- RM 与 NM 通信协议, ResourceTracker,汇报 Slave 节点的资源信息,包括 Container 的状态
YARN的工作流程:为不同的计算框架提供统一的资源管理
短作业:会结束的,例如数据处理
长作业:不会结束的,例如系统服务
资源:内存、磁盘、CPU、网络
具体步骤
-
提交任务
-
RM 与 NM 通信, 申请Container运行AM
-
AM启动成功后,向RM注册自己
-
AM申请应用资源
-
与NM通信,申请各个作业需对应的Container
-
运行作业
-
作业结果返回
-
注销自己