bcf9ee3485 | ||
---|---|---|
.. | ||
src/main/java/com/yahoo/ycsb/db | ||
README.md | ||
pom.xml |
README.md
Install Hypertable
Installation instructions for Hypertable can be found at:
code.google.com/p/hypertable/wiki/HypertableManual
Set Up YCSB
Clone the YCSB git repository and compile:
]$ git clone git://github.com/brianfrankcooper/YCSB.git
]$ cd YCSB
]$ mvn clean package
Run Hypertable
Once it has been installed, start Hypertable by running
]$ ./bin/ht start all-servers hadoop
if an instance of HDFS is running or
]$ ./bin/ht start all-servers local
if the database is backed by the local file system. YCSB accesses a table called 'usertable' by default. Create this table through the Hypertable shell by running
]$ ./bin/ht shell
hypertable> use '/ycsb';
hypertable> create table usertable(family);
hypertable> quit
All iteractions by YCSB take place under the Hypertable namespace '/ycsb'. Hypertable also uses an additional data grouping structure called a column family that must be set. YCSB doesn't offer fine grained operations on column families so in this example the table is created with a single column family named 'family' to which all column families will belong. The name of this column family must be passed to YCSB. The table can be manipulated from within the hypertable shell without interfering with the operation of YCSB.
Run YCSB
Make sure that an instance of Hypertable is running. To access the database through the YCSB shell, from the YCSB directory run:
]$ ./bin/ycsb shell hypertable -p columnfamily=family
where the value passed to columnfamily matches that used in the table creation. To run a workload, first load the data:
]$ ./bin/ycsb load hypertable -P workloads/workloada -p columnfamily=family
Then run the workload:
]$ ./bin/ycsb run hypertable -P workloads/workloada -p columnfamily=family
This example runs the core workload 'workloada' that comes packaged with YCSB. The state of the YCSB data in the Hypertable database can be reset by dropping usertable and recreating it.
Configuration Parameters
Hypertable configuration settings can be found in conf/hypertable.cfg under your main hypertable directory. Make sure that the constant THRIFTBROKER_PORT in the class HypertableClient matches the setting ThriftBroker.Port in hypertable.cfg.
To change the amount of data returned on each call to the ThriftClient on a Hypertable scan, one must add a new parameter to hypertable.cfg. Include ThriftBroker.NextThreshold=x where x is set to the size desired in bytes. The default setting of this parameter is 128000.
To alter the Hypertable namespace YCSB operates under, change the constant NAMESPACE in the class HypertableClient.