YCSB/hypertable
Sean Busbey af424b083d [version] update master branch to 0.14 2017-09-21 21:00:41 -05:00
..
src/main/java/com/yahoo/ycsb/db [core] Fixing squid:S1319 - Declarations should use Java collection interfaces such as "List" rather than specific implementation classes such as "LinkedList". 2017-08-05 15:26:42 -07:00
README.md [license] Apply results of Apache Rat check 2015-11-04 10:25:46 -08:00
pom.xml [version] update master branch to 0.14 2017-09-21 21:00:41 -05:00

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.