Tôi đã nhập đầu vào cho trình ánh xạ từ hệ thống tệp cục bộ. Nó đang chạy thành công từ nhật thực, nhưng không chạy từ cụm sao vì không thể tìm thấy đầu vào cục bộ đường dẫn nói: đường dẫn đầu vào không tồn tại. Xin vui lòng ai cũng có thể giúp tôi làm thế nào để cung cấp cho một đường dẫn tập tin địa phương để một người lập bản đồ để nó có thể chạy trong cụm và tôi có thể nhận được đầu ra trong hdfsChạy thư mục hệ thống tệp cục bộ làm đầu vào của Trình ánh xạ trong cụm
Trả lời
Chạy trong một cụm yêu cầu dữ liệu được tải vào bộ nhớ phân tán (HDFS). Sao chép dữ liệu vào HDFS trước tiên bằng cách sử dụng hadoop fs -copyFromLocal
và sau đó cố gắng trun công việc của bạn lần nữa, cung cấp cho nó đường dẫn dữ liệu trong HDFS
Dữ liệu phải có trên HDFS cho bất kỳ công việc MapReduce nào để xử lý. Vì vậy, ngay cả khi bạn có một nguồn như hệ thống tệp cục bộ hoặc đường dẫn mạng hoặc cửa hàng dựa trên web (chẳng hạn như lưu trữ Azure Blob hoặc kho lưu trữ khối Amazon), bạn cần phải sao chép dữ liệu ở HDFS trước và sau đó chạy lệnh in. Điểm mấu chốt là bạn cần đẩy dữ liệu đầu tiên đến HDFS và có một số cách phụ thuộc vào nguồn dữ liệu, bạn sẽ thực hiện truyền dữ liệu từ nguồn của bạn sang HDFS chẳng hạn như từ hệ thống tệp cục bộ bạn sẽ sử dụng lệnh sau :
$ hadoop -f CopyFromLocal SourceFileOrStoragePath _HDFS__Or_directPathatHDFS_
Nhưng nếu tôi muốn cung cấp cho các tập tin địa phương như là đầu vào của bản đồ-giảm thông qua một chương trình java, sau đó làm thế nào tôi nên xác định nó trong chương trình java để chạy nó trong cluster? – user1326784
câu hỏi đặt ra là một trong những thú vị. Người ta có thể có dữ liệu trên S3 và truy cập dữ liệu này mà không có một bản sao rõ ràng để HDFS trước khi chạy công việc. Trong ví dụ Số từ, người ta sẽ chỉ định này như sau:
hadoop jar dụ .jar Số từ s3n://bucket/input s3n://bucket/output
gì xảy ra ở đây là rằng người vẽ bản đồ đọc hồ sơ trực tiếp từ S3.
Nếu điều này có thể được thực hiện với S3, tại sao không Hadoop tương tự, sử dụng cú pháp này thay vì s3n
file:///input file:///output
? Tuy nhiên, theo kinh nghiệm, điều này dường như thất bại một cách thú vị - tôi thấy rằng Hadoop cho một tập tin không tìm thấy ngoại lệ cho một tập tin thực sự nằm trong thư mục đầu vào. Quay lại đầu trang |||| Nghĩa là, có vẻ như có thể liệt kê các tệp trong thư mục đưa vào đĩa cục bộ của tôi nhưng khi đến lúc mở chúng để đọc các bản ghi, tệp không được tìm thấy (hoặc có thể truy cập được).
Trên thực tế, đã thảo luận về điều này, câu trả lời không phải là dữ liệu đầu tiên phải có trong HDFS mà chỉ đơn giản là những người lập bản đồ Hadoop không có cách nào để lấy các bản ghi có trong các tệp cục bộ; không có máy chủ nhất thiết phải chạy trên máy cục bộ và không có cách nào để chỉ định máy chủ cho Hadoop. – Jeff
Hãy thử thiết lập con đường đầu vào như
FileInputFormat.addInputPath (conf, Path mới (file: /// thư mục trên hệ thống tập tin địa phương của bạn)) này;
nếu bạn cung cấp phần mở rộng tệp, tệp có thể truy cập tệp từ hệ thống địa phương
Đây là câu hỏi rất cũ. Gần đây phải đối mặt với cùng một vấn đề. Tôi không biết làm thế nào chính xác giải pháp này là nó làm việc cho tôi mặc dù. Xin vui lòng mang đến để thông báo nếu có bất kỳ nhược điểm này.Đây là những gì tôi đã làm.
Reading a solution from the mail-archives, tôi nhận ra nếu tôi sửa đổi fs.default.name
từ hdfs://localhost:8020/
thành file:///
nó có thể truy cập hệ thống tệp cục bộ. Tuy nhiên, tôi không muốn điều này cho tất cả các công việc của tôi. Vì vậy, tôi đã tạo một bản sao của core-site.xml
trong một thư mục hệ thống cục bộ (giống như thư mục mà tôi sẽ gửi bình MR của tôi đến hadoop jar
).
và trong lớp Driver
tôi cho MR
Tôi nói thêm,
Configuration conf = new Configuration();
conf.addResource(new Path("/my/local/system/path/to/core-site.xml"));
conf.addResource(new Path("/usr/lib/hadoop-0.20-mapreduce/conf/hdfs-site.xml"));
Các MR
có đầu vào từ hệ thống địa phương và ghi đầu ra để hdfs:
Tôi có một cụm nút 3. Tôi muốn đọc tệp từ hệ thống tệp cục bộ của máy 1.Tôi làm cách nào để thực hiện việc này>? – TKHN
Tôi đã thử đoạn mã sau và có những giải pháp .. Vui lòng thử và cho tôi biết ..
Bạn cần nhận đối tượng FileSystem cho hệ thống tệp cục bộ và sau đó sử dụng phương pháp giả mạo để trả lại pa th .. Như chúng ta cần phải vượt qua đường dẫn của hệ thống tập tin địa phương (không có cách nào khác để vượt qua điều này để inputformat), tôi đã sử dụng làm cho đủ điều kiện, mà trong hành động chỉ trả về đường dẫn hệ thống tập tin địa phương. .
Configuration conf = new Configuration();
FileSystem fs = FileSystem.getLocal(conf);
Path inputPath = fs.makeQualified(new Path("/usr/local/srini/")); // local path
FileInputFormat.setInputPaths(job, inputPath);
tôi hy vọng công trình này cho yêu cầu của bạn, mặc dù nó được đăng tải rất muộn .. nó hoạt động tốt cho tôi .. nó không cần bất kỳ thay đổi cấu hình tôi tin ..
util.NativeCodeLoader: Không thể tải thư viện hadoop gốc cho nền tảng của bạn ... sử dụng các lớp builtin-java khi áp dụng Ngoại lệ trong chuỗi "main" java.lang.UnsupportedOperationException: Không được triển khai bởi DistributedFileSystem –
U có thể muốn thử loại này bằng cách đặt cấu hình là
Configuration conf=new Configuration();
conf.set("job.mapreduce.tracker","local");
conf.set("fs.default.name","file:///");
Sau khi bạn có thể đặt fileinputformat với đường dẫn cục bộ và ur tốt để đi
- 1. GPU - Ánh xạ bộ nhớ hệ thống
- 2. Cách lấy tên tệp đầu vào trong trình ánh xạ trong chương trình Hadoop?
- 3. Cài đặt gói Python từ thư mục hệ thống tệp cục bộ bằng pip
- 4. Có thể gắn bộ nhớ từ xa vào hệ thống tệp cục bộ của iOS không?
- 5. Sử dụng trình ánh xạ & bộ tập tin để sao chép các tệp vào một thư mục con khác?
- 6. Nút-Webkit: Cách tạo tệp trong hệ thống tệp cục bộ?
- 7. Chạy Greasemonkey trên các tệp html nằm trên hệ thống tệp cục bộ?
- 8. Tiện ích mở rộng của Chrome có thể ghi vào một tệp trong thư mục hệ thống của Chrome không?
- 9. Làm thế nào để ánh xạ mục đầu tiên trong một bộ sưu tập với AutoMapper
- 10. Đồng bộ hóa cấu trúc thư mục/tên tệp của Visual Studio với cấu trúc hệ thống tệp/tên tệp
- 11. Cách sao chép tệp từ HDFS sang hệ thống tệp cục bộ
- 12. Làm cách nào để truy cập các tệp hệ thống tệp cục bộ trong trình giả lập Android?
- 13. Làm cách nào để tạo tệp yêu cầu pip cho tarball trên hệ thống tệp cục bộ của tôi?
- 14. như thế nào một chương trình chạy trong bộ nhớ và cách bộ nhớ được xử lý bởi hệ thống
- 15. Gắn thẻ hệ thống tệp thay vì thư mục?
- 16. Truy cập thư mục/bộ nhớ cache trong hệ thống tệp Android
- 17. Cách truy cập hệ thống tệp cục bộ từ trình duyệt WebKit bằng JavaScript?
- 18. Ưu điểm của tệp ánh xạ bộ nhớ là gì?
- 19. Tạo Thư mục Ảo và móc chúng vào hệ thống tệp
- 20. Làm thế nào để chuyển hướng đầu ra của hệ thống() vào một tệp?
- 21. nhập vào ánh xạ int
- 22. Làm thế nào để cài đặt lxml vào virtualenv từ hệ thống cục bộ?
- 23. Microsoft.Jet.OLEDB.4.0 không được đăng ký trong hệ thống cục bộ
- 24. Các tệp ánh xạ bộ nhớ trong Java
- 25. Giám sát các tệp ánh xạ bộ nhớ trong Windows
- 26. Trong hệ thống tệp FUSE bộ nhớ
- 27. Làm cách nào để sao chép tệp từ UNC-share sang hệ thống cục bộ?
- 28. Nhược điểm của ánh xạ quan hệ đối tượng
- 29. Hệ điều hành (POSIX) có xóa tệp ánh xạ bộ nhớ nếu quá trình này được SIGKILL không?
- 30. Có sự khác biệt nào giữa tệp iostream được ánh xạ và tăng tệp ánh xạ interprocess không?
Nhưng nếu tôi muốn cung cấp tệp cục bộ làm đầu vào của bản đồ giảm thông qua chương trình java, thì tôi nên xác định nó như thế nào trong chương trình java để chạy nó trong cluster? – user1326784
Sau khi bạn tải tệp lên HDFS, sau đó bạn định cấu hình tệp đó trong mã Trình điều khiển bằng cách sử dụng phương thức tiện ích của định dạng nhập, chẳng hạn như 'TextInputFormat.addInputPaths (job,"/path/to/file/in/hdfs ");' –