[HADOOP] 오류 HDFS zkfc 명령을 실행
HADOOP오류 HDFS zkfc 명령을 실행
나는 HDFS .. 내가 다음 단계를 수행해야 하둡에 새로운 오전 :
나는 세 namenodes에서 사육사를 시작했습니다 :
*vagrant@172:~$ zkServer.sh start
나는 상태를 볼 수 있습니다 :
*vagrant@172:~$ zkServer.sh status
결과 상태 :
JMX enabled by default
Using config: /opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower
JPS와 명령은 JPS를 표시하고 때로는 너무 quaroom 나타납니다 :
*vagrant@172:~$ jps
2237 Jps
나는 다음 명령을 실행합니다.
* 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)
이 오류에 대한 어떤 도움을 나에게 큰 도움이 될 것입니다.
내 구성은 다음과 같습니다
###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
<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>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://auto-ha</value>
</property>
</configuration>
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
해결법
-
==============================
1.파일 HDFS-site.xml 파일에서 :
파일 HDFS-site.xml 파일에서 :
* 나는 기계의 이름에 대한 모든 IP를 변경해야합니다. 예: 172.16.8.191 -> machine_Name1
그런 다음 파일 etc / hosts 파일에서 :
* 나는 그들의 각각의 이름으로 모든 IP를 추가해야
그리고 지금은 완벽하게 작동한다.
from https://stackoverflow.com/questions/34024215/error-executing-hdfs-zkfc-command by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 읽기 및 JAVA에서 HDFS에 쓸 수있는 기존의 API가 있습니까 (0) | 2019.09.29 |
---|---|
[HADOOP] 맵리 듀스 작업은 JSON의 HDFS 디렉토리에있는 모든 고유 필드를 수집합니다 (0) | 2019.09.29 |
[HADOOP] 여러 서버에서 데이터를로드 할 때 데이터 중복 방지 (0) | 2019.09.28 |
[HADOOP] HDFS 및 절단 파일 (0) | 2019.09.28 |
[HADOOP] 하이브 : 시간의 차이를 계산하는 방법 (0) | 2019.09.28 |