123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- To run the system test we need to create processing containers that we can
- spawn tasks, called Instances, in. (how is that for a dangling preposition!?!)
- Start up InstanceContainers first. Then run the system test. The system test
- finds the InstanceContainers and directs them through ZooKeeper, so you are
- going to need an instance of ZooKeeper running that they can all access.
- The easiest way to do all of this is to use the zookeeper fat jar.
- Steps to run system test
- ------------------------
- 1) build and transfer the fatjar from the `zookeeper-contrib/zookeeper-contrib-fatjar/target`
- directory to all systems participating in the test
- Command to build fatjar without executing the tests:
- `mvn clean install -P fatjar -DskipTests`
- 2) run a zookeeper standalone instance (cluster is ok too)
- e.g. java -jar zookeeper-<version>-fatjar.jar server <zoo.cfg>
- Note: you must provide zoo.cfg, see sample in conf directory
- 3) on each host start the system test container
- e.g. java -jar zookeeper-<version>-fatjar.jar ic <name> <zkHostPort> /sysTest
- name : name of the test container - must be unique
- typically it's a good idea to name after the host to aid debugging
- zkHostPort : the host:port of the server from step 2)
- 4) initiate the system test using the fatjar:
- java -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
- by default it will access the zk server started in 2) on localhost:2181
- or you can specify a remote host:port using
- -DsysTest.zkHostPort=<host>:<port>,<host>:<port>,...
- java -DsysTest.zkHostPort=hostA:2181 -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
- where hostA is running the zk server started in step 2) above
- InstanceContainers can also be used to run a the saturation benchmark. The
- first two steps are the same as the system test. Step 3 is almost the same:
- 3) start the InstanceContainer on each host:
- e.g. java -jar zookeeper-<version>-fatjar.jar ic <name> <zkHostPort> <prefix>
- note prefix can be /sysTest or any other path. If you do use /sysTest, make
- sure the system test isn't running when you run the benchmark.
- 4) run GenerateLoad using the following
- java -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar generateLoad <zkHostPort> <prefix> #servers #clients
- Once GenerateLoad is started, it will read commands from stdin. Usually
- the only command you need to know is "percentage" which sets the percentage
- of writes to use in the requests. Once a percentage is set, the benchmark
- will start. "percentage 0" will cause only reads to be issued and
- "percentage 100" will cause only writes to be issued.
|