赞
踩
前言:
我把kafka的前置课程写完了,对kafka有了一定的了解,接下去我将把HDFS的课程写的详细一些。
1、HDFS进程
NameNode(NN):
命名空间 =【fsimage+editlog(hadoop命令) 文件名称+目录结构+文件属性】+ 【文件 + 块 + 机器(datanode)】
DataNode(DN):
文件块 + 10个心跳发送一个block report
Secondary NameNode(SNN):
每隔一小时去拿 【fsimage+editlog】合并生成 fsimage_xxx.ckpt- > namenode
block大小:
默认128M ~ 最大 512M
数据块大文件会被分割成多个block进行存储,block大小默认为128MB。每一个block会在多个datanode上存储多份副本,默认是3份。
参数:hdfs-default.xm文件l里面的dfs.blocksize
路径:/opt/software/hadoop-2.8.1/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
为了确认默认是64m还是128m,我还是去找了下。
官网地址 http://hadoop.apache.org/docs/r2.8.4/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
官网显示默认大小:
、如果一个文件大小为130M,那它会被切成两个文件,一个文件是128M,那另一个文件就是2M(实际大小)
做个试验测试下Block的分配情况
【若泽大数据实战】
测试下,从linux上把一个超过128M的数据,放到hdfs上会有怎样的结果。
默认环境单机,1份数据,测试文件大小:404MB
首先启动 hdfs
[hadoop@hadoop-01 sbin]$ ./start-dfs.sh
Starting namenodes on [hadoop-01]
查看启动状态
[hadoop@hadoop-01 sbin]$ jps
3089 SecondaryNameNode
2762 NameNode
3338 Jps
2874 DataNode
准备一个text.log,文件大小为420MB超过128,
-rw-r--r--. 1 root root 424555111 May 19 17:47 ruoze.log
将它从linux放到hdfs上
[hadoop@hadoop-01 install]$ hdfs dfs -put ruoze.log /
[hadoop@hadoop-01 install]$ hdfs dfs -ls /
Found 3 items
-rw-r--r-- 1 hadoop supergroup 424555111 2018-05-19 17:49 /ruoze.log
drwx------ - hadoop supergroup 0 2018-05-17 14:50 /tmp
drwxr-xr-x - hadoop supergroup 0 2018-05-17 14:50 /user
打开网址查看信息:
http://192.168.137.30:50070/explorer.html#
我们查看到相关信息,ruoze.log 404MB
点击ruoze.log可以查看有4个块组成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。