问题的根本就是你的防火墙没有关闭,说道这里有人会质疑,防火墙我早关了呀,没错防火墙你是关了,不然就不会访问到hadoop,但恰恰是这个原因,你忽略了大的问题,你只关了nameNode的防火墙,dataNode的防火墙你或许忘关了。这就导致了你能正常访问hadoop,但却无法上传文件内容。而等待的那40多秒时间 ,是因为它在不停的访问dataNode的ip但由于防火墙权限,一直不能访问成功。最后以失败告终,但空文件却生成在了nameNode上,所以就有了你现在所处的尴尬局面。
win10+ eclipse 本地调试,集群服务,虚拟机3个实例,master + 2 slaves
报错信息见标题,问题的关键在于FileSystem的初始化方式导致的异常抛出。
FileSystem fs = FileSystem.get(conf)//会报错,即使你把本地的coresite,
hdfssite等xml文件加入配置也没有用,hadoop会认为你的FS就是本机的操作系统FS。
即LocalFileSystem。
FileSystem fs = FileSystem.get(URI.create(dst),conf)//正常,其中URI指定 hdfs://具体路径
配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有哪些配置可以生效,上网找的配置可能因为各个hadoop版本不同,导致无法生效。浏览更多的配置,有两个方法:1.选择相应版本的hadoop,下载解压后,搜索*.xml,找到core-default.xml,hdfs-default.xml,mapred-default.xml,这些就是默认配置,可以参考这些配置的说明和key,配置hadoop集
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)