2016-03-15 10 views
11

Tôi nhận được lỗi sau khi cố gắng viết thư cho HDFS như một phần của đa luồng ứng dụng của tôiHadoop: ... được nhân bản thành 0 nút thay vì minReplication (= 1). Có 1 datanode (s) đang chạy và không có nút (s) được loại trừ trong hoạt động này

could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and no node(s) are excluded in this operation. 

tôi đã thử các câu trả lời hàng đầu đánh giá đây khoảng format nhưng điều này không làm việc cho tôi: HDFS error: could only be replicated to 0 nodes, instead of 1

gì đang xảy ra là thế này:

  1. ứng dụng của tôi bao gồm 2 bài mỗi một cấu hình với mùa xuân của mình Dữ liệu PartitionTextFileWriter
  2. Chủ đề 1 là người đầu tiên để xử lý dữ liệu và điều này thành công có thể ghi vào HDFS
  3. Tuy nhiên, khi chủ đề 2 bắt đầu để xử lý dữ liệu tôi nhận được lỗi này khi nó cố gắng để tuôn vào một tập tin

Chủ đề 1 và 2 sẽ không được ghi vào cùng một tệp, mặc dù chúng chia sẻ một thư mục cha ở gốc cây thư mục của tôi.

Không có vấn đề với dung lượng đĩa trên máy chủ của tôi.

Tôi cũng thấy điều này trong các bản ghi tên nút của tôi, nhưng không chắc chắn những gì nó có nghĩa là:

2016-03-15 11:23:12,149 WARN org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy: Failed to place enough replicas, still in need of 1 to reach 1 (unavailableStorages=[], storagePolicy=BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], replicationFallbacks=[ARCHIVE]}, newBlock=true) For more information, please enable DEBUG log level on org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy 
2016-03-15 11:23:12,150 WARN org.apache.hadoop.hdfs.protocol.BlockStoragePolicy: Failed to place enough replicas: expected size is 1 but only 0 storage types can be selected (replication=1, selected=[], unavailable=[DISK], removed=[DISK], policy=BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], replicationFallbacks=[ARCHIVE]}) 
2016-03-15 11:23:12,150 WARN org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy: Failed to place enough replicas, still in need of 1 to reach 1 (unavailableStorages=[DISK], storagePolicy=BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], replicationFallbacks=[ARCHIVE]}, newBlock=true) All required storage types are unavailable: unavailableStorages=[DISK], storagePolicy=BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], replicationFallbacks=[ARCHIVE]} 
2016-03-15 11:23:12,151 INFO org.apache.hadoop.ipc.Server: IPC Server handler 8 on 9000, call org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock from 10.104.247.78:52004 Call#61 Retry#0 
java.io.IOException: File /metrics/abc/myfile could only be replicated to 0 nodes instead of [2016-03-15 13:34:16,663] INFO [Group Metadata Manager on Broker 0]: Removed 0 expired offsets in 1 milliseconds. (kafka.coordinator.GroupMetadataManager) 

gì có thể là nguyên nhân gây ra lỗi này?

Cảm ơn

Trả lời

5

Lỗi này là do hệ thống khối nhân rộng HDFS vì nó không thể quản lý để thực hiện bất kỳ bản sao của một khối cụ thể trong tập tin tập trung. lý do phổ biến về điều đó:

  1. Chỉ một trường hợp NameNode đang chạy và nó không phải là két sắt trong chế độ
  2. Không có trường hợp DataNode và chạy, hoặc một số đã chết. (Kiểm tra máy chủ)
  3. Các phiên bản Namenode và Datanode đều đang chạy, nhưng chúng không thể giao tiếp với nhau, có nghĩa là Có sự cố kết nối giữa các phiên bản DataNode và NameNode.
  4. Chạy các trường hợp DataNode không thể nói chuyện với máy chủ do một số vấn đề dựa trên hadoop (kiểm tra nhật ký bao gồm thông tin về mã dữ liệu)
  5. Không có không gian đĩa cứng được chỉ định trong thư mục dữ liệu được định cấu hình cho trường hợp DataNode hoặc DataNode các phiên bản đã hết dung lượng. (hãy kiểm tra dfs.data.dir // xóa các tệp cũ nếu có)
  6. Không gian dành riêng cho các trường hợp DataNode trong dfs.datanode.du.reserved nhiều hơn dung lượng trống giúp cho các phiên bản DataNode hiểu không có đủ dung lượng trống .
  7. Không có chủ đề đủ cho phiên bản DataNode (kiểm tra nhật ký datanode và giá trị dfs.datanode.handler.count)
  8. Đảm bảo dfs.data.transfer.protection không bằng “xác thực” và dfs.encrypt.data .transfer là bằng true.

Cũng xin:

  • Xác nhận tình trạng dịch vụ NameNode và DataNode và kiểm tra các bản ghi liên quan
  • Xác minh nếu lõi-site.xml có fs.defaultFS giá trị đúng và HDFS-site.xml có giá trị hợp lệ.
  • Xác minh hdfs-site.xml có dfs.namenode.http-address .. cho tất cả các phiên bản NameNode được chỉ định trong trường hợp cấu hình PHD HA.
  • Xác minh nếu các điều khoản trên thư mục là chính xác

Ref: https://wiki.apache.org/hadoop/CouldOnlyBeReplicatedTo

Ref: https://support.pivotal.io/hc/en-us/articles/201846688-HDFS-reports-Configured-Capacity-0-0-B-for-datanode

Ngoài ra, xin vui lòng kiểm tra: Writing to HDFS from Java, getting "could only be replicated to 0 nodes instead of minReplication"

1

Tôi đã có một vấn đề tương tự gần đây. Vì các bảng dữ liệu của tôi (chỉ) có ổ SSD để lưu trữ, tôi đặt [SSD]file:///path/to/data/dir cho cấu hình dfs.datanode.data.dir. Do các bản ghi có chứa unavailableStorages=[DISK] Tôi đã xóa thẻ [SSD], đã giải quyết được sự cố.

Dường như, Hadoop sử dụng [DISK] làm Loại lưu trữ mặc định và không 'dự phòng' (hoặc thay thế 'fallup') để sử dụng SSD nếu không có vị trí lưu trữ được gắn thẻ [DISK]. Tôi không thể tìm thấy bất kỳ documenation về hành vi này mặc dù.

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