2012-07-03 27 views
7

Tôi đã chạy nút tên_định dạng.Đây là đầu ra của tôi. Tôi đã thử thay đổi quyền truy cập tập tin chmod 777 hadoop.hadoop java.io.IOException: trong khi đang chạy nút tên-định dạng

tôi tin rằng dòng này là lỗi LỖI namenode.NameNode: java.io.IOException: Không thể tạo thư mục/your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/tên/hiện

[email protected]:/usr/local/hadoop/bin$ ./hadoop namenode -format 
12/07/03 17:03:56 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG: host = alexander-desktop/127.0.1.1 
STARTUP_MSG: args = [-format] 
STARTUP_MSG: version = 0.20.2 
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010 
************************************************************/ 
12/07/03 17:03:56 INFO namenode.FSNamesystem: fsOwner=hadoop,hadoop 
12/07/03 17:03:56 INFO namenode.FSNamesystem: supergroup=supergroup 
12/07/03 17:03:56 INFO namenode.FSNamesystem: isPermissionEnabled=true 
12/07/03 17:03:56 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current 
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:295) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1086) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1110) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:856) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:948) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965) 

12/07/03 17:03:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at alexander-desktop/127.0.1.1 


[email protected]:/usr/local$ sudo hadoop/bin/hadoop namenode -format 
sudo: /etc/sudoers is mode 0777, should be 0440 
sudo: no valid sudoers sources found, quitting 
+0

bạn có thể cần phải dừng tất cả các trình tiện ích trước khi thực hiện định dạng trên nút tên ..! –

Trả lời

13

thử với sudo (Tôi nhận ra bạn đã thay đổi quyền) nhưng tôi vẫn sẽ thử sudo và kiểm tra xem điều đó có giải quyết được sự cố không.

+0

tôi đã sửa lỗi ở trên bằng cách thay đổi cấp độ quyền cho sudoers. Lỗi gốc chưa được giải quyết. ok Tôi bây giờ có một vấn đề với $ JAVA_HOME tôi có thể sử dụng xuất khẩu $ JAVA_HOME và đường dẫn để sửa lỗi – alex

+0

@alex: Bạn đã đặt $ JAVA_HOME trong conf/hadoop-env.sh? Kiểm tra xem môi trường của bạn có tập hợp JAVA_HOME này chưa. Lưu ý rằng môi trường người dùng sudo và môi trường của bạn khác nhau. Sử dụng lệnh printev và sudo printenv. – FourOfAKind

+0

cảm ơn rằng cố định vấn đề tôi cũng thử nghiệm với các thiết lập biến môi trường khác nhau vì vậy tôi thấy nó có giá trị kinh nghiệm học tập. Điều làm tôi bối rối là hướng dẫn cho biết bạn có thể đặt tập tin hadoop-env.sh hoặc bash.bashrc. – alex

0

sudo bị hỏng trong trường hợp này, nhưng pkexec (giao diện dòng lệnh cho PolicyKit) vẫn hoạt động, vì vậy bạn có thể khắc phục bằng một lệnh duy nhất. Không cần khởi động lại.

pkexec chmod 0440 /etc/sudoers 

Giả định này PolicyKit được cài đặt. Nếu đây là một hệ thống máy tính để bàn (chứ không phải là một máy chủ không có GUI), nó là.

1

Kiểm tra cấu hình hdfs-site.xml, có thể có đường dẫn sai cho thuộc tính dfs.namenode.name.dir và dfs.datanode.data.dir Trong trường hợp của tôi, nguyên nhân của sự cố (thư mục là nằm trong thư mục chính của người dùng hiện tại của người dùng hiện tại).

+0

Tôi nghĩ mọi người sẽ sử dụng hạt nhân với sudo - thông báo lỗi cho biết: java.io.IOException: Không thể tạo thư mục/your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/tên/hiện tại - điều này có nghĩa là giá trị giữ chỗ cho thư mục datadir không tồn tại? Kiểm tra giá trị mặc định của bạn trong core-site.xml của hdfs-site.xml trước? –

11

bước sau giải quyết vấn đề của tôi -

1- sudo su

Nhập mật khẩu của bạn.

2-/usr/local/hadoop/bin/hdfs namenode -format.

này đã được thực hiện cho hadoop2.5 trong đó "hadoop namenode -format" đã beendeprecated do đó sử dụng "HDFS namenode -format"

+0

Cảm ơn, nó đã hoạt động! –

+0

Làm việc cho tôi, cảm ơn bạn! Câu trả lời được chấp nhận không hoạt động trong trường hợp của tôi – randombee

+0

tương tự cho tôi .. Câu trả lời được chấp nhận không hoạt động trong trường hợp của tôi .. điều này đã làm việc ~ – MysticForce

2

Đây là một vấn đề cho phép. Hoặc bạn có thể sử dụng 1. sudo 2. đăng nhập bằng root

Nhưng giải pháp tốt nhất là

sudo chown $ HADOOP_HOME

hadoop namenode -format

đâu HADOOP_HOME là cài đặt hadoop của bạn thư mục

+0

sudo chown $ HADOOP_HOME với sự cho phép nào? –

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