2017-11-28 1 views
-1

에 하둡을 설치 3.6 버전 2 애드온 소프트웨어 릴리스 나는이 지침에 따라 해요 :
http://www.ics.uci.edu/~shantas/Install_Hadoop-2.6.0_on_Windows10.pdf오류 창

정확히을 완료 하둡 2.6.5을 설치하려고 (정확한 기록 된 버전이 아닌 최신 버전을 사용).

HDFS-site.xml의

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<!-- 
Licensed under the Apache License, Version 2.0 (the "License"); 
you may not use this file except in compliance with the License. 
You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0 
Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an "AS IS" BASIS, 
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
See the License for the specific language governing permissions and 
limitations under the License. See accompanying LICENSE file. 
--> 
<!-- Put site-specific property overrides in this file. --> 
<configuration> 
<property><name>dfs.replication</name><value>1</value></property> 
<property> <name>dfs.namenode.name.dir</name><value>/hadoop- 
2.6.5/data/name</value><final>true</final></property> 
<property><name>dfs.datanode.data.dir</name><value>/hadoop- 
2.6.5/data/data</value><final>true</final> </property> 
</configuration> 

내가 -format 하둡 네임 노드를 실행하려고 할 때 명령에이 오류를 얻을 :

내가 HDFS-site.xml 파일을 구성하는 방법입니다 라인 :

17/11/28 23:51:24 INFO http.HttpServer2: addJerseyResourcePackage: packageName=org.apache.hadoop.hdfs.server.namenode.web.resources;org.apache.hadoop.hdfs.web.resources, pathSpec=/webhdfs/v1/* 
17/11/28 23:51:24 INFO http.HttpServer2: Jetty bound to port 50070 
17/11/28 23:51:24 INFO mortbay.log: jetty-6.1.26 
17/11/28 23:51:24 INFO mortbay.log: Started [email protected]:50070 
17/11/28 23:51:24 ERROR common.Util: Syntax error in URI /hadoop- 
2.6.5/data/name. Please check hdfs configuration. 
java.net.URISyntaxException: Illegal character in path at index 8: /hadoop- 
2.6.5/data/name 
     at java.net.URI$Parser.fail(URI.java:2848) 
     at java.net.URI$Parser.checkChars(URI.java:3021) 
     at java.net.URI$Parser.parseHierarchical(URI.java:3105) 
     at java.net.URI$Parser.parse(URI.java:3063) 
     at java.net.URI.<init>(URI.java:588) 
     at org.apache.hadoop.hdfs.server.common.Util.stringAsURI(Util.java:48) 
     at org.apache.hadoop.hdfs.server.common.Util.stringCollectionAsURIs(Util.java:98) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getStorageDirs(FSNamesystem.java:1435) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNamespaceDirs(FSNamesystem.java:1390) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkConfiguration(FSNamesystem.java:675) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:729) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:539) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:598) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:765) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:749) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1446) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1512) 
17/11/28 23:51:24 WARN common.Util: Path /hadoop- 
2.6.5/data/name should be specified as a URI in configuration files. Please update hdfs configuration. 
17/11/28 23:51:24 ERROR common.Util: Error while processing URI: /hadoop- 
2.6.5/data/name 
java.io.IOException: The filename, directory name, or volume label syntax is incorrect 

더 많은 오류 ...

java.io.IOException: No image directories available! 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.saveFSImageInAllDirs(FSImage.java:1099) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.saveFSImageInAllDirs(FSImage.java:1091) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:150) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:945) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1387) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1512) 
17/11/29 00:23:23 FATAL namenode.NameNode: Failed to start namenode. 
java.io.IOException: No image directories available! 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.saveFSImageInAllDirs(FSImage.java:1099) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.saveFSImageInAllDirs(FSImage.java:1091) 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:150) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:945) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1387) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1512) 
17/11/29 00:23:23 INFO util.ExitUtil: Exiting with status 1 
17/11/29 00:23:23 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at yonatan/192.168.1.24 
************************************************************/ 

아이디어가 있으십니까?

은 BTW :

C:\WINDOWS\system32>hadoop version 
Hadoop 2.6.5 
Subversion https://github.com/apache/hadoop.git -r e8c9fe0b4c252caf2ebf1464220599650f119997 
Compiled by sjlee on 2016-10-02T23:43Z 
Compiled with protoc 2.5.0 
From source with checksum f05c9fa095a395faa9db9f7ba5d754 
This command was run using /D:/hadoop-2.6.5/share/hadoop/common/hadoop-common-2.6.5.jar 

C:\WINDOWS\system32> 

편집 : 하둡 버전은 잘 될 것 같다 @ cricket_007 같은 XML을 편집하는 제안 후, 하둡 네임 노드의 -f 근무 하지만, 관리자 권한으로 실행하려고 할 때 시작 DFS 전 다음 오류를 받음 :

17/11/29 21:10:36 INFO ipc.Server: Starting Socket Reader #1 for port 50020 
17/11/29 21:10:36 INFO datanode.DataNode: Opened IPC server at /0.0.0.0:50020 
17/11/29 21:10:36 INFO datanode.DataNode: Refresh request received for nameservices: null 
17/11/29 21:10:36 INFO datanode.DataNode: Starting BPOfferServices for nameservices: <default> 
17/11/29 21:10:36 WARN common.Util: Path /hadoop-2.6.5/data/data should be specified as a URI in configuration files. Please update hdfs configuration. 
17/11/29 21:10:36 INFO datanode.DataNode: Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:50071 starting to offer service 
17/11/29 21:10:36 INFO ipc.Server: IPC Server listener on 50020: starting 
17/11/29 21:10:36 INFO ipc.Server: IPC Server Responder: starting 
17/11/29 21:10:38 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:50071. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 
17/11/29 21:10:40 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:50071. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 

마지막 편집 : 문제가 발견되었습니다. 인덱스 8에서 하둡 위치 경로에

<value>/D:/hadoop-2.6.5/data/name</value> 
    <final>true</final> 
    </property> 
    <property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/D:/hadoop-2.6.5/data/data</value> 

답변

3

불법 문자의 D 드라이브를 정의하는 데 필요한 : 당신이 줄 바꿈을 가지고있는 것처럼

보인다. 그것들을 XML에서 제거하거나, 적어도 적절하게 포맷하십시오.

<!-- Put site-specific property overrides in this file. --> 
<configuration> 
    <property> 
    <name>dfs.replication</name> 
    <value>1</value> 
    </property> 
    <property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/hadoop-2.6.5/data/name</value> 
    <final>true</final> 
    </property> 
    <property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/hadoop-2.6.5/data/data</value> 
    <final>true</final> 
    </property> 
</configuration> 

일반적으로 경로에 언급 된 하드 드라이브가 표시됩니다. 예를 들면 D:\\hadoop\data이다. 그렇지 않으면 C 드라이브로 기본 설정되어 있다고 생각합니다.

추출 된 Hadoop 타르볼과 동일한 위치에 HDFS 데이터를 두는 것이 좋습니다. 실제 Hadoop 환경에서 namenode 및 datanode 데이터는 완전히 별개의 디스크에 있어야합니다. 하드 드라이브는 시한 폭탄을 시달리고 있습니다.

+0

좋아, 나중에 사용해 보겠습니다. 드라이브 정보 : 전체적으로 500GB, Windows는 C, Hadoop은 D (~ 250GB)입니다 (지금은 hadoop 용으로 생성됨). 드라이브를 나눌 것을 어떻게 제안합니까? 새로운 볼륨 또는 뭔가를 만들어야합니까? – JohnSnowTheDeveloper

+0

파티션은 여전히 ​​하나의 실제 하드 드라이브의 일부입니다. 새로운 하드 드라이브를 물리적으로 구입하여 볼륨을 만들어야합니다. 다시 말하지만, 이것은 프로덕션 등급 환경을위한 것이며, 반드시 로컬 Hadoop 인스턴스를 테스트하는 것은 아닙니다 (Linux 가상 머신을 실행하면 설치가 훨씬 쉽고 반복적 일 것이라고 언급하는 것입니다). –

+0

오케이 알 겠어요, . 감사. – JohnSnowTheDeveloper