2010-08-23 30 views
8

Tôi đang khám phá các tùy chọn để chạy ứng dụng hadoop trên một hệ thống cục bộ. Cũng giống như nhiều ứng dụng, một vài bản phát hành đầu tiên có thể chạy trên một nút, miễn là chúng ta có thể sử dụng tất cả các lõi CPU có sẵn (Có, điều này có liên quan đến this question). Giới hạn hiện tại là trên các hệ thống sản xuất của chúng tôi, chúng tôi có Java 1.5 và do đó chúng tôi bị ràng buộc với Hadoop 0.18.3 là bản phát hành mới nhất (Xem this question). Rất tiếc, chúng tôi không thể sử dụng this new feature.Có thể chạy Hadoop trong hoạt động phân tán giả mà không có HDFS không?

Tùy chọn đầu tiên là chỉ cần chạy hadoop trong chế độ phân tán giả. Về cơ bản: tạo một cụm Hadoop hoàn chỉnh với mọi thứ trên nó chạy chính xác trên 1 nút.

"Nhược điểm" của biểu mẫu này là nó cũng sử dụng HDFS chính thức. Điều này có nghĩa rằng để xử lý dữ liệu đầu vào này trước tiên phải được "tải lên" lên DFS ... được lưu trữ cục bộ. Vì vậy, điều này sẽ mất thêm thời gian truyền dữ liệu đầu vào và đầu ra và sử dụng không gian đĩa bổ sung. Tôi muốn tránh cả hai trong khi chúng tôi ở trên một cấu hình nút duy nhất.

Vì vậy, tôi đã suy nghĩ: Có thể ghi đè cài đặt "fs.hdfs.impl" và thay đổi từ "org.apache.hadoop.dfs.DistributedFileSystem" thành (ví dụ) "org.apache.hadoop không. fs.LocalFileSystem "?

Nếu điều này làm việc cụm "cục bộ" cục bộ (có thể CHỈ bao gồm MỘT nút) có thể sử dụng các tệp hiện có mà không cần thêm bất kỳ yêu cầu bộ nhớ nào và có thể khởi động nhanh hơn vì không cần tải tệp lên. Tôi hy vọng sẽ vẫn có một công việc và theo dõi nhiệm vụ và có lẽ cũng là một namenode để kiểm soát toàn bộ điều.

Có ai đã thử điều này trước đây không? Nó có thể hoạt động hoặc là ý tưởng này quá xa so với mục đích sử dụng?

Hoặc có cách nào tốt hơn để có được hiệu ứng tương tự: Hoạt động phân phối giả không có HDFS không?

Cảm ơn thông tin chi tiết của bạn.


EDIT 2:

Đây là cấu hình tôi đã tạo cho hadoop 0.18.3 conf/hadoop-site.xml sử dụng câu trả lời cung cấp bởi bajafresh4life.

<?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> 

Trả lời

6

Có, điều này là có thể, mặc dù tôi đang sử dụng 0.19.2. Tôi không quá quen thuộc với 0.18.3, nhưng tôi khá chắc chắn nó không nên tạo sự khác biệt.

Chỉ cần đảm bảo rằng fs.default.name được đặt thành mặc định (là file:///) và mapred.job.tracker được đặt để trỏ đến vị trí công việc của bạn được lưu trữ. Sau đó khởi động trình nền của bạn bằng bin/start-mapred.sh. Bạn không cần phải khởi động nút tên hoặc các nút dữ liệu. Tại thời điểm này, bạn sẽ có thể chạy các công việc trên bản đồ/giảm sử dụng bin/hadoop jar ...

Chúng tôi đã sử dụng cấu hình này để chạy Hadoop trên một cụm máy nhỏ sử dụng thiết bị Netapp được gắn trên NFS.

+0

Có, cảm ơn bạn. Điều đó hoạt động rất tốt. Tôi sẽ đăng cấu hình của tôi sau khi tôi đã thực hiện một số thử nghiệm thêm. –

Các vấn đề liên quan