2013-03-04 44 views
5

Tôi đang cài đặt Hadoop trên máy tính xách tay của mình. SSH hoạt động tốt, nhưng tôi không thể bắt đầu hadoop.Hadoop: quyền start-dfs.sh bị từ chối

[email protected]:~$ ssh localhost 
Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-25-generic x86_64) 

* Documentation: https://help.ubuntu.com/ 

0 packages can be updated. 
0 updates are security updates. 

Last login: Mon Mar 4 00:01:36 2013 from localhost 

[email protected]:~$ /usr/sbin/start-dfs.sh 
chown: changing ownership of `/var/log/hadoop/root': Operation not permitted 
starting namenode, logging to /var/log/hadoop/root/hadoop-munichong-namenode-GrindPad.out 
/usr/sbin/hadoop-daemon.sh: line 136: /var/run/hadoop/hadoop-munichong-namenode.pid: Permission denied 
usr/sbin/hadoop-daemon.sh: line 135: /var/log/hadoop/root/hadoop-munichong-namenode-GrindPad.out: Permission denied 
head: cannot open `/var/log/hadoop/root/hadoop-munichong-namenode-GrindPad.out' for reading: No such file or directory 
localhost: chown: changing ownership of `/var/log/hadoop/root': Operation not permitted 
localhost: starting datanode, logging to /var/log/hadoop/root/hadoop-munichong-datanode-GrindPad.out 
localhost: /usr/sbin/hadoop-daemon.sh: line 135: /var/log/hadoop/root/hadoop-munichong-datanode-GrindPad.out: Permission denied 
localhost: /usr/sbin/hadoop-daemon.sh: line 136: /var/run/hadoop/hadoop-munichong-datanode.pid: Permission denied 
localhost: head: cannot open `/var/log/hadoop/root/hadoop-munichong-datanode-GrindPad.out' for reading: No such file or directory 
localhost: chown: changing ownership of `/var/log/hadoop/root': Operation not permitted 
localhost: starting secondarynamenode, logging to /var/log/hadoop/root/hadoop-munichong-secondarynamenode-GrindPad.out 
localhost: /usr/sbin/hadoop-daemon.sh: line 136: /var/run/hadoop/hadoop-munichong-secondarynamenode.pid: Permission denied 
localhost: /usr/sbin/hadoop-daemon.sh: line 135: /var/log/hadoop/root/hadoop-munichong-secondarynamenode-GrindPad.out: Permission denied 
localhost: head: cannot open `/var/log/hadoop/root/hadoop-munichong-secondarynamenode-GrindPad.out' for reading: No such file or directory 

[email protected]:~$ sudo /usr/sbin/start-dfs.sh 
[sudo] password for munichong: 
starting namenode, logging to /var/log/hadoop/root/hadoop-root-namenode-GrindPad.out 
localhost: Permission denied (publickey,password). 
localhost: Permission denied (publickey,password). 

Tôi đã sử dụng "sudo". Nhưng sự cho phép vẫn bị từ chối.

Có ai có thể giúp tôi không?

Cảm ơn trước!

+3

1. Bạn có bắt đầu tất cả các daemon hadoop với cùng một người dùng không? 2. Thiết lập SSH không có mật khẩu có chính xác trên máy không? tức là bạn có thể chạy 'ssh localhost' mà không bị nhắc nhập mật khẩu không? – harpun

Trả lời

4

Cố gắng thay đổi quyền sở hữu của thư mục: /var/log/hadoop/root cho người dùng: munichong. Như trên tất cả các hệ thống, thư mục LOGS cần được biên tập bởi hadoop. Vì vậy, nó đòi hỏi sự cho phép để chỉnh sửa thư mục LOG và nội dung của nó.

sudo sẽ không hoạt động trong trường hợp này vì điều này yêu cầu phải có quyền thay đổi nội dung thư mục ngay cả sau khi tập lệnh này kết thúc công việc của mình tức là bắt đầu dịch vụ HADOOP ở chế độ nền.

+1

bạn có thể thay đổi thư mục nhật ký từ mặc định/var/log thành vị trí tùy chỉnh của bạn trong tệp hadoop-env.sh bằng cách thêm dòng: 'export HADOOP_LOG_DIR = ' –

1

Tôi cũng đang gặp vấn đề này, và trước khi tôi nhận được câu hỏi này, tôi sử dụng phương pháp bên dưới.

  1. sudo -s -H

sử dụng mã này để đăng nhập như là người dùng root

  1. ssh localhost

đăng nhập bằng cách sử dụng ssh (nếu bạn chỉ là cố gắng sử dụng chế độ nút đơn)

  1. ./sbin/start-dfs.sh

./sbin/start-yarn.sh

"cd" để định tuyến cài đặt Hadoop của bạn sau đó in mã để bắt đầu MapRedude HDFS &, sau đó bạn sẽ không phải đối mặt với vấn đề permittion một lần nữa.

Tôi đoán nguyên nhân của vấn đề này:

tôi sử dụng người dùng root để init môi trường Hadoop, vì vậy một số thư mục đã được tạo bởi người dùng root, vì vậy mà khi bây giờ tôi sử dụng tài khoản của riêng tôi như 'Jake' , tôi không có giấy phép để bắt đầu dịch vụ (trong thời gian đó hệ thống cần phải truy cập vào các bản ghi)

enter image description here

8

tôi phải đối mặt với cùng một vấn đề, vì vậy cố gắng kết nối SSH và đã tuyên bố như "không tìm thấy , "vì vậy tôi đã đi đến vị trí ssh để gỡ lỗi bằng cách sau eps:

cd ~/.ssh

ssh_keygen -t rsa -p""

cat id_rsa.pub >> authorized_keys

... sau đó nó làm việc ...

10

Tôi đã bị kẹt ở cùng một vấn đề trong vài giờ qua nhưng cuối cùng đã giải quyết được. Tôi đã cài đặt hadoop được trích xuất bởi cùng một người dùng như một người tôi đang sử dụng để chạy hadoop. Vì vậy, đặc quyền người dùng không phải là vấn đề.
Cofiguration của tôi là như thế này: Máy Linux Ubuntu trên Google Cloud.

Cài đặt Hadoop/home/ Thư mục dữ liệu Hadoop/var/lib/hadoop và các bit truy cập thư mục là 777 để mọi người có thể truy cập. Tôi đã ssh vào máy từ xa đã thực hiện thay đổi cho các tập tin cấu hình và thực hiện start-dfs.sh, sau đó nó đã cho tôi "Quyền bị từ chối (khóa công khai)" Vì vậy, đây là giải pháp: Trong cùng thiết bị đầu cuối ssh:

  1. ssh-keygen

2.It sẽ yêu cầu vị trí thư mục nơi mà nó sẽ sao chép các phím, tôi bước vào /home/hadoop/.ssh/id_rsa

3. nó sẽ yêu cầu cho cụm từ vượt qua, giữ nó trống cho sự đơn giản.

4. cp /home/hadoop/.ssh/id_rsa.pub .ssh/authorized_keys (Để sao chép chìa khóa công cộng mới được tạo ra để tập auth trong người dùng của bạn home/.ssh directiry

  1. ssh localhost

  2. start-dfs.sh (Bây giờ nó phải làm việc!)

0

Tôi nghĩ rằng vấn đề là kết nối ssh gốc và của người dùng. đây là bản sao của tôi https://askubuntu.com/questions/497895/permission-denied-for-rootlocalhost-for-ssh-connection Giải quyết trường hợp của tôi.

Theo mặc định, máy chủ SSH từ chối đăng nhập dựa trên mật khẩu cho thư mục gốc. Trong/etc/ssh/sshd_config,

thay đổi: PermitRootLogin mà không cần mật khẩu để PermitRootLogin có

Và khởi động lại SSH: dịch vụ sudo ssh restart

Hoặc, bạn có thể sử dụng các phím SSH. Nếu bạn không có, hãy tạo một bằng ssh-keygen (gắn vào mặc định cho khóa và bỏ qua mật khẩu nếu bạn muốn). Sau đó, thực hiện sudo -s (hoặc bất kỳ phương thức nào bạn muốn trở thành root) và thêm khóa SSH vào /root/.ssh/authorized_keys:

cat /home/user/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys

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