2013-04-15 30 views
18

Tôi hiện đang sử dụng Hadoop-2.0.3-alpha và sau khi tôi có thể làm việc hoàn hảo với HDFS (sao chép tệp vào HDFS, thu được thành công từ khung bên ngoài, sử dụng webfrontend), sau một khởi đầu mới VM của tôi, quá trình datanode dừng sau một thời gian. Quá trình tên mã và tất cả các quy trình sợi hoạt động mà không có vấn đề gì. Tôi đã cài đặt Hadoop trong một thư mục dưới một người dùng bổ sung, vì tôi cũng vẫn cài đặt Hadoop 0.2, điều này cũng làm việc tốt. Xem qua tệp nhật ký của tất cả các quy trình mã hóa Tôi nhận được thông tin sau:Hadoop: Quá trình Datanode bị giết

2013-04-11 16:23:50,475 WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
2013-04-11 16:24:17,451 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 
2013-04-11 16:24:23,276 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s). 
2013-04-11 16:24:23,279 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started 
2013-04-11 16:24:23,480 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Configured hostname is user-VirtualBox 
2013-04-11 16:24:28,896 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened streaming server at /0.0.0.0:50010 
2013-04-11 16:24:29,239 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Balancing bandwith is 1048576 bytes/s 
2013-04-11 16:24:38,348 INFO org.mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog 
2013-04-11 16:24:44,627 INFO org.apache.hadoop.http.HttpServer: Added global filter 'safety' (class=org.apache.hadoop.http.HttpServer$QuotingIn putFilter) 
2013-04-11 16:24:45,163 INFO org.apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context datanode 
2013-04-11 16:24:45,164 INFO org.apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context logs 
2013-04-11 16:24:45,164 INFO org.apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context static 
2013-04-11 16:24:45,355 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened info server at 0.0.0.0:50075 
2013-04-11 16:24:45,508 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: dfs.webhdfs.enabled = false 
2013-04-11 16:24:45,536 INFO org.apache.hadoop.http.HttpServer: Jetty bound to port 50075 
2013-04-11 16:24:45,576 INFO org.mortbay.log: jetty-6.1.26 
2013-04-11 16:25:18,416 INFO org.mortbay.log: Started [email protected]:50075 
2013-04-11 16:25:42,670 INFO org.apache.hadoop.ipc.Server: Starting Socket Reader #1 for port 50020 
2013-04-11 16:25:44,955 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened IPC server at /0.0.0.0:50020 
2013-04-11 16:25:45,483 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Refresh request received for nameservices: null 
2013-04-11 16:25:47,079 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Starting BPOfferServices for nameservices: <default> 
2013-04-11 16:25:47,660 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to localhost/127.0.0.1:8020 starting to offer service 
2013-04-11 16:25:50,515 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting 
2013-04-11 16:25:50,631 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 50020: starting 
2013-04-11 16:26:15,068 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /home/hadoop/workspace/hadoop_space/hadoop23/dfs/data/in_use.lock acquired by nodename [email protected] 
2013-04-11 16:26:15,720 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363) service to localhost/127.0.0.1:8020 
java.io.IOException: Incompatible clusterIDs in /home/hadoop/workspace/hadoop_space/hadoop23/dfs/data: namenode clusterID = CID-1745a89c-fb08-40f0-a14d-d37d01f199c3; datanode clusterID = CID-bb3547b0-03e4-4588-ac25-f0299ff81e4f 
at org.apache.hadoop.hdfs.server.datanode.DataStorage .doTransition(DataStorage.java:391) 
at org.apache.hadoop.hdfs.server.datanode.DataStorage .recoverTransitionRead(DataStorage.java:191) 
at org.apache.hadoop.hdfs.server.datanode.DataStorage .recoverTransitionRead(DataStorage.java:219) 
at org.apache.hadoop.hdfs.server.datanode.DataNode.in itStorage(DataNode.java:850) 
at org.apache.hadoop.hdfs.server.datanode.DataNode.in itBlockPool(DataNode.java:821) 
at org.apache.hadoop.hdfs.server.datanode.BPOfferServ ice.verifyAndSetNamespaceInfo(BPOfferService.java: 280) 
at org.apache.hadoop.hdfs.server.datanode.BPServiceAc tor.connectToNNAndHandshake(BPServiceActor.java:22 2) 
at org.apache.hadoop.hdfs.server.datanode.BPServiceAc tor.run(BPServiceActor.java:664) 
at java.lang.Thread.run(Thread.java:722) 
2013-04-11 16:26:16,212 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363) service to localhost/127.0.0.1:8020 
2013-04-11 16:26:16,276 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363) 
2013-04-11 16:26:18,396 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode 
2013-04-11 16:26:18,940 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0 
2013-04-11 16:26:19,668 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 
/************************************************** ********** 
SHUTDOWN_MSG: Shutting down DataNode at user-VirtualBox/127.0.1.1 
************************************************** **********/ 

Bất kỳ ý tưởng nào? Tôi có thể mắc lỗi trong quá trình cài đặt không? Nhưng thật kỳ lạ, nó đã hoạt động một lần. Tôi cũng phải nói rằng nếu tôi đăng nhập với tư cách người dùng bổ sung để thực thi các lệnh ./hadoop-daemon.shstart namenode và cùng với mã dữ liệu, tôi cần thêm sudo.

tôi đã sử dụng hướng dẫn cài đặt này: http://jugnu-life.blogspot.ie/2012/0...rial-023x.html

Bằng cách này, tôi sử dụng Java 7 phiên bản Oracle.

Trả lời

81

Vấn đề có thể là nút tên đã được định dạng sau khi cụm được thiết lập và các bảng dữ liệu không được, vì vậy các nô lệ vẫn đề cập đến nút tên cũ.

Chúng tôi phải xóa và tạo lại thư mục/home/hadoop/dfs/data trên hệ thống tệp cục bộ cho nút dữ liệu.

  • Kiểm tra tập tin HDFS-site.xml bạn để xem nơi dfs.data.dir được trỏ đến
  • và xóa thư mục đó
  • và sau đó khởi động lại daemon datanode trên máy tính này

Các bước trên nên tạo lại thư mục và giải quyết sự cố.

Vui lòng chia sẻ thông tin cấu hình của bạn nếu các hướng dẫn ở trên không có tác dụng.

13

DataNode chết vì Clusterids không tương thích. Để khắc phục sự cố này Nếu bạn đang sử dụng Hadoop 2.X, thì bạn phải xóa mọi thứ trong thư mục mà bạn đã chỉ định trong hdfs-site.xml - "dfs.datanode.data.dir" (nhưng KHÔNG phải thư mục chính nó) .

ClusterID sẽ được duy trì trong thư mục đó. Xóa và khởi động lại dfs.sh. Điều này sẽ làm việc !!!

+3

xóa mọi thứ ** trong thư mục chứ không phải chính nó **, nếu không mã dữ liệu sẽ không khởi động được vì nó không thể tìm thấy thư mục – manuzhang

4

Tôi nghĩ cách được khuyến nghị thực hiện điều này mà không xóa thư mục dữ liệu là chỉ cần thay đổi biến clusterID trong tệp VERSION của nút dữ liệu.

Nếu bạn nhìn vào thư mục daemon của bạn, bạn sẽ thấy thư mục datanode exmaple tập tin

data/hadoop/daemons/datanode 

phiên bản sẽ giống như thế này.

cat current/VERSION 
#Tue Oct 14 17:31:58 CDT 2014 
storageID=DS-23bf7f3a-085c-4531-808f-801ff6d52d14 
clusterID=CID-bb3547b0-03e4-4588-ac25-f0299ff81e4f 
cTime=0 
datanodeUuid=63154929-ae68-4149-9f75-9a6558545041 
storageType=DATA_NODE 
layoutVersion=-55 

Bạn cần phải thay đổi ClusterId với giá trị đầu tiên trong kết quả của thông điệp như vậy trong trường hợp của bạn đó sẽ là CID-1745a89c-fb08-40f0-a14d-d37d01f199c3 thay vì CID-bb3547b0-03e4-4588 -ac25-f0299ff81e4f

phiên bản cập nhật sẽ xuất hiện như thế này với những thay đổi ClusterId

cat current/VERSION 
    #Tue Oct 14 17:31:58 CDT 2014 
    storageID=DS-23bf7f3a-085c-4531-808f-801ff6d52d14 
    clusterID=CID-1745a89c-fb08-40f0-a14d-d37d01f199c3 
    cTime=0 
    datanodeUuid=63154929-ae68-4149-9f75-9a6558545041 
    storageType=DATA_NODE 
    layoutVersion=-55 

Restart hadoop và datanode nên bắt đầu tốt.

5
  1. Bạn cần phải xoá cả
    C: \ hadoop \ data \ dfs \ datanode
    C: \ hadoop \ data \ dfs \ namenode thư mục.

Nếu bạn không có thư mục này - mở C: \ hadoop \ etc \ hadoop \ HDFS-site.xml tập tin và nhận được đường dẫn cho thư mục này để xóa tiếp theo. Đối với tôi nó nói:

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>file:/hadoop/data/dfs/namenode</value> 
</property> 
<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>file:/hadoop/data/dfs/datanode</value> 
</property> 
  1. Run lệnh cho Format namenode
    c:\hadoop\bin>hdfs namenode -format

Bây giờ nó phải làm việc!

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