Comments (54)
when i download the distribution and run the command bin\ycsb.sh shell basic, I get the following stacktrace
Run 'git help git' to display the help index.
Run 'git help ' to display help for specific commands.
/c/Users/arun_menon02/YCSB
YCSB_HOME /c/Users/arun_menon02/YCSB
CLASSPATH=%CODENARC%:D:\Java\jdk1.6.0_25/lib/tools.jar:/c/Users/arun_menon02/YCS
B/build/.jar:/c/Users/arun_menon02/YCSB/lib/.jar
Executing command shell with options -Xmx1024m shell basic
Exception in thread "main" java.lang.NoClassDefFoundError: shell
Caused by: java.lang.ClassNotFoundException: shell
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: shell. Program will exit.
Please guide me
from ycsb.
Hi ledzepu2,
Are you using bin/ycsb
or bin/ycsb.sh
? If you are using bin/ycsb.sh
, try bin/ycsb
instead. This command works for me.
./bin/ycsb shell basic
I haven't tested this on Windows, so there might be some issues there. Let me know if the command above doesn't work.
Thanks!
--Michi
from ycsb.
Hi,
It is working. Thanks
from ycsb.
how do i do that on windows?
from ycsb.
After installing Maven and running the mvn clean package successfully, i still cant execute the ycsb command. on windows. Please help.
from ycsb.
I think you should install cygwin and python。
from ycsb.
i have install python but still could not work with it before i opted for maven. Please, whats the role of cygwin? Can you please give me some example instruction to follow in running ycsb command using these tools you mention.
Thanks.
Regards
from ycsb.
In Cygwin shell, I run the command like this ' ./ycsb run cassandra-10 -P ../workloads/march -threads 20 -s'.
There are demos of workload . I always use ycsb test cassandra.
from ycsb.
I have install cygen on my system drive c. I have the YCSB repository already "C:\YCSB-master". i have issued the command mvn clean package b4(or this is not necesary here?). My mongod.exe and mongo.exe are already on. I try to issue the command "./bin/ycsb load mongodb -s -P workloads/workloada" from the cygen environment, i get the error message "-bash: ./bin/ycsb: No such file or directory". Am i supposed to change directory to the YCSB again? If yes, what is the command here as cd YCSB is not working here.
I Apologize for bordering you this much. Thanks
from ycsb.
From the error I suppose that you didnot change the diretory of YCSB. Maybe I am wrong. Do you sucess to run the command 'mvn clean package' ? The error hinted it cannot find the ycsb script which in 'YCSB/bin' dir, I cannot get more information.
from ycsb.
Yes. I change the directory. First, i extract the downloaded YCSB-Master source code into my drive c, Secondly, from the cygwin terminal, i issued cd /cygdrive/c/"YCSB-master" to change directory, then "mvn archetype:generate -DgroupId=com.yahoo.ycsb.app -DartifactId=YCSB -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false". After which i issued "cd /cygdrive/c/YCSB-master/"YCSB" " and "mvn clean package" which was successfull.
But when i issue "./bin/ycsb load mongodb -s -P workloads/workloada" from the current directory i get error message "-bash: ./bin/ycsb: No such file or directory". Is there something i am not doing right?
from ycsb.
You should make sure if there is ycsb or ycsb.sh script.
from ycsb.
there is in "C:\YCSB-master\bin" folder. both ycsb and ycsb.sh
from ycsb.
how can i benchmark MySQL database with YCSB? The YCSB source code i downloaded has no MySQL folder in it
from ycsb.
from YCSB wiki:
Using the JDBC library
The included code works with JDBC. to use YCSB with JDBC driver with MySQL as an example:
Make sure the corresponding JDBC driver is installed. For mysql, it’s “mysql-connector-java”
Make sure the DB driver class, JDBC url, and login credentials are correct in the config file
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/dbname
db.user=username
db.passwd=password
Make sure that the mysql-connector-java-*.jar are available on your classpath, in addition to ycsb.jar
In MySQL, make sure the corresponding DATABASE and TABLE are created before testing.
from ycsb.
Ok. But i am still having issues running the YCSB command(bin/ycsb load basic -P workloads/workloada)on windows. Can you please charge me some money, so you can guide me in making the command work on my system? I will so much appreciate. My skype ID (thankgod.adeyi)
Regards
from ycsb.
Happy new year.
I was able to run the ycsb command to benchmark MongoDb. But now i want to do same for MySQL database. is they a command to load workload into mysql b4 running the ycsb command as in the case of mongo we have "./bin/ycsb load mongodb -s -P workloads/workloada" and "./bin/ycsb run mongodb -s -P workloads/workloada", is there an equivalent of such command for mysql b4 running the pair of "bin/ycsb load basic -P workloads/workloada" and " bin/ycsb run basic -P workloads/workloada" command?
Regards
from ycsb.
It's a bit strange commenting on a closed issue but here goes...
The ycsb commands are the same. The difference is the database module you want to use when ycsb runs. With Mongo, you ran "./bin/ycsb load mongodb -s -P workloads/workloada". For another database, just substitute that db's module name. I haven't run against MySQL, but I think you want to use the jdbc module. So, you'd run something like "./bin/ycsb load jdbc -s -P workloads/workloada". Same command, just substitute the right module. Of course, you need to make sure you've added the right jdbc connect properties and you'll need to make sure the mysql jdbc driver gets loaded in your classpath. Good luck!
from ycsb.
I am using the ycsb-0.1.4 not YCSB from the git repository, Do i need to "mvn clean package" when i make changes to the db.properties,include mysql-connector-java-3.0.17-ga-bin in my lib folder of jdbc-binding for ycsb-0.1.4 to see the changes? If i run ycsb command to load the Mysql database i get error "No suitable driver found". if i execute "mvn clean package" from ycsb-0.1.4 i get error message "Cannot find pom.xml, make sure you are running from the right directory". I used to assume that its only YCSB from the git repository that can be clean with mvn.
Below is the content of my db.properties
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/dbname
db.user=username
db.passwd=password
from ycsb.
Sounds like you have the distributed version, which is completely fine. You will not be doing any Maven commands with this version. That's only if you need to make changes to code. There's is no need to build if you're just changing properties.
The issue you are experiencing, I believe, is that the the mysql driver is not being added to the classpath when ycsb runs. If you look at the output, you should see a line that lists all the jars that have been included along with the parameters used to run ycsb. If you don't see your driver jar listed, that's the problem. Instead of including the mysql-connector-java-3.0.17-ga-bin folder, try putting the jar directly in that lib folder of jdbc-binding. I would expect you to have something like "mysql-connector-java-5.1.16.jar".
from ycsb.
I have deleted the mysql-connector-java-3.0.17-ga-bin and added mysql-connector-java-5.1.16.jar to the lib folder of the jdbc-binding. When i run the ycsb command, mysql-connector-java-5.1.16.jar is listed in the parameters but still throws similar error. Please help me take a look at the log below. Thanks
root@ubuntu:/home/telemagic/ycsb-0.1.4# ./bin/ycsb load jdbc -s -P workloads/workloada
java -cp /home/telemagic/ycsb-0.1.4/hbase-binding/conf:/home/telemagic/ycsb-0.1.4/nosqldb-binding/conf:/home/telemagic/ycsb-0.1.4/voldemort-binding/conf:/home/telemagic/ycsb-0.1.4/core/lib/core-0.1.4.jar:/home/telemagic/ycsb-0.1.4/jdbc-binding/lib/mysql-connector-5.1.18.jar:/home/telemagic/ycsb-0.1.4/jdbc-binding/lib/jdbc-binding-0.1.4.jar:/home/telemagic/ycsb-0.1.4/jdbc-binding/conf:/home/telemagic/ycsb-0.1.4/gemfire-binding/conf:/home/telemagic/ycsb-0.1.4/infinispan-binding/conf com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.JdbcDBClient -s -P workloads/workloada -load
YCSB Client 0.1
Command line: -db com.yahoo.ycsb.db.JdbcDBClient -s -P workloads/workloada -load
Loading workload...
Starting test.
Adding shard node URL:
0 sec: 0 operations;
Error in database operation: java.sql.SQLException: No suitable driver found for
com.yahoo.ycsb.DBException: java.sql.SQLException: No suitable driver found for
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:203)
at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:63)
at com.yahoo.ycsb.ClientThread.run(Client.java:189)
Caused by: java.sql.SQLException: No suitable driver found for
at java.sql.DriverManager.getConnection(DriverManager.java:635)
at java.sql.DriverManager.getConnection(DriverManager.java:195)
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:187)
... 2 more
com.yahoo.ycsb.DBException: java.sql.SQLException: No suitable driver found for
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:203)
at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:63)
at com.yahoo.ycsb.ClientThread.run(Client.java:189)
Caused by: java.sql.SQLException: No suitable driver found for
at java.sql.DriverManager.getConnection(DriverManager.java:635)
at java.sql.DriverManager.getConnection(DriverManager.java:195)
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:187)
... 2 more
[OVERALL], RunTime(ms), 234.0
[OVERALL], Throughput(ops/sec), 0.0
0 sec: 0 operations;
from ycsb.
Thanks for posting the output. That was really helpful.
The problem is that you do not have the db properties set. Specifically, it can't find "db.url". You mentioned setting them before. Are you sure you have them in the workload file you are trying to load - "workloada"? The error is pointing to this variable not being set.
from ycsb.
I updated the db.properties file with the following before running the load command.
jdbc.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/ycsb
db.user=root
db.passwd=telemagic
There are two files in the conf folder of jdbc-binding, the (db and h2).properties, Am i supposed to make the content of both of them thesame?
Am i supposed to indicate the db.properties in the workloada file somewhere before it knows the configuration file to work with?
from ycsb.
Okay, the db properties either need to be included directly in your workload file. Or, you need to include it in on the parameter line like "./bin/ycsb load jdbc -s -P workloads/workloada -P jdbc-binding/conf/db.properties". Or you can use lowercase p for the individual properties like "./bin/ycsb load jdbc -s -P workloads/workloada -p jdbc.driver=com.mysql.jdbc.Driver -p db.url=jdbc:mysql://localhost:3306/ycsb -p db.user=root -p db-passwd=telemagic".
from ycsb.
Thanks. Its working now.
I am benchmarking 2 relational (MySQL and PostgreSQL) and two nosql(Mongodb and cassandra) on a single machine comparing their execution time for different number of records. I tried changing the number of records from the default 1000 in the workloada file by running this command "./bin/ycsb load basic -P workloads/workloada -p recordcount=100000000" But it still keep creating 1000 records. How can i go about this?
Regards
from ycsb.
You are changing "basic" to the actual db you connect to right? "basic" is just for debugging and doesn't do any real operations. Otherwise, I would say that your command line looks right. Also, be sure you are doing a "load". When you do a "run", the parameter for number of operations is "operationcount".
If everything looks right, but it is still not working, I would just change the workloada file directly.
I would be interested in seeing your results if it is okay to share. Please send to cmatser at codespinnerinc dot com. Thanks!
Chrisjan
from ycsb.
Hello,
Thank you for support.
I have overcame most of my challenges. Help me clarify this last issue pleas.
I am running the latest YCSB from the git repository. [CLEANUP], 1, 0 ... section has been added to the output. what could that mean? Secondly, as i keep varying my recordcount, the update operation and read operations keep summing up around 1000. should they sum up to record count?. Thank you
from ycsb.
The CLEANUP is a measurement of the database connection closing after all operations have completed.
recordcount is used for the loading process.
operationcount is the one you want for varying running counts
Chrisjan
from ycsb.
Thanks for the clarification. If i run ycsb command for a particular operationcounts twice, i get different values. Is that correct. Can i take the average?
Regards
from ycsb.
What different values are you talking about different throughput? latency? runtime? operations? Are you changing the input between runs?
You can run the same number of operations and get different output values. I can tell you that I set the operationcount high enough to a point where I feel like I'm getting to a "steady state" of performance. Then I do 3 runs and average them.
I don't change the parameters between each run, though. I average values for the same test. If you change test parameters, I wouldn't average them.
Chrisjan
from ycsb.
Different throughput? latency? runtime? operations? for a constant input (operationcount and recordcount). The Latency, throughput are not moving progressively as i increase or dercrease the Operationcount.
from ycsb.
I don't mean wildly different. The numbers should be roughly the same given the same parameters.
I wouldn't expect latency and throughput to change much if you change the operationcount, only how long your test runs.
I don't change operationcount once I have it set to a number high enough to where I feel like I get a consistent throughput from run to run. Once I've figured that out, I change the -threads variable to simulate load on the database. Then I record the output values to see how the db performs under different load values.
Perhaps if you could explain what you are trying to accomplish...what results you expected to see, I could then better guide you.
Chrisjan
from ycsb.
Thanks. My emphasis is actually on the runtime, not throughput or latency at the moment. I am getting the result that i expected from the runtime even thought the throughput and latency give me worries. Maybe because i always make the operationcount when running the workload always equal to the recordcount when loading for all the database as i vary the count. Will the result be acceptable since i am fair to all the databases in that regard?
Is it possible for someone to keep the throughput fixed?
My Intention is to see the performance(Runtime) of all the database on a single machine subjecting them to varying no. of records. Since everyone knows that relational database is not scallable, could NosQL still be better of interns of performance even on single machine
Regards
from ycsb.
Hello myslef sneha....i am running data-serving benchmark..My problem is am running cassandra on one system as server & YCSB as client on another system.....if i run the cassandra & YCSB on single machine its working fine....
but If i run YCSB on another machine am not getting the proper output.....i ve done client-server connection using SSH.....
could you please help me to slove this issue....
from ycsb.
Is it possible to set the number of times a ycsb "run" cammand should run, such that the result can be sent to an external file in way that the averages can be taken on excel? I mean instead of running the command manually three times to take average, is there a way we can specify the number of runs on command line or something?
from ycsb.
Hello saniadeyi,am having one issue
Am running Apache cassandra on one machine as a server and YCSB as client
on another machine...server not able to fetch the request form client...i
ve done all network setup....Do u ve any idea regarding this?
On Fri, Feb 14, 2014 at 12:12 PM, saniadeyi [email protected]:
Is it possible to set the number of times a ycsb "run" cammand should run,
such that the result can be sent to an external file in way that the
averages can be taken on excel? I mean instead of running the command
manually three times to take average, is there a way we can specify the
number of runs on command line or something?Reply to this email directly or view it on GitHubhttps://github.com//issues/71#issuecomment-35060209
.
from ycsb.
I haven't seen that option for multiple runs with a single command. I do this manually and take an average.
from ycsb.
saniadeyi. I don't know what to tell you other than I connect to a Cassandra instance running on a server different from the one where I run YCSB client. There are so many things that could prevent you from doing what you are doing. Sorry, it's too difficult to debug over a chat. I hope you figure it out.
from ycsb.
Hello saniadeyi,am having one issue
Am running Apache cassandra on one machine as a server and YCSB as client
on another machine...server not able to fetch the request form client...i
ve done all network setup....Do u ve any idea regarding this?
Is it possible to run cassandra n YCSB on another system?
On Fri, Feb 14, 2014 at 1:04 PM, Chrisjan Matser
[email protected]:
saniadeyi. I don't know what to tell you other than I connect to a
Cassandra instance running on a server different from the one where I run
YCSB client. There are so many things that could prevent you from doing
what you are doing. Sorry, it's too difficult to debug over a chat. I hope
you figure it out.Reply to this email directly or view it on GitHubhttps://github.com//issues/71#issuecomment-35062266
.
from ycsb.
@sneha1012 : I am sorry for the delay. Please use the following command but replace localhost with the IP address of the server where the cassandra resides
./bin/ycsb load cassandra-10 -P workloads/workloada -p hosts=localhost
I hope this solves your probelm
from ycsb.
It is more correct to say that out-of-the-box YCSB will support any database with a JDBC driver. Now, most relational DBs have one of those. I would just make sure that your drivers are getting picked up. When you run YCSB, look at the command line output and verify that your appropriate driver is listed.
from ycsb.
Thank you sir...i ve done that to create a key spaces...
i ve already created key space using that command...
I following command is used to run the benchmark on client system after
running the serve using the command ./cassadra -f.
am ot able to generate the dataset.
java -cp build/ycsb.jar:db/cassandra-0.7/lib/ com.yahoo.ycsb.Client -t -s
-db com.yahoo.ycsb.db.CassandraClient7 -P workloads/workloada -P
settings.dat*
is there any procedure for making the connection between YCSB n and
cassandra
On Sat, Feb 15, 2014 at 8:37 PM, saniadeyi [email protected] wrote:
@sneha1012 https://github.com/sneha1012 : I am sorry for the delay.
Please use the following command but replace localhost with the IP address
of the server where the cassandra resides
./bin/ycsb load cassandra-10 -P workloads/workloada -p hosts=localhost
I hope this solves your probelmReply to this email directly or view it on GitHubhttps://github.com//issues/71#issuecomment-35158192
.
from ycsb.
Hello Chrisjan
why is it that anytime i am repeating an insert operation into mongodb and the relational databases using YCSB command, i must first delete the existing record from the databases because of primary key constraint. Is they not a way ycsb command can empty the database first before insertion to avoid me manually doing the delete? Please assist me if you have an idea about such alternative means
Regards
from ycsb.
I haven't run into this problem because my table is created to not enforce unique indexes. In which case a insert is repeated, the duplicate is just considered an update. This may or may not be what you are looking for. I actually delete the inserted records manually after every insert test run because I want to make sure I test inserts, not updates. I don't know of an automatic way.
from ycsb.
Hello,
I also delete manually the inserted records eahch time that I run one of the workloads, however the problem in my case is that I use YCSB with mysql so I'm facing dublicated primary key issues when I run workload d. If I create a table without a primery key I am not sure for the reliability of the ycsb test exeution. Does anyone have an idea if there is a solution for this problem? Thank you
from ycsb.
You might try the properties:
insertstart=
insertorder=ordered
This 'insertstart' property will tell your new inserts what key to start on.
The 'insertorder=ordered' will tell the inserts to insert an ordered set of keys instead of the default "hashed".
from ycsb.
Hello,
I want to test the performance of memcached using the ycsb0.14, and I have done accoring to the "Adding a Database" document, but the error comes when I did Step 5 – Test your database layer, it said "Could not find or load main class com.yahoo.ycsb.CommandLine" . And when I run bin/ycsb load memcache, it told me that "Database 'memcache' not found", so what should I do?
from ycsb.
My guess is that you don't have your classpath set correctly. It's looking for CommandLine which is found in the YCSB core, Mine is: core-0.1.4.jar Next, you need to make sure that the jar which contains the database you are testing is also in your classpath.
For me, I updated the script: bin/ycsb . I didn't use the the "ycsb.sh" script.
I updated the databases section and added mine like this:
DATABASES = {
...
"my-new-db" : "com.path.to.MyNewDBImpl",
...
}
I then run ycsb with this script and specify "my-new-db" like so:
bin/ycsb run my-fav-db -P workloads/workloada -s
The script takes care of finding all the available jars and putting them in the classpath.
Good luck.
Chrisjan
from ycsb.
Hello,
I am working on benchmarking mysql. When I pass the workload I get this error
Ashwin@Ashu /cygdrive/c/Users/Ashwin/Downloads/ycsb-0.1.4
$ ./bin/ycsb load jdbc -P workloads/workloada properties.dat -s > mysql1.load.txt
Error: Could not find or load main class com.yahoo.ycsb.Client
Please help me out
from ycsb.
Hi @Ash140, let's try to keep this on your new issue, #257 rather than bringing this thread back to life.
from ycsb.
H,
I m using ycsb 0.2.0 for benchmarking mongodb2.6.7 on windows platform. For basic database it works but when I write following command
c:\Python27\python.exe bin\ycsb load mongodb -P workloads\workload a -p companies.json -s > mogotest.txt
it doesnot work.
from ycsb.
pls help me out
from ycsb.
@mydata28 please keep your request on #630. most folks won't get notifications on this older closed issue.
from ycsb.
What error message are u getting?
On Feb 23, 2016 7:52 AM, mydata28 [email protected] wrote:H,
I m using ycsb 0.2.0 for benchmarking mongodb2.6.7 on windows platform. For basic database it works but when I write following command
c:\Python27\python.exe bin\ycsb load mongodb -P workloads\workload a -p companies.json -s > mogotest.txt
it doesnot work.
—Reply to this email directly or view it on GitHub.
from ycsb.
Related Issues (20)
- Why cleanup some threads while running read test? HOT 1
- How to use site.ycsb.workloads.SpikesWorkload ?
- How can I configure traffic spikes / workload spikes with YCSB ? HOT 3
- unable to access arrangers::Connexion
- Can we benchmark DynamoDB with DAX ?
- May anyone can give me the address of YCSB+T HOT 2
- Extremely high latencies when using measurement.interval=both to address coordinated omission
- Benchmarking sharded cluster mongodb with YCSB HOT 8
- @kruthar - I resolved this issue for myself by setting a maximum timeout for individual requests, in CRUD operations, in the client-binding. (Implementation was simply running a timer thread in parallel to stop the operation if it exceeded the given time limit.)
- builld error when run rocksdb benchmark
- Error on benchmarking Google Datastore: Commit not found HOT 1
- unable to connect to mongodb using mondb+srv connection HOT 9
- add support for zOS DB2 via jdbc
- `core` dependencies not being installed HOT 1
- Could not test memcached db HOT 1
- The file properties doesn't exist java.lang.NullPointerException: inStream parameter is null
- About the cassandra-driver-core version.
- How to control skewness in workload configuration file without recompiling?
- How to generate a workload trace file, such as : `ycsb-c-1m`?
- User defined data pattern during load phase
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ycsb.