我在伪分布式上运行Hadoop。我想通过抽象HDFS为我的工作从本地文件系统读取和写入。我正在使用file:///
参数。我点击了此链接。
这是的文件内容core-site.xml
,
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value> /home/abimanyu/temp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
</configuration>
这是的文件内容mapred-site.xml
,
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>fs.default.name</name>
<value>file:///</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>1</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>1</value>
</property>
</configuration>
这是的文件内容hdfs-site.xml
,
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
这是我尝试启动恶魔时遇到的错误(使用start-dfs或start-all),
localhost: Exception in thread "main" java.lang.IllegalArgumentException: Does not contain a valid host:port authority: file:///
localhost: at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:164)
localhost: at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:212)
localhost: at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:244)
localhost: at org.apache.hadoop.hdfs.server.namenode.NameNode.getServiceAddress(NameNode.java:236)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:194)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:150)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.main(SecondaryNameNode.java:676)
对我来说奇怪的是,从本地文件系统读取的内容在中完全可以正常运行,hadoop-0.20.2
而在中则不能hadoop-1.2.1
。从最初的发行版到更高的版本有什么变化吗?让我知道如何从Hadoop JAR的本地文件系统读取。
您可以从mapred-site.xml文件中删除fs.default.name值-该值仅应位于core-site.xml文件中。
如果要在本地文件系统上以伪模式运行,通常可以通过以所谓的本地模式运行来实现-通过将core-site.xml中的fs.default.name值设置为file:///(您目前已将其配置为hdfs:// localhost:54310)。
您看到的堆栈跟踪是辅助名称节点正在启动时-在“本地模式”下运行时不需要此操作,因为没有fsimage或2NN可以使用的编辑文件。
修复您的core-site.xml和mapred-site.xml。停止所有hadoop守护程序,然后仅启动map-reduce守护程序(Job Tracker和Task Tracker)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句