로컬 시스템에서 hadoop 응용 프로그램을 실행하기위한 옵션을 탐색 중입니다.Hadoop을 HDFS없이 가상 분산 작업으로 실행할 수 있습니까?
많은 응용 프로그램에서와 같이 처음 몇 개의 릴리즈는 사용 가능한 모든 CPU 코어를 사용할 수있는 한 단일 노드에서 실행할 수 있어야합니다 (예 : this question과 관련 있음). 현재의 한계는 프로덕션 시스템에서 Java 1.5를 사용하고 있기 때문에 최신 릴리즈 (Hadoop 0.18.3)에 바인딩되어 있습니다 (this question 참조). 죄송하지만 this new feature을 사용할 수 없습니다.
첫 번째 옵션은 가상 분산 모드에서 단순히 hadoop을 실행하는 것입니다. 기본적으로 정확히 하나의 노드에서 실행되는 모든 항목이 포함 된 완전한 hadoop 클러스터를 만듭니다.
이 양식의 "단점"은 완전한 본격적인 HDFS를 사용한다는 것입니다. 즉, 입력 데이터를 처리하기 위해서는 먼저 로컬에 저장된 DFS ...로 "업로드"해야합니다. 따라서 입력 및 출력 데이터의 전송 시간이 추가로 소요되고 추가 디스크 공간이 사용됩니다. 우리가 단일 노드 구성을 유지하는 동안이 두 가지를 모두 피하고 싶습니다.
그래서 나는 생각했다. "fs.hdfs.impl"설정을 덮어 쓰고 "org.apache.hadoop.dfs.DistributedFileSystem"에서 "org.apache.hadoop"으로 변경할 수 있습니까? fs.LocalFileSystem "?
"로컬"hadoop 클러스터 (하나의 노드로만 구성 될 수 있음)가 작동하면 추가 저장 공간 요구없이 기존 파일을 사용할 수 있으며 파일을 업로드 할 필요가 없기 때문에 더 빨리 시작할 수 있습니다. 나는 여전히 일과 업무 추적기를 가지며 모든 것을 제어하는 namenode를 가질 것으로 기대한다.
누구나 전에 사용해 보았습니까? 의도 한 용도에서 너무 멀리 떨어져 있거나이 아이디어가 작동 할 수 있습니까?
또는 동일한 효과를 얻는 더 좋은 방법이 있습니까? HDFS가없는 가상 분산 작업?
의견을 보내 주셔서 감사합니다. EDIT 2
:
이 난 bajafresh4life 의해 제공된 응답을 사용 0.18.3 CONT/하둡에 site.xml 하둡 위해 만들어진 구성이다.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>file:///</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:33301</value>
</property>
<property>
<name>mapred.job.tracker.http.address</name>
<value>localhost:33302</value>
<description>
The job tracker http server address and port the server will listen on.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>mapred.task.tracker.http.address</name>
<value>localhost:33303</value>
<description>
The task tracker http server address and port.
If the port is 0 then the server will start on a free port.
</description>
</property>
</configuration>
예, 감사합니다. 그건 잘된거야. 나는 더 많은 테스트를 한 후에 설정을 게시 할 것이다. –