質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.57%

vagrant環境で、Cassandraのnodetoolを使用できない。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 603

kenji267

score 50

 実現したいこと

構築した環境(前提参照)でCassandraのnodetoolを使えるようにしたい。

 確認したいこと

・設定変更に関して
JVM_OPTS等の設定が必要になってくると考えています。
今2台で設定しているIPアドレスは192.168.33.41、192.168.33.42です。
127.0.0.1との関連性が実はよくわかっておりません。
その辺が整理つきません。
ちなみにこの変更は、全サーバで行うのでしょうか。
色々わかっていないところが多く、この辺何でもいいのでご教授いただけないでしょうか。

 発生している問題・エラーメッセージ

[root@cassandra1 conf]# /usr/local/cassandra/bin/nodetool status
nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.

 前提

下記サイトを参考にcassandraを試す環境を作っています。
https://www.nttpc.co.jp/technology/cassandra.html

・サーバー構成を次の通り作成
vagrant環境でCassandraのサーバー 2台 (CentOS 7)
ホスト名: cassandra1, cassandra2

cassandra:apache-cassandra-3.11.3
centOS:CentOS Linux release 7.5.1804 (Core) 
java-verion
(以下をインストールしている。特に制御はしていない)
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

2台にした理由は、3台にするとなぜかかなりメモリを食うためです。

Vagrant.configure("2") do |config|
  (1..2).each do |no|
    name = "cassandra#{no}"
    config.vm.define name do |node|
      node.vm.box = "centos/7"
      node.vm.hostname = name
      node.vm.network "private_network", ip: "192.168.33.4#{no}"
    end
  end
end


(接続情報)

mbp:CassandraTest aaa$ vagrant ssh-config
Host cassandra1
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/aaa/MyVagrant/CassandraTest/.vagrant/machines/cassandra1/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

Host cassandra2
  HostName 127.0.0.1
  User vagrant
  Port 2200
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/aaa/MyVagrant/CassandraTest/.vagrant/machines/cassandra2/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

・2台が相互に通信できることを確認
イメージ説明

・cassandra起動を確認

[root@cassandra1 init.d]# /etc/init.d/cassandra start
Start Cassandra

 試したこと

以下を調査中です。

・JVM_OPTSの設定
「JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=」箇所のコメントを外す。
https://www.liquidweb.com/kb/error-failed-to-connect-to-127-0-0-17199-connection-refused-cassandra-solved/

・JVM_OPTSの設定2
JVM_OPTS、listen_address、broadcast_rpc_addressの設定修正
https://stackoverflow.com/questions/41776345/cassandra-failed-to-connect

・メモリ状況及び変更方法の確認
以下調査中
https://stackoverflow.com/questions/46013168/apache-cassandra-connection-refused
(現状のメモリ状況)

[vagrant@cassandra1 ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:            487          39         301           1         146         410
Swap:          1535          30        1505

(対応方法)
メモリを増幅する。

Vagrant.configure("2") do |config|
  (1..2).each do |no|
    name = "cassandra#{no}"
    config.vm.define name do |node|
    //メモリ調整
      node.vm.provider "virtualbox" do |vm|
        vm.customize ["modifyvm", :id, "--memory", "2048"]
      end
   
      node.vm.box = "centos/7"
      node.vm.hostname = name
      node.vm.network "private_network", ip: "192.168.33.4#{no}"
    end
  end
end


※上記を行う場合、vagrant destroyしてからもう一度設定をし直す必要があり、できればvagrantをもう少し確認指定から行いたい。

・そもそも7199に接続できていない
以下調査中
https://www.cyberciti.biz/faq/unix-linux-check-if-port-is-in-use-command/

・繋がらないと諦めていたら、繋がっている時もありました。
下記が表示されるまでおそらくかなり時間がかかっていると思われます。

^[root@cassandra1 conf]# /usr/local/cassandra/bin/nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.33.41  148.39 KiB  256          100.0%            c2c8a839-7322-4cfc-b84c-a6de3c5ab6b4  rack1
UN  192.168.33.42  114.5 KiB  256          100.0%            3dd12b70-d283-4023-86ff-c34fd1ce13b9  rack1

 質問に当たって

今回のエラーはネットで色々出ています。
しかしながら考慮するところが色々あり、知識も浅いところが多く、解決に至りません。
基本的なところがわかっていないところもありますが、わかっていないだけにどう調査いていったらいいかわからなくなっているというのが正直なところです。
質問した経緯として、どこから手をつけていいかわかりづらくなり、わからないところを整理するためもあります。
お力いただければ幸いです。よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.57%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る