之前在服务器中利用docker实现完全分布式的部署。对hadoop中hdfs有个初步认识,接下来开始学习如何利用JavaAPI访问,实现读写等简单操作。之前是利用hadoop自带的shell命令对文件进行读写。
由于是本地练习,这次采用的是伪分布的部署,在部署完成后遇到1个问题,在namenode格式化的时候输出信息中 host = localhost,如下图
格式化是没任何问题的,使用shelll命令对文件进行操作也没任何问题。当上传完文件后,打开web页面看到下图,Block Pool ID中间的ip是127.0.0.1,图片是后面截的,当时情况就是红字所示。
接下来我在另一台局域网电脑windows操作系统下,准备写java访问,从namenode能够拿到文件的名字和各种信息。都没问题的,但是!!! 在使用文件读取的时候,按照流程应该是从datanode读取数据,确出现了错误,错误内容大概就是读取不到blob信息之类,但是datanode节点是正常的,最后定位在格式化namenode这个Host上,我这台windows电脑访问host出现了错误。
 解决的步骤试这样的:
- 在linux上先查看自己的hostname