错误执行HDFS zkfc命令 [英] Error executing hdfs zkfc command

查看:600
本文介绍了错误执行HDFS zkfc命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的Hadoop,HDFS ..我有做下一个步骤:

我已经在三个namenodes开始饲养员:

  *流浪汉@ 172:〜$ zkServer.sh启动

我可以看到的状态:

  *流浪汉@ 172:〜$ zkServer.sh状态

结果状态:

  JMX默认启用
    使用配置:/opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
    模式:跟随

与JPS命令只出现JPS,有时出现quaroom太:

  *流浪汉@ 172:〜$ JPS
    2237 JPS

当我运行下一个命令。

  *流浪汉@ 172:〜$ HDFS zkfc -formatZK16/01/07 16点10分09秒INFO zookeeper.ClientCnxn:打开套接字连接到服务器172.16.8.192/172.16.8.192:2181。不会尝试使用SASL认证(未知错误)
16/01/07 16:10:10信息zookeeper.ClientCnxn:Socket连接建立172.16.8.192/172.16.8.192:2181,发起会话
16/01/07 16点10分11秒INFO zookeeper.ClientCnxn:会话建立服务器172.16.8.192/172.16.8.192:2181,会话ID = 0x2521cd93c970022,协商超时= 6000完整
用法:Java的zkfc [-formatZK [-force] [-nonInteractive]16/01/07 16点10分11秒INFO ha.ActiveStandbyElector:会话连接。
16/01/07 16点10分11秒INFO zookeeper.ZooKeeper:会话:0x2521cd93c970022关闭
16/01/07 16点10分11秒INFO zookeeper.ClientCnxn:EventThread关闭
16/01/07 16点10分12秒致命tools.DFSZKFailoverController:有一个致命错误,正在退出
org.apache.hadoop.HadoopIllegalArgumentException:坏的说法:-formatZK
    在org.apache.hadoop.ha.ZKFailoverController.badArg(ZKFailoverController.java:251)
    在org.apache.hadoop.ha.ZKFailoverController.doRun(ZKFailoverController.java:214)
    在org.apache.hadoop.ha.ZKFailoverController.access $ 000(ZKFailoverController.java:61)
    在org.apache.hadoop.ha.ZKFailoverController $ 1.run(ZKFailoverController.java:172)
    在org.apache.hadoop.ha.ZKFailoverController $ 1.run(ZKFailoverController.java:168)
    在org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:415)
    在org.apache.hadoop.ha.ZKFailoverController.run(ZKFailoverController.java:168)
    在org.apache.hadoop.hdfs.tools.DFSZKFailoverController.main(DFSZKFailoverController.java:181)

有关这个错误的任何帮助将是对我来说是很大的帮助。

我的配置是下:

的.bashrc

  ### Java配置###
JAVA_HOME = / usr / lib目录/ JVM / java的8神谕
出口PATH = $ PATH:$ JAVA_HOME / bin中### Hadoop配置###
HADOOP_ preFIX = /选择/ Hadoop的2.7.1 /
出口PATH = $ PATH:$ HADOOP_ preFIX /斌:$ HADOOP_ preFIX / sbin目录### ZOOKEPER ###
出口PATH = $ PATH:/opt/zookeeper-3.4.6/bin

HDFS-site.xml中

 <结构>
 <性>
  <名称>&dfs.replication LT; /名称>
  <价值> 2'; /值>
 < /性>
 <性>
  <名称>&dfs.name.dir LT; /名称>
  < VALUE>的file:/// HDFS /名称和LT; /值>
 < /性>
 <性>
  <名称>&dfs.data.dir LT; /名称>
  < VALUE>的file:/// HDFS /数据< /值>
 < /性>
 <性>
  <名称>&dfs.permissions LT; /名称>
  < VALUE>假LT; /值>
 < /性>
 <性>
  <名称>&dfs.nameservices LT; /名称>
  < VALUE>自动公顷< /值>
 < /性>
 <性>
  <名称> dfs.ha.namenodes.auto-HA< /名称>
  < VALUE> nn01,nn02< /值>
 < /性>
 <性>
  <名称> dfs.namenode.rpc-address.auto-ha.nn01< /名称>
  < VALUE> 172.16.8.191:8020< /值>
 < /性>
 <性>
  <名称> dfs.namenode.http-address.auto-ha.nn01< /名称>
  < VALUE> 172.16.8.191:50070< /值>
 < /性>
 <性>
  <名称> dfs.namenode.rpc-address.auto-ha.nn02< /名称>
  < VALUE> 172.16.8.192:8020< /值>
 < /性>
 <性>
  <名称> dfs.namenode.http-address.auto-ha.nn02< /名称>
  < VALUE> 172.16.8.192:50070< /值>
 < /性>
 <性>
  <名称>&dfs.namenode.shared.edits.dir LT; /名称>
  < VALUE> qjournal://172.16.8.191:8485; 172.16.8.192:8485; 172.16.8.193:8485 /自动公顷< /值>
 < /性>
 <性>
  <名称>&dfs.journalnode.edits.dir LT; /名称>
  < VALUE> / HDFS / journalnode< /值>
 < /性>
 <性>
  <名称>&dfs.ha.fencing.methods LT; /名称>
  < VALUE> sshfence< /值>
 < /性>
 <性>
  <名称> dfs.ha.fencing.ssh.private键,文件和LT; /名称>
  &LT; VALUE&GT; /home/vagrant/.ssh/id_rsa< /值&GT;
 &LT; /性&gt;
 &LT;性&gt;
  &LT;名称&gt; dfs.ha.automatic-failover.enabled.auto-HA&LT; /名称&gt;
  &LT; VALUE&GT;真&LT; /值&GT;
 &LT; /性&gt;
 &LT;性&gt;
   &LT;名称&gt;&ha.zookeeper.quorum LT; /名称&gt;
   &LT; VALUE&GT; 172.16.8.191:2181,172.16.8.192:2181,172.16.8.193:2181&LT; /值&GT;
 &LT; /性&gt;
&LT; /结构&gt;

核心的site.xml

 &LT;结构&gt;
&LT;性&gt;
  &LT;名称&gt;&fs.default.name LT; /名称&gt;
  &LT; VALUE&GT; HDFS://自动公顷&LT; /值&GT;
&LT; /性&gt;
&LT; /结构&gt;

zoo.cfg

 滚动时间= 2000        DATADIR = /选择/ ZooData        CLIENTPORT = 2181        initLimit = 5
        syncLimit = 2
        server.1 = 172.16.8.191:2888:3888
        server.2 = 172.16.8.192:2888:3888
        server.3 = 172.16.8.193:2888:3888


解决方案

在文件HDFS-site.xml中:

*我有改变所有的IP地址的计算机的名称。
例:
172.16.8.191 - > machine_Name1

然后在文件etc / hosts中:

*我有添加所有的IP地址与它们各自的名称

而现在,它正在完美。

I am new to hadoop, hdfs.. I have do the next steps:

I have started zookeeper in the three namenodes:

*vagrant@172:~$ zkServer.sh start

I can see the status:

*vagrant@172:~$ zkServer.sh status

Result Status:

JMX enabled by default
    Using config: /opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Mode: follower

with jps command only appear jps and sometimes appear quaroom too:

*vagrant@172:~$ jps
    2237 Jps

When I run the next command.

* vagrant@172:~$ hdfs zkfc -formatZK

16/01/07 16:10:09 INFO zookeeper.ClientCnxn: Opening socket connection to server 172.16.8.192/172.16.8.192:2181. Will not attempt to authenticate using SASL (unknown error)
16/01/07 16:10:10 INFO zookeeper.ClientCnxn: Socket connection established to 172.16.8.192/172.16.8.192:2181, initiating session
16/01/07 16:10:11 INFO zookeeper.ClientCnxn: Session establishment complete on server 172.16.8.192/172.16.8.192:2181, sessionid = 0x2521cd93c970022, negotiated timeout = 6000
Usage: java zkfc [ -formatZK [-force] [-nonInteractive] ]

16/01/07 16:10:11 INFO ha.ActiveStandbyElector: Session connected.
16/01/07 16:10:11 INFO zookeeper.ZooKeeper: Session: 0x2521cd93c970022 closed
16/01/07 16:10:11 INFO zookeeper.ClientCnxn: EventThread shut down
16/01/07 16:10:12 FATAL tools.DFSZKFailoverController: Got a fatal error, exiting now
org.apache.hadoop.HadoopIllegalArgumentException: Bad argument: –formatZK
    at org.apache.hadoop.ha.ZKFailoverController.badArg(ZKFailoverController.java:251)
    at org.apache.hadoop.ha.ZKFailoverController.doRun(ZKFailoverController.java:214)
    at org.apache.hadoop.ha.ZKFailoverController.access$000(ZKFailoverController.java:61)
    at org.apache.hadoop.ha.ZKFailoverController$1.run(ZKFailoverController.java:172)
    at org.apache.hadoop.ha.ZKFailoverController$1.run(ZKFailoverController.java:168)
    at org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:415)
    at org.apache.hadoop.ha.ZKFailoverController.run(ZKFailoverController.java:168)
    at org.apache.hadoop.hdfs.tools.DFSZKFailoverController.main(DFSZKFailoverController.java:181)

Any help for this error would be a great help for me.

My configuration are the next:

bashrc

###JAVA CONFIGURATION###
JAVA_HOME=/usr/lib/jvm/java-8-oracle
export PATH=$PATH:$JAVA_HOME/bin

###HADOOP CONFIGURATION###
HADOOP_PREFIX=/opt/hadoop-2.7.1/
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

###ZOOKEPER###
export PATH=$PATH:/opt/zookeeper-3.4.6/bin

hdfs-site.xml

<configuration>
 <property>
  <name>dfs.replication</name>
  <value>2</value>
 </property>
 <property>
  <name>dfs.name.dir</name>
  <value>file:///hdfs/name</value>
 </property>
 <property>
  <name>dfs.data.dir</name>
  <value>file:///hdfs/data</value>
 </property>
 <property>
  <name>dfs.permissions</name>
  <value>false</value>
 </property>
 <property>
  <name>dfs.nameservices</name>
  <value>auto-ha</value>
 </property>
 <property>
  <name>dfs.ha.namenodes.auto-ha</name>
  <value>nn01,nn02</value>
 </property>
 <property>
  <name>dfs.namenode.rpc-address.auto-ha.nn01</name>
  <value>172.16.8.191:8020</value>
 </property>
 <property>
  <name>dfs.namenode.http-address.auto-ha.nn01</name>
  <value>172.16.8.191:50070</value>
 </property>
 <property>
  <name>dfs.namenode.rpc-address.auto-ha.nn02</name>
  <value>172.16.8.192:8020</value>
 </property>
 <property>
  <name>dfs.namenode.http-address.auto-ha.nn02</name>
  <value>172.16.8.192:50070</value>
 </property>
 <property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://172.16.8.191:8485;172.16.8.192:8485;172.16.8.193:8485/auto-ha</value>
 </property>
 <property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/hdfs/journalnode</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/vagrant/.ssh/id_rsa</value>
 </property>
 <property>
  <name>dfs.ha.automatic-failover.enabled.auto-ha</name>
  <value>true</value>
 </property>
 <property>
   <name>ha.zookeeper.quorum</name>
   <value>172.16.8.191:2181,172.16.8.192:2181,172.16.8.193:2181</value>
 </property>
</configuration>

core-site.xml

 <configuration>
<property>
  <name>fs.default.name</name>
  <value>hdfs://auto-ha</value>
</property>
</configuration>

zoo.cfg

 tickTime=2000

        dataDir=/opt/ZooData

        clientPort=2181

        initLimit=5
        syncLimit=2
        server.1=172.16.8.191:2888:3888
        server.2=172.16.8.192:2888:3888
        server.3=172.16.8.193:2888:3888

解决方案

In file hdfs-site.xml:

*I have change all the IPs for the name of the machine. Example: 172.16.8.191 --> machine_Name1

Then in file etc/hosts:

*I have add all the IPs with their respective names

And now it is working perfectly.

这篇关于错误执行HDFS zkfc命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆