riptano / ccm

A script to easily create and destroy an Apache Cassandra cluster on localhost
Apache License 2.0
1.21k stars 299 forks source link

Create DSE without a /conf folder #749

Open gfelot opened 1 year ago

gfelot commented 1 year ago

Trying to build a DSE cluster : ccm create --dse dse68 -v 6.8.3 --dse-username=test --dse-password=test -n 3

Then starting : ccm start

Traceback (most recent call last):
  File "/opt/homebrew/bin/ccm", line 112, in <module>
    cmd.run()
  File "/opt/homebrew/Cellar/ccm/3.1.5_3/libexec/lib/python3.11/site-packages/ccmlib/cmds/cluster_cmds.py", line 503, in run
    if self.cluster.start(no_wait=self.options.no_wait,
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/ccm/3.1.5_3/libexec/lib/python3.11/site-packages/ccmlib/dse_cluster.py", line 78, in start
    started = super(DseCluster, self).start(no_wait, verbose, wait_for_binary_proto, wait_other_notice, jvm_args, profile_options, quiet_start=quiet_start, allow_root=allow_root, timeout=180)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/ccm/3.1.5_3/libexec/lib/python3.11/site-packages/ccmlib/cluster.py", line 416, in start
    node.watch_log_for(start_message, timeout=kwargs.get('timeout',60), process=p, verbose=verbose, from_mark=mark)
  File "/opt/homebrew/Cellar/ccm/3.1.5_3/libexec/lib/python3.11/site-packages/ccmlib/node.py", line 510, in watch_log_for
    raise TimeoutError(time.strftime("%d %b %Y %H:%M:%S", time.gmtime()) + " [" + self.name + "] Missing: " + str([e.pattern for e in tofind]) + ":\n" + reads[:50] + ".....\nSee {} for remainder".format(filename))
ccmlib.node.TimeoutError: 16 Mar 2023 08:36:43 [node1] Missing: ['Starting listening for CQL clients']:
INFO  [main] 2023-03-16 09:33:44,992  DseModule.ja.....
See system.log for remainder

Looking at the logs in .ccm/dse68/logs/system.log

INFO  [main] 2023-03-16 09:33:45,345  DatabaseDescriptor.java:676 - DiskAccessMode is standard, indexAccessMode is standard, commitlogAccessMode is standard
INFO  [main] 2023-03-16 09:33:45,346  DatabaseDescriptor.java:1171 - Detected max direct memory 15.756GiB and max heap 504.000MiB
INFO  [main] 2023-03-16 09:33:45,347  DatabaseDescriptor.java:1209 - Using file cache of 7.878GiB, 50% of max direct memory
INFO  [main] 2023-03-16 09:33:45,347  DatabaseDescriptor.java:1225 - Using direct reads cache of 40.000MiB, refer to the the direct_reads_size_in_mb property
INFO  [main] 2023-03-16 09:33:45,348  DatabaseDescriptor.java:711 - Global memtable memory threshold is enabled at 126 MiB
ERROR [main] 2023-03-16 09:33:45,398  DseModule.java:109 - Exiting...
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) An exception was caught and reported. Message: metadata directory '/var/lib/cassandra/metadata' or, if it does not already exist, an existing parent directory of it, is not readable and writable for the DSE. Check file system and configuration.
  at com.datastax.bdp.DseModule.configure(Unknown Source)

1 error
    at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
    at com.google.inject.Guice.createInjector(Guice.java:96)
    at com.google.inject.Guice.createInjector(Guice.java:73)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at com.datastax.bdp.ioc.DseInjector.get(DseInjector.java:36)
    at com.datastax.bdp.DseModule.main(DseModule.java:103)
Caused by: org.apache.cassandra.exceptions.ConfigurationException: metadata directory '/var/lib/cassandra/metadata' or, if it does not already exist, an existing parent directory of it, is not readable and writable for the DSE. Check file system and configuration.
    at org.apache.cassandra.config.DatabaseDescriptor.resolveAndCheckDirectory(DatabaseDescriptor.java:1267)
    at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java:730)
    at org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:569)
    at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:233)
    at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:253)
    at com.datastax.bdp.DseCoreModule.<init>(DseCoreModule.java:84)
    at com.datastax.bdp.DseModule.getRequiredModules(DseModule.java:163)
    at com.datastax.bdp.server.AbstractDseModule.configure(AbstractDseModule.java:27)
    at com.datastax.bdp.DseModule.configure(DseModule.java:89)
    at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
    at com.google.inject.spi.Elements.getElements(Elements.java:110)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
    ... 5 common frames omitted

Everything ccm do must be in the .ccm folder.

I wanted to check the conf folder but it's not here:

tree -L 2
.
├── cluster.conf
├── node1
│   ├── bin
│   ├── commitlogs
│   ├── data
│   ├── keys
│   ├── logs
│   ├── node.conf
│   ├── resources
│   └── saved_caches
├── node2
│   ├── bin
│   ├── commitlogs
│   ├── data
│   ├── keys
│   ├── logs
│   ├── node.conf
│   ├── resources
│   └── saved_caches
└── node3
    ├── bin
    ├── commitlogs
    ├── data
    ├── keys
    ├── logs
    ├── node.conf
    ├── resources
    └── saved_caches

Creating an OSS C* cluster with : ccm create test -v 4.1.0 -n 3

The /conf folder is here.

tree -L 2
.
├── cluster.conf
├── node1
│   ├── bin
│   ├── commitlogs
│   ├── conf
│   ├── data0
│   ├── hints
│   ├── logs
│   ├── node.conf
│   └── saved_caches
├── node2
│   ├── bin
│   ├── commitlogs
│   ├── conf
│   ├── data0
│   ├── hints
│   ├── logs
│   ├── node.conf
│   └── saved_caches
└── node3
    ├── bin
    ├── commitlogs
    ├── conf
    ├── data0
    ├── hints
    ├── logs
    ├── node.conf
    └── saved_caches