6.大数据技术之hadoop体系(HDFS、YARN)

 

HDFS的体系结构

NameNode: HDFS的主要管理者;接受客户端的请求,比如说,将本地文件上传到HDFS上;维护文件的元信息(fsimage文件)和操作日志(edit文件)

文件的元信息(fsimage文件):一个文件上传到HDFS上,文件会被切成一份份的数据块,记录这些数据块的文件就是文件的元信息

6.大数据技术之hadoop体系(HDFS、YARN)

打开虚拟机,进入 ~/training/hadoop-2.7.3/tmp/dfs/name/current目录,看到fsimage*******文件就是文件的元信息,这个文件记录着HDFS上数据块的保存位置(数据块保存在哪个节点上),但此文件是二进制的文件,不能查看6.大数据技术之hadoop体系(HDFS、YARN)

操作日志文件(edit文件): 记录着客户端的所有操作的日志文件

文件的位置与fsimage文件在同一个目录下,其中edits_inprogress_*********文件详细记录着用户的每个操作

DataNode: 数据节点(伪分布式一个, 全分布式至少两个),主要用于保存文件的数据块(hadoop1.x 数据块为64M, hadoop2.x数据块为128M)

6.大数据技术之hadoop体系(HDFS、YARN)

进入到tools的目录下,讲目标文件hadoop2.7的安装包上传到HDFS上,已经为大家精心准备了大数据的系统学习资料,从Linux-Hadoop-spark-......,需要的小伙伴可以点击 首先使用hdfs dfs -mkdir /tools在HDFS上创建一个名为tools的目录,然后用hdfs dfs -ls / 可以查看HDFS的根目录看到多了一个/tools的目录(/input是之前创建的),hdfs dfs -put hadoop-2.7.3.tar.gz /tools 上传文件

6.大数据技术之hadoop体系(HDFS、YARN)

然后进入本地的~/training/hadoop-2.7.3/tmp/dfs/data/current/BP-402346230-192.168.145.111-1519934689058/current/finalized/subdir0/subdir0目录下,看到有四个文件,其中blk_******就是数据块文件,blk_*****.meta就是对应的数据块元信息文件

6.大数据技术之hadoop体系(HDFS、YARN)

134217728 = 128 * 1024 * 1024, 79874467 = 76 * 1024 *1024, 经过计算,源文件(204M)上传到HDFS上被切成了两个数据块,第一个为128M, 第二个为76M(204 - 128 = 76),如果上传的文件大于256M,文件会被切成三个或者三个以上的数据块,依次类推

SecondaryNameNode: 第二名称节点,主要职责是定期将元信息文件(fsimage文件)与日志文件(edit)进行合并,由于用户的操作都会被记录到日志文件里,日志文件体现文件的最新状态,所以要定期将日志与元信息文件进行合并

6.大数据技术之hadoop体系(HDFS、YARN)

合并过程:1. HDFS发出检查点; 2. SecondaryNameNode从NameNode中下载元信息与日志文件; 3.SecondaryNameNode将下载的文件合并成一个文件(.check文件);4.SecondaryNameNode将合并后的.check文件传回给NameNode,并产生新的日志文件;5. NameNode将文件进行重新命名

 

6.大数据技术之hadoop体系(HDFS、YARN)

 

资源调度平台yarn,主从结构,主节点ResourceManager,从节点NodeManager

6.大数据技术之hadoop体系(HDFS、YARN)

6.大数据技术之hadoop体系(HDFS、YARN)

在home目录下创建一个文件data.txt, 里面随便编辑一些用于测试的语句,然后将文件上传到HDFS上的/input目录下

6.大数据技术之hadoop体系(HDFS、YARN)

接下来进入share/hadoop/mapreduce目录,其中有一个叫hadoop-mapreduce-example*****的jar包,里面包含了用java编写的mapreduce程序,我们可以利用jar包中的wordcount用于词频统计,hadoop jar是指将一个mapreduce任务提交到yarn平台上,/input/data.txt 表明输入路径, /output/result01表明输出路径(输出路径不能事先存在,存在的话会报错)

6.大数据技术之hadoop体系(HDFS、YARN)

6.大数据技术之hadoop体系(HDFS、YARN)

6.大数据技术之hadoop体系(HDFS、YARN)

执行命令,看到执行第一句日志信息18/03/03 12:25:00 INFO client.RMProxy: Connecting to ResourceManager at /192.168.145.111:8032, 说明此时任务已经提交到了yarn平台上,其实后台有一个yarn网页版的工具,打开本地的浏览器s输入linux的IP地址:8088可以查看yarn平台上的任务执行情况,上面查看执行过程可以明显看出是按照map和reduce两部分来执行任务

6.大数据技术之hadoop体系(HDFS、YARN)

然后查看hdfs上的/output/result01目录下,看到有两个文件,_SUCCESS文件表明的是任务执行的状态,part-r-00000是任务执行的结果,查看文件内容可以看到正确完成了词频的统计

6.大数据技术之hadoop体系(HDFS、YARN)

 

6.大数据技术之hadoop体系(HDFS、YARN)

相关文章: