Hadoop基础知识 Hadoop组件 分布式存储 分布式计算 Hadoop常用命令

  • Post author:
  • Post category:其他




一、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




版权声明:本文为lrn521zsd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。