2013-10-10 18 views
5

Tôi mới vào Zookeeper và nó đã là một vấn đề thực sự để cài đặt nó và chạy. Tôi không chắc chắn những gì là sai ở đây nhưng tôi sẽ giải thích những gì tôi đã làm để làm cho nó rõ ràng hơn:FAILED TO WRITE PID cài đặt Zookeeper

1.- Tôi đã làm theo hướng dẫn cài đặt do Apache cung cấp. Điều này có nghĩa là tải xuống bản phân phối Zookeeper (bản phát hành ổn định) đã giải nén tệp và chuyển vào thư mục chính.

2. Như tôi đang sử dụng Ubuntu 12.04 Tôi đã sửa đổi các tập tin .bashrc này bao gồm:

export ZOOKEEPER_INSTALL=/home/myusername/zookeeper-3.4.5 
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin 

3.- Tạo một tập tin cấu hình trên conf/zoo.cfg

tickTime=2000 
dataDir=/var/zookeeper 
clientPort=2181 

và cũng đã cố gắng với:

dataDir=/var/log/zookeeper 

dataDir=/var/bin/zookeeper 

4. Khi chạy lệnh start

zkServer.sh start or `bin/zkServer.sh start` nothing happens and always returns this 

JMX enabled by default 
Using config: /home/sasuke/zookeeper-3.4.5/bin/../conf/zoo.cfg 
mkdir: cannot create directory `/var/zookeeper': Permission denied 
Starting zookeeper ... /home/sasuke/zookeeper-3.4.5/bin/zkServer.sh: line 113: /var/zookeeper/zookeeper_server.pid: No such file or directory 
FAILED TO WRITE PID 

Tôi có cài đặt Java và bên trong thư mục zookeper có một tập tin zookeeper.jar mà tôi nghĩ rằng nó không chạy. Kiểm tra ở đây trên stackoverflow đã có một chàng trai nói rằng ông có thể chạy Zookeeper sau khi nhập

ssh localhost 

Nhưng khi tôi cố gắng để làm điều đó tôi nhận được lỗi này

ssh: connect to host localhost port 22: Connection refused 

Xin vui lòng giúp. Tôi đã ở đây cố gắng giải quyết nó quá lâu.

Hướng dẫn bắt đầu của Zookeeper: http://zookeeper.apache.org/doc/r3.1.2/zookeeperStarted.html trường hợp trước giải quyết với localhost shh Zookeeper: FAILED TO WRITE PID

UPDATE: Các quyền đối với bản ghi là:

drwxr-xr-x 19 root root  4096 Oct 10 07:52 log 

và cho Zookeeper:

drwxr-xr-x 2 zookeeper   zookeeper 4096 Mar 23 2012 zookeeper 

Tôi có nên thay đổi không e bất kỳ cái nào trong số này?

+0

Quyền đăng của '/ var/log/zookeeper'? Có vẻ như bạn không có các quyền cần thiết – bsd

+0

Vui lòng xem câu trả lời của tôi trên cùng một câu hỏi: http://stackoverflow.com/questions/11092636/zookeeper-failed-to-write-pid –

+0

thử khởi động máy chủ bằng "bắt đầu -foreground "để xem nhật ký đầy đủ của vấn đề –

Trả lời

2

Có vẻ như bạn không có các quyền cần thiết. Chủ sở hữu /var/log sẽ là gốc. Zookeeper lưu trữ id quá trình và ảnh chụp nhanh dữ liệu trong thư mục đó. Id quá trình của máy chủ sở thú sinh sản được lưu trữ trong một tệp - zookeeper_server.pid (tính đến 3.3.6)

Nếu bạn có ưu thế gốc, bạn có thể bắt đầu sở thú với ưu tiên là sudo (gốc), nhưng chắc chắn không được khuyến nghị . Hãy chắc chắn rằng bạn bắt đầu sở thú với cùng một (hoặc cao hơn) quyền như chủ sở hữu của thư mục.

Tạo thư mục mới trong thư mục chính của bạn như /home/username/zookeeper-data. Để dataDir trỏ đến thư mục đó và nó sẽ hoạt động.

+0

Tôi đã thay đổi dataDir như bạn đã nói và nó hoạt động. Nhưng sau này tôi có gặp vấn đề gì không? Tôi đã thay đổi quyền truy cập của nhật ký và thư mục zookeeper cho phép người dùng và nhóm viết trên đó nhưng nó không hoạt động. Bằng cách này, cảm ơn cho asnwer. – Rodrigo

0

Điều này xảy ra với tôi do dung lượng ổ đĩa thấp. gây ra vườn thú không thể tạo tập tin pid bên trong thư mục dữ liệu zookeeper.

7

Tôi đã gặp sự cố tương tự. Trong trường hợp của tôi là hữu ích để bắt đầu Zookeeper và trực tiếp chỉ định một tập tin cấu hình:

/bin/zkServer.sh bắt đầu conf/zoo.conf

+0

Điều này làm việc cho tôi. –

+0

Câu trả lời này phải cao hơn. Đặc biệt nếu gặp lỗi khi chạy root. – Eric

0

Khi bạn tạo danh mục cho datadir đảm bảo để sử dụng tùy chọn -p. Điều này sẽ cho phép tạo các thư mục tiếp theo theo yêu cầu của ứng dụng đặt các tệp.

mkdir -p /var/log/zookeeperData Sau đó thiết lập:

dataDir=/var/log/zookeeperData

+0

Sở thú tự động tạo thư mục đó ... – chomp

0

tôi đã phải đối mặt với cùng một vấn đề trong khi khởi động Zookeeper với lệnh này:

hadoop @ ubuntu: ~/hadoop/Zookeeper/zookeeper- 3.4.8 $ bin/zkServer.sh bắt đầu

ERROR [main] client.ConnectionManager $ HConnectio nImplementation: Nút/hbase không có trong ZooKeeper.

Nó phải được viết bởi tổng thể. Kiểm tra giá trị được định cấu hình trong zookeeper.znode.parent. Có thể không phù hợp với cấu hình được định cấu hình trong chương trình chính.

Nhưng chạy các script như su sửa chữa vấn đề này:

hadoop @ ubuntu: ~/hadoop/Zookeeper/Zookeeper-3.4.8 $ sudo bin/zkServer.sh bắt đầu

Zookeeper JMX kích hoạt theo mặc định Sử dụng cấu hình: /home/hadoop/hadoop/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg Bắt đầu Zookeeper ... ĐẦU

1

Các defau lt zookeeper cài đặt (tar extract) đi kèm với tập tin conf tên là conf/zoo_sample.cfg trong khi cùng một trích xuất của bin/zkServer.sh mong đợi các tập tin conf được gọi là zoo.cfg do đó dẫn đến một "Không có tập tin hoặc dir" và "không ghi pid" lỗi. Vì vậy, trước khi chạy zkServer.sh để bắt đầu hoặc ngừng dụ Zookeeper, một trong hai:

  • đổi tên zoo_sample.cfg trong dir conf để zoo.cfg, hoặc
  • cho tên (và đường dẫn) vào file conf (như suggested by Ilya Lapitan) hoặc, tất nhiên
  • chỉnh sửa zkServer.sh ;-)
-1

cố gắng sử dụng sudo -E bin/zkServer.sh bắt đầu

0

Đến/usr/local/etc/
Bạn sẽ tìm thấy Zookeeper thư mục
xóa các thư mục
và khởi động lại máy chủ - zkServer bắt đầu

+1

hãy xem cách tạo danh sách [danh sách mẫu] (https://stackoverflow.com/editing-help#simple-lists). –

0

Thay đổi con đường cho datadir =/tmp/Zookeeper . Nếu nó hoạt động thì các vấn đề truy cập rõ ràng của nó

Nhưng thường không nên sử dụng thư mục tmp.