web-dev-qa-db-ja.com

ZookeeperをインストールするPIDの書き込みに失敗しました

私はZookeeperを初めて使用しますが、Zookeeperをインストールして実行することは実際の問題です。ここで何が悪いのかわかりませんが、より明確にするために私が行っていることを説明します。

1.-Apacheが提供するインストールガイドに従いました。これは、Zookeeperディストリビューション(安定リリース)をダウンロードしてファイルを抽出し、ホームディレクトリに移動したことを意味します。

2.- Ubuntu 12.04を使用しているので、次のように.bashrcファイルを変更しました。

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

3.- conf /Zoo.cfgに設定ファイルを作成します

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

そしてまた試した:

dataDir=/var/log/zookeeper

そして

dataDir=/var/bin/zookeeper

4.-開始コマンドを実行するとき

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

Javaがインストールされていて、zookeperディレクトリ内に実行されていないと思われるzookeeper.jarファイルがあります。stackoverflowでここをチェックすると、入力後にzookeeperを実行できると言った人がいました。

ssh localhost

しかし、それをやろうとすると、このエラーが発生します

ssh: connect to Host localhost port 22: Connection refused

助けてください。私はここにいるのが長すぎて解決しようとしています。

Zookeeperのスタートガイド: http://zookeeper.Apache.org/doc/r3.1.2/zookeeperStarted.html 前のケースはshh localhostで解決されました Zookeeper:PIDの書き込みに失敗しました

更新:ログの権限は次のとおりです。

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

と飼育係の場合:

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

これらのいずれかを変更する必要がありますか?

10
Rodrigo

必要な権限がないようです。 /var/log所有者がルートになります。 Zookeeperは、プロセスIDとデータのスナップショットをそのディレクトリに保存します。生成されたzookeeperサーバーのプロセスIDはファイル-zookeeper_server.pidに保存されます(3.3.6以降)

ルート特権がある場合は、Sudo(ルート)特権でzookeeperを開始できます。これは機能するはずですが、絶対にお勧めしません。ディレクトリの所有者と同じ(またはそれ以上の)権限でzookeeperを起動するようにしてください。

/home/username/zookeeper-dataのような新しいディレクトリをホームフォルダに作成します。 dataDirがそのディレクトリを指すようにすると、機能するはずです。

4
bsd

私も同じ問題を抱えています。私の場合、Zookeeperを起動して、構成ファイルを直接指定すると便利でした。

/bin/zkServer.sh start conf/Zoo.conf

9
Ilya Lapitan

デフォルトのzookeeperインストール(tar抽出)にはconf/Zoo_sample.cfgという名前のconfファイルが付属していますが、同じ抽出のbin/zkServer.shはconfファイルがZoo.cfgと呼ばれることを想定しているため、「そのようなファイルまたはディレクトリはありません。 "および" pidの書き込みに失敗しました "エラー。したがって、zkServer.shを実行してzookeeperインスタンスを開始または停止する前に、次のいずれかを実行します。

  • confディレクトリのZoo_sample.cfgの名前をZoo.cfgに変更するか、または
  • confファイルに名前(およびパス)を指定します( Ilya Lapitanが提案 として)、またはもちろん
  • zkServer.shを編集します;-)
4
Rohit Kataria

これが起こり得る理由はいろいろあるようです。ここにたくさんの役立つ答えがあります!

私の場合、Zoo.cfgファイルの行末が不適切で、文字が表示されない可能性があるため、zookeeperは/var/zookeeper?/var/zookeeper\rなどのディレクトリを作成しようとしていました。 Zoo.cfgを少し作り直し、Zoo_sample.confを削除するとともに修正しました。

0

これは、ディスク容量が少ないために発生します。 zookeeperがzookeeperデータフォルダー内にpidファイルを作成できない原因。

0
Shanaka

このコマンドでzookeeperを起動しているときに、同じ問題に直面しました。

hadoop @ ubuntu:〜/ hadoop/zookeeper/zookeeper-3.4.8 $ bin/zkServer.sh start

エラー[メイン] client.ConnectionManager $ HConnectionImplementation:ノード/ hbaseがZooKeeperにありません。

それはマスターによって書かれるべきでした。 zookeeper.znode.parentで設定されている値を確認してください。マスターで構成されているものと一致しない可能性があります。

しかし、スクリプトをsuとして実行すると、問題が修正されました。

hadoop @ ubuntu:〜/ hadoop/zookeeper/zookeeper-3.4.8 $ Sudo bin/zkServer.sh start

ZooKeeper JMXはデフォルトで有効になっています設定の使用:/home/hadoop/hadoop/zookeeper/zookeeper-3.4.8/bin /../ conf/Zoo.cfgzookeeperの開始...開始

0

パスを変更してdataDir =/tmp/zookeeperを指定します。それが機能する場合、その明確なアクセスの問題

ただし、通常、tmpディレクトリを使用することはお勧めできません。

0

DataDirのディレクトリを作成するときは、必ず-pオプションを使用してください。これにより、ファイルを配置するアプリケーションの必要に応じて、後続のディレクトリを作成できます。

mkdir -p /var/log/zookeeperData次に設定:

dataDir=/var/log/zookeeperData

0
Douglas Tober

/ usr/local/etc /に移動します
飼育係のディレクトリがあります
ディレクトリを削除します
そしてサーバーを再起動します-zkServerstart

0
Swathi Muppalla