大数据Hadoop基础

1简介
   Hadoop的系统环境是:Linux或者Unix。Hadoop有两个核心服务模块:DFS和YARN
1.1 DFS(存储)
  对于存储Hadoop提供了HDFS分布式文件系统(Hadoop Distributed File System,简称HDFS)。分布式文件系统吧文件分布存储到多个计算机节点上,很多的计算机节点构成了计算机集群;分布式文件系统由计算机集群中的多个节点构成,节点分为两类,一类叫“主节点”(MasterNode或NameNode),另一类叫做“从节点”(SlaveNode)或“数据节点”(DataNode)。
  传统的数据保存为一份,因此存在有数据备份问题。而Hadoop提出了数据保存三份,解决了数据备份问题。
  所有的HDFS数据都保存在DataNode节点中,NameNode保存DataNode的基本信息,因此有着“导航”的作用,所以如果没有NameNode,则无法操作DataNode节点。其中,NameNode的数据保存在内存中,DataNode的数据保存在物理内存中。
  HDFS有高容错性、高吞吐量的特点,适合大数据的保存,可以以流的形式访问文件系统中的数据。

1.1.1 NameNode组成和分析

编辑日志(edits):描述的是整个的文件的所有相关记录,例如:xx时候,有一个文件上传,大小,创建时间...。 但是随着运行时间的加长,那么日志的文件的内容也会越来越多,所以在NameNode之中针对于日志是需要进行新日志切换的,保证一个日志的内容不会特别的长。

元数据(MetaData):记录了所有的当前保留下来的文件相关信息,与edits中的文件的内容相比,元数据的内容是滞后的;

fsimage(文件系统快照):是元数据的持久化保存,fsimage要与元数据是同步的,但是之后于edits,fsimage是保存在磁盘上的元空间数据,在节点宕机之后会提供元数据的持久化保存。

用户如果需要进行HDFS的文件操作,那么所有的操作会记录在edits日志文件之中;

而用户如果需要进行文件的相关获取,那么就需要通过元数据的模式来完成,但是考虑到有可能出现宕机的情况,所以内存中的元数据也会在磁盘中进行持久化保存(fsimage)、 而后为了保证元数据的内容是最新的,此时就需要SecondaryNameNode来对元数据进行更新处理。

1.1.2 HDFS分布式文件系统

当用户需要上传一个待分析的文件(理论上任何的文件都可以上传,不分类型,但是基本上在Hadoop上所保存的数据都是需要进行统计分析的数据),这些数据的信息被NameNode所接收,而后这些具体的文件的基本信息都会保存在有一个元数据内存空间之中(MetaData)。而后真正的数据一定要保存在DataNode之中,那么至于说数据保存在那个DataNode节点上,由NameNode来进行记录。

但是每一个DataNode是根据数据块来存储的(Hadoop的默认的数据库为128M),如果你现在存储了一个1k的文件,对于DataNode也占有128M的磁盘空间,如果你存储了300M的文件,那么这个文件会自动拆分为3份,保存在不同的数据块里面。 SecondaryNameNode属于一个NameNode的经理级别,负责一些琐碎的事务,就是负责为NameNode进行数据更新的。因为NameNode有可能不是最新的数据,所以就需要有一个辅助的操作去帮助NameNode进行更新。

1.1.3 HDFS Shell命令

列出根目录下的所有文件信息:hadoop fs -ls / 

HDFS上创建目录:hadoop fs -mkdir -p /目录 

将文件上传到指定的目录之中:hadoop fs -put 源文件路径 目标路径 

复制HDFS的文件;hadoop fs -cp 源文件路径 目标路径 

删除文件:hadoop fs -rm 文件路径 

移动文件:hadoop fs -mv 源文件路径 目标路径 

删除文件目录:hadoop fs -rmr 目录 

查看帮助信息:hadoop fs -help 

1.2 YARN(分析)
YARN主要用来分析Hadoop保存在HDFS文件系统上的数据。
2、hadoop的核心进程
    五个核心进程:NameNode、SecondaryNameNode、DataNodeResourceManager、NodeManager。
 这些进程分为两类: 
    DFS相关进程(存储):NameNode、SecondaryNameNode、DataNode |- 配置文件:hdfs-site.xml;
    YARN相关进程(数据分析):ResourceManager、NodeManager |- 配置文件:yarn-site.xml。

3、hadoop的启动命令

利用start-all.sh 文件可以直接启动DFS 与YARN 相关进程,但是从实际来讲,需要分开启动。

3.1 手工启动

利用hadoop-deamon.sh 启动或关闭namenode、SecondaryNameNode、DataNode等三个进程hadoop-daemon.sh start | stop 节点名称例:hadoop-daemon.sh start namenode。

利用 yarn-daemon.sh启动或关闭ResourceManager、NodeManager进程: yarn-daemon.sh start | stop 节点名称例:yarn-daemon.sh start resourcemanager。

通过jps命令查看,应该会存在有六个进程(其中有一个是jps)。

3.2 自动化脚本启动

Hadoop运行的初期所以可以为其使用自动化的脚本启动,而这个脚本分为两类:dfs自动化脚本、yarn自动化脚本。

自动化启动dfs:start-dfs.sh 

        此脚本执行之后会启动三个进程:NameNode、DataNode、SecondaryNameNode;

自动化启动yarn:start-yarn.sh; 

        此脚本执行之后会启动两个进程:ResourceManager、NodeManager;

自动化关闭dfs:stop-dfs.sh

自动化关闭yarn:stop-yarn.sh


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值