栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hadoop总结(基于hadoop的大数据分析和处理)

hadoop总结(基于hadoop的大数据分析和处理)

hadoop是什么?

海量数据的存储(HDFS)

        海量数据的分析(MapReduce)

        资源管理调度(YARN)

hadoop核心

        HDFS: Hadoop Distributed File System 分布式文件系统

        YARN: Yet Another Resource Negotiator    资源管理调度系统

HDFS的架构

主从结构

主节点,

只有一个: namenode

从节点,

有很多个: datanode

namenode负责:

接收用户操作请求 维护文件系统的目录结构 管理文件与block之间关系,block与datanode之间关系

datanode负责:

存储文件 文件被分成block存储在磁盘上 为保证数据安全,文件会有多个副本

 

 指令

-put上传文件该命令选项表示把linux上的文件复制到hdfs中,如图4-11所示。.图4-11-copyFromLocal从本地复制操作与-put一致,不再举例。-moveFromLocal从本地移动该命令表示把文件从linux上移动到hdfs中,如图4-12所示。图4-12getmerge合并到本地该命令选项的含义是把hdfs指定目录下的所有文件内容合并到本地linux的文件中,如图4-13所示。

图4-13-cat查看文件内容该命令选项是查看文件内容,如图4-14所示。图4-14-text查看文件内容该命令选项可以认为作用和用法与-cat相同,此处略。-mkdir创建空白文件夹该命令选项表示创建文件夹,后面跟的路径是在hdfs将要创建的文件夹,如图4-15所示。图4-15

-setrep设置副本数量该命令选项是修改已保存文件的副本数量,后面跟副本数量,再跟文件路径,如图4-16所示。图4-16在图4-16中,我们修改了文件/install.log的副本数,由1修改为2,意味着多了一个副本,HDFS会自动执行文件的复制工作,产生新的副本。如果最后的路径表示文件夹,那么需要跟选项-R,表示对文件夹中的所有文件都修改副本,如图4-17所示。.图4-17在图4-17中,我们对/user文件夹进行的操作,使用了选项-R,那么/user/root下的文件abc的副本数发生了改变。还有一个选项是-w,表示等待副本操作结束才退出命令,如图4-18所示。.图4-18请读者自己比较以上两图中使用-q前后执行结果的变化情况。-touchz创建空白文件该命令选项是在hdfs中创建空白文件,如图4-19所示。

目录

hadoop是什么?

hadoop核心

HDFS的架构

主从结构

                


图4-19-stat显示文件的统计信息该命令选项显示文件的一些统计信息,如图4-20所示。图1-20在图4-20中,命令选项后面可以有格式,使用引号表示。示例中的格式“%b%n%o%r%Y”依次表示文件大小、文件名称、块大小、副本数、访问时间。-tail查看文件尾部内容该命令选项显示文件最后1K字节的内容。一般用于查看日志。如果带有选项-f,那么当文件内容变化时,也会自动显示。,

图4-21-chmod修改文件权限该命令选项的使用类似于linux的shell中的chmod用法,作用是修改文件的权限,。

图4-22在图4-22中,修改了文件/emptyfile的权限。如果加上选项-R,可以对文件夹中的所有文件修改权限,如图4-23所示。.图4-23-chown修改属主该命令选项表示修改文件的属主,如图4-24所示。图4-24上图中把文件/emptyfile的属主由root修改为itcast。也可以同时修改属组,如图4-25所示。

图4-25在图4-25中,把文件/emptyfile的属主和属组都修改为itcast,如果只修改属组,可以使用“:itcast”。如果带有选项-R,意味着可以递归修改文件夹中的所有文件的属主、属组信息。-chgrp修改属组该命令的作用是修改文件的属组,该命令相当于“chown:属组”的用法,如图4-26所示。图4-26-help帮助该命令选项会显示帮助信息,后面跟上需要查询的命令选项即可,如图4-27所示。图4-27在图4-27中,查询的rm的用法。该命令选项显示的内容并非完全准确,比如查询count的结果就不准确,而是把所有命令选项的用法都显示出来,如图4-28所示。希望新的版本以后改进。

图4-28读者短时间无法掌握全部命令用法,请重点掌握ls(r)、rm(r)、mkdir、put、get的使用。4.3.HDFS体系结构与基本概念我们通过hadoopshell上传的文件是存放在DataNode的block中,通过linuxshell是看不到文件的,只能看到block。可以一句话描述HDFS:把客户端的大文件存放在很多节点的数据块中。在这里,出现了三个关键词:文件、节点、数据块。HDFS就是围绕着这三个关键词设计的,我们在学习的时候也要紧抓住这三个关键词来学习。4.3.1.NameNode

4.3.1.1.作用NameNode的作用是管理文件目录结构,是管理数据节点的。名字节点维护两套数据,一套是文件目录与数据块之间的关系,另一套是数据块与节点之间的关系。前一套数据是静态的,是存放在磁盘上的,通过fsimage和edits文件来维护;后一套数据是动态的,不持久化到磁盘的,每当集群启动的时候,会自动建立这些信息。4.3.1.2.目录结构既然NameNode维护了这么多的信息,那么这些信息都存放在哪里呢呐?在hadoop源代码中有个文件叫做core-default.xml,如图4-51所示。图4-51打开这个文件,在第149行和第158行,有两个配置信息,一个是dfs.name.dir,另一个是dfs.name.edits.dir。这两个文件表示的是NameNode的核心文件fsimage和edits的存放位置,如图4-52所示。图4-52在对应配置的value值有${},这是变量的表示方式,在程序读取文件时,会把变量的值读取出来。那么,第150行的变量hadoop.tmp.dir的值是在我们上一章的配置文件core-site.xml中配置的,值是/usr/local/hadoop/tmp。可以看出,这两个文件的存储位置是在linux文件系统的/usr/local/hadoop/tmp/dfs/name目录下。

我们进入linux文件系统,可以看到如图4-53所示的目录结构。图4-534.3.2.DataNode4.3.2.1.作用DataNode的作用是HDFS中真正存储数据的。4.3.2.2.block如果一个文件非常大,比如100GB,那么是怎么存储在DataNode中哪呢?DataNode在存储数据的时候是按照block为单位读写数据的。block是hdfs读写数据的基本单位。假设文件大小是100GB,从字节位置0开始,每64MB字节划分为一个block,以依此类推,可以划分出很多的block。每个block就是64MB大小。block本质上是一个逻辑概念,意味着block里面不会真正的存储数据,只是划分文件的。我们看一下org.apache.hadoop.hdfs.protocol.Block类,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771555.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号