hadoop 2.6.2,mkdir:无法创建代理提供程序 null

Posted

技术标签:

【中文标题】hadoop 2.6.2,mkdir:无法创建代理提供程序 null【英文标题】:hadoop 2.6.2 , mkdir : Couldn't create proxy provider null 【发布时间】:2017-04-17 12:15:37 【问题描述】:

我无法创建新文件或目录,也无法列出现有文件或目录

我正在使用以下命令进行操作,请您建议

 hduser@c:/usr/local/hadoop$ jps
8546 ResourceManager
9181 Jps
1503 NameNode
8674 NodeManager
4398 DataNode
hduser@c:/usr/local/hadoop$ bin/hadoop fs -ls /
ls: Couldn't create proxy provider null
hduser@c:/usr/local/hadoop$ bin/hadoop fs -mkdir /books
mkdir: Couldn't create proxy provider null
hduser@c:/usr/local/hadoop$

下面是我的hdfs-site.xml,我正在使用它。

<configuration>
    <property>
    <name>dfs.nameservices</name>
    <value>mycluster</value>
    </property>

<property>
<name>dfs.replicaion</name>
<value>2</value>
<description>to specifiy replication</description>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>file:/h3iHA/name</value>
<final>true</final>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>file:/h3iHA/data2</value>
<final>true</final>
</property>

<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>

<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>c:9000</value>
</property>

<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>a:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>c:50070</value>
</property>

<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>a:50070</value>
</property>

<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>file:///mnt/filer</value>
</property>

<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.configuredFailoverProxyProvider</value>
</property>

<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>

<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hduser/.ssh/id_rsa</value>
</property>

<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence
       shell(/bin/true)
</value>
</property>
</configuration>

核心文件,两个节点都一样

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
</configuration>

【问题讨论】:

这是 HA 集群吗? 是的,这是 HA 集群。 你能发一下你的hdfs-site.xml 我已经分享了我的hdfs配置文件,请您查看并建议,谢谢 【参考方案1】:

为属性dfs.client.failover.proxy.provider.mycluster 设置的Java 类名不正确。它是 ConfiguredFailoverProxyProvider 而不是 configuredFailoverProxyProvider

hdfs-site.xml中编辑该属性的值

<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

【讨论】:

谢谢 franklinksijo 。我有一个疑问 (1) 我需要再次格式化为我的名称节点吗? (2) 或者只是我需要启动我的namenode,因为这个命令 hduser@c:/usr/local/hadoop$ bin/hadoop fs -ls / 仍然抛出错误 ls: Call From a/192.168.0.105 to a:9000 failed关于连接异常:java.net.ConnectException:连接被拒绝;更多详情见:wiki.apache.org/hadoop/ConnectionRefused 不,不需要格式。代理错误已修复。这是不同的,a 是您当前的活动名称节点吗?你为fs.defaultFS设置了什么? 节点 c 处于活动状态,节点 a 处于备用状态。我的两个节点的核心文件都是一样的,现在更新了,你可以查看 hduser@c:/usr/local/hadoop$ bin/hadoop fs -ls / hduser@c:/usr/local/hadoop$ bin/hadoop fs - lsr / lsr:已弃用:请改用“ls -R”。 hduser@c:/usr/local/hadoop$ jps 1703 ResourceManager 1832 NodeManager 2729 jps 1535 NameNode 2570 DataNode hduser@a:/usr/local/hadoop$ bin/hadoop fs -ls / hduser@a:/usr/local/hadoop $ ls / @Maverick 我在您发布的评论中没有看到错误。你能澄清一下吗? 能否请您指教:如果我们在 HA hadoop 集群中执行 bootstrapStandby -force 命令后无法在伙伴节点上启动 namenode 可能是什么原因:错误消息 >>2017-04 -21 03:38:28,222 警告 org.apache.hadoop.hdfs.server.namenode.ha.EditLogTailer:无法触发活动 NN java.net.ConnectException 的滚动:从 c/192.168.0.104 调用到 a:9000连接异常失败:java.net.ConnectException:连接被拒绝;

以上是关于hadoop 2.6.2,mkdir:无法创建代理提供程序 null的主要内容,如果未能解决你的问题,请参考以下文章

hadoop2.2.0 HDFS没有文件,也无法创建文件夹

hadoop fs -mkdir没有创建所需的文件夹

hadoop中怎么创建文件夹

hadoop pig 不能 mkdir java 抛出 IO 异常

Hadoop快速入门(WordContent简单应用)

在hdfs中为hive创建目录(/user/hive/warehouse)不成功,显示已经存在,但是找不到?求高手指点,先谢了