hadoop-error:DiskChecker$DiskErrorException: Invalid volume failure config value
2605 단어 hadoop
2012-12-17 10:58:59,925 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.util.DiskChecker$DiskErrorException: Invalid
volume failure config value: 3
at org.apache.hadoop.hdfs.server.datanode.FSDataset.<init>(FSDataset.java:1025)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:414)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:305)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1606)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1546)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1564)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1690)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1707)
몇 대의 기계 집단을 새로 만들었는데, Datanode를 시작할 때 이 오류를 보고했습니다.
주요 원인은 dfs 때문이다.datanode.failed.volumes.tolerated 매개 변수가 3을 설정했습니다.
이 매개 변수의 의미: Datanode stops offering 서비스 전에 실패할 수 있는 volumes의 수입니다.By default any volume failure will cause a datanode to shutdown.
datanode는 디스크가 손상된 개수를 허용합니다. datanode는 시작할 때 dfs를 사용합니다.data.dir 아래에 설정된 폴더 (블록을 저장하는 데 사용됨), 사용할 수 없는 개수 > 위에 설정된 값이 있다면, 이 시작이 실패했습니다. 코드는: org.apache.hadoop.hdfs.server.datanode.FSDataset
public FSDataset(DataStorage storage, Configuration conf) throws IOException {
this.maxBlocksPerDir = conf.getInt("dfs.datanode.numblocks", 64);
// The number of volumes required for operation is the total number
// of volumes minus the number of failed volumes we can tolerate.
final int volFailuresTolerated =
conf.getInt("dfs.datanode.failed.volumes.tolerated", 0);
String[] dataDirs = conf.getTrimmedStrings(DataNode.DATA_DIR_KEY);
int volsConfigured = (dataDirs == null) ? 0 : dataDirs.length;
int volsFailed = volsConfigured - storage.getNumStorageDirs();
validVolsRequired = volsConfigured - volFailuresTolerated;
if (volFailuresTolerated < 0 || volFailuresTolerated >= volsConfigured) {
throw new DiskErrorException("Invalid volume failure "
+ " config value: " + volFailuresTolerated);
}
때문에 dfs.data.dir는 디렉터리 하나만 맞췄기 때문에 dfs를datanode.failed.volumes.tolerated를 0으로 설정하면 문제가 해결됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Azure HDInsight + Microsoft R Server에서 연산 처리 분산Microsoft Azure HDInsight는 Microsoft가 제공하는 Hadoop의 PaaS 서비스로 인프라 주변의 구축 노하우를 몰라도 훌륭한 Hadoop 클러스터를 구축할 수 있는 훌륭한 서비스입니다. 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.