一、Hadoop是什么?
首先了解一下大数据是什么?
大数据五大特性
:
1.高速(Velocity):数据产生的速度非常快。
2.大量(Volume):数据量级会达到TB级以上,并且对应不同级别的数据,处理方式会不一样。
3.多样化(Variety):数据类型很多,半结构化数据可以转换成结构化数据,结构化数据可以简单理解为一个二维表格,对于大数据分析来说,一般处理的数据是以结构化数据为主,对其进行关联分析。
4.价值(Value):从数据中挖掘业务价值。
5.真实(Veracity):所有的数据在历史发展中真实存在过。
二、Hadoop组件
Hadoop是一个适合海量数据的分布式存储和分布式计算的平台。它的处理思想是分而治之。
Hadoop有
三个组件
:
HDFS
:是一个
分布式存储框架
,适合海量数据存储,至于底层是怎么存储的,对于用户来说是无感的。
MapReduce
:是一个
分布式计算框架
,适合海量数据计算。
Yarn
:是一个
资源调度平台
,负责给计算框架分配计算资源。
<1>分布式存储
分布式存储
:当单台节点存储数据,存储不了时,可以
通过多个节点进行数据存储
。
当数据被拆分到多个节点上时:
1.需要对数据的信息(某个数据存放的位置)进行管理。
2.当存数据时,自动判断当前数据应该存放在那个节点上。
3.当读取数据时,也需要自动判断读取的数据所存储在哪些节点上。
4.存储风险: 需要对数据进行做备份。
命名空间
为了组织众多的文件,把文件放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为
命名空间
(namespace)。命名空间
管理着整个服务器集群中的所有文件
。 集群中
不同的节点承担不同的职责
。
主从结构
负责命名空间职责的节点称为主节点(master node)
负责存储真实数据职责的节点称为从节点(slave node)
。
主节点
负责
管理文件系统的文件结构
,
从节点
负责
存储真实的数据
,称为
主从式结构(master-slaves)。
用户操作时,应该
先和主节点打交道
,查询数据在哪些从节点上存储,然后再到从节点读取。
在主节点上,为了加快用户访问的速度,会把
整个命名空间信息都放在内存中
,当存储的文件越多时,那么主节点就需要越多的内存空间。
在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以
抽象出一个独立的存储文件单位
,
称为块(block)
。
数据存放在集群中,可能因为网络原因或者节点硬件原因造成访问失败,
最好采用副本(replication)机制
,把数据
同时备份到多台节点中
,这样数据就安全了,数据丢失或者访问失败的概率就小了。
<2>分布式计算
分布式计算
:当单个节点资源时,需要将数据分发到多个节点,进行逻辑计算,计算主要需要两类资源(
1.CPU 2.内存
)
1.数据如何分发
2.计算的结果如何进行统一
3.计算资源如何分配
Yarn架构
资源的调度和管理平台
主节点,可以有2个:
ResourceManager
从节点,有很多个:
NodeManager
ResourceManager负责
集群资源的分配与调度
。
NodeManager负责
单节点资源的管理(CPU+内存)
。
MapReduce、Storm、Spark等应用,必须实现ApplicationMaster接口,才能被RM管理
mapreduce架构
依赖磁盘io的批处理计算模型
主节点,只有一个:
MRAppMaster
从节点,就是具体的
task
MRAppMaster负责
接收客户端提交的计算任务
。把计算任务分给
NodeManager
(Yarn的从节点)的
Container
中执行,即
任务调度
。
Task负责:
处理数据
Container是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)
Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中的资源调度器异步分配给ApplicationMaster
Container的运行是由ApplicationMaster向资源所在的NodeManager发起的
监控Container中Task的执行情况
三、Hadoop命令
详细启动脚本介绍
第一种:全部启动集群所有进程
启动:start-all.sh
停止:stop-all.sh
第二种:单独启动hdfs【web端口50070】和yarn【web端口8088】的相关进程
启动:start-dfs.sh sbin/start-yarn.sh
停止:stop-dfs.sh sbin/stop-yarn.sh
每次重新启动集群的时候使用
第三种:单独启动某一个进程
启动hdfs:hadoop-daemon.sh start (namenode | datanode)
停止hdfs:hadoop-daemon.sh stop (namenode | datanode)
启动yarn:yarn-daemon.sh start (resourcemanager | nodemanager)
停止yarn:yarn-daemon.sh stop(resourcemanager | nodemanager)
用于当某个进程启动失败或者异常down掉的时候,重启进程
hdfs shell常用操作
1.上传
hdfs dfs -put 本地路径 HDFS路径
hdfs dfs -copyFromLocal 本地路径 HDFS路径
2.下载
hdfs dfs -get HDFS路径 本地路径
hdfs dfs -copyToLocal HDFS路径 本地路径
3.创建目录
hdfs dfs -mkdir HDFS路径
4.查看对应路径中的内容
hdfs dfs -ls /
5.查看文件内容
hdfs dfs -cat HDFS路径
hdfs dfs -tail HDFS路径
hdfs dfs -tail -f HDFS路径 监听HDFS中的文件内容
hdfs dfs -text HDFS路径 可以查看被Hadoop压缩的压缩文件
6.追加信息到文件中
hdfs dfs -appendToFile words.txt /input/words.txt
7.删除文件
hdfs dfs -rm -r -f /output
hdfs dfs -du -h / 查看指定目录下对应空间占用情况
8.复制
hdfs dfs -cp 源路径 目标路径
9.重命名
hdfs dfs -mv 源路径 目标路径
10.修改文件权限
hdfs dfs -chmod 735 目标路径
hdfs dfs -chmod -R 735 目标路径 迭代目录中所有内容给定权限
11.查看存储空间
hdfs dfs -df 查看整个HDFS中空间使用情况
hdfs dfs -du -h / 查看指定目录下对应空间占用情况
12.查看状态
hdfs dfsadmin -report