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的主要内容,如果未能解决你的问题,请参考以下文章
hadoop pig 不能 mkdir java 抛出 IO 异常
在hdfs中为hive创建目录(/user/hive/warehouse)不成功,显示已经存在,但是找不到?求高手指点,先谢了