HDFS块大小的设置
修改hdfs-site.xml配置文件,增加全局参数dfs.block.size
注意:blockSize必须是io.bytes.per.checksum的整数倍,否则会报错
思考题:
HDFS的shell操作
基础语法 bin/hadoop fs 和 bin/hafs dfs 具体命令
设置HDFS的副本数量
hadoop fs -setrep 3 /目录文件 #这里3是备份三份也是默认3份 如果想备份2份就把3改成2。
HDFS写数据流程
1>.客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。
2>.NameNode返回是否可以上传。
3>.客户端请求第一个 Block上传到哪几个DataNode服务器上。
4>.NameNode返回3个DataNode节点,分别为DataNode1、DataNode2、DataNode3。
5>.客户端通过FSDataOutputStream模块请求DataNode1上传数据,DataNode1收到请求会继续调用DataNode2,然后DataNode2调用DataNode3,将这个通信管道建立完成。
6>.DataNode1、DataNode2、DataNode3逐级应答客户端。
7>.客户端开始往DataNode1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,DataNode1收到一个Packet就会传给DataNode2,DataNode2传给DataNode3;DataNode1每传一个packet会放入一个应答队列等待应答。
8>.当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器。(重复执行3-7步)。