我在伪分布式上运行Hadoop。我想通过为我的工作抽象HDFS来读写本地文件系统。我正在使用file:///
参数。 我跟着this link.本地文件系统上的Hadoop
这是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>
这是我的错误,当我尝试启动魔(使用启动DFS或开始 - 所有),
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。
您能否详细说明您更新的配置完全位于何处?你的HADOOP_HOME变量指向什么? –
我把hadoop安装在'/home/abimanyu/binaries'.So我想这是我的HADOOP_HOME。 – Learner