向hdfs上传文件
向HDFS上传文件的过程如下:
1. 客户端向NameNode发送请求,告诉它要上传文件,以及文件的元数据(如文件名、目录等)。
2. NameNode检查元数据中是否已经存在相同文件名的文件,如果没有,那么告诉客户端可以上传这个文件。
3. 客户端将文件进行切分(如Hadoop 2.X中是128M),切成N(N>=1)块。
4. 客户端向NameNode请求上传第一个块,NameNode根据自身情况和备份数,查询应该上传到哪几个DataNode中,然后将查询到的DataNode信息告诉客户端。
5. 客户端根据NameNode返回的DataNode信息,开辟一个socket流将块上传到最近的一个DataNode节点。
6. 这个DataNode节点会对块进行水平备份,也就是将数据从DataNode本地复制到其他指定的机器上。
7. 数据备份完成后,DataNode通知客户端,告诉它这个块上传成功。
8. 客户端重复步骤4-7,直到所有块都上传成功。
需要注意的是,在编写源代码时,参数优先级排序为:客户端代码中设置的值 > ClassPath下的用户自定义配置文件 > 服务器的默认配置。
如有侵权请及时联系我们处理,转载请注明出处来自
推荐文章
科技快看 网站地图广州壹创集信息科技有限公司 版权所有 粤ICP备2021122624号