Getting Started
The 1,2,3 of getting rockin' with Sensei!
Getting Sensei
Download a release of Sensei at here.
Expand the tar ball: tar -zxf sensei-xxx.tar.tz
to your favorite location. We will refer to root directory of your Sensei install as $SENSEI_HOME
.
Running the Car example
Sensei comes with a few examples to help you getting started. Let's first take a look at the Cars example
, and get that running.
Step 1: Start Zookeeper
Zookeeper manages Sensei's network topology or cluster.
Start your Zookeeper instance: (You can start your own Zookeeper cluster by following instructions here), From $SENSEI_HOME
./bin/zookeeper-server-start.sh \
resources/zookeeper.properties
You can shut it down by running:
./bin/zookeeper-server-stop.sh
Step 2: Start Sensei Node
With Zookeeper running, we can start a Sensei node serving Car example listening on port 8080:
In $SENSEI_HOME
, start your Sensei node by pointing to the Car example configuration directory:
./bin/start-sensei-node.sh example/cars/conf
This starts a Sensei node with 2 partitions. (click here to learn more about Sensei Clusters)
Step 3: Run the Car example application
You can open the Car example application with your browser (no need to start any other servers.)
Open index.html
file with your browser located at:
$SENSEI_HOME/example/cars/webapp/index.html
Using the Sensei Shell
We can also query this Sensei node with BQL via the Sensei Shell:
./bin/sensei-shell.sh
Output:
$ ./bin/sensei-shell.sh localhost 8080 Welcome to Sensei Shell Url specified, host: localhost, port: 8080 > desc cars; +------------+------------+---------+-----------+-------------+---------+ | facet_name | facet_type | runtime | column | column_type | depends | +------------+------------+---------+-----------+-------------+---------+ | year | range | false | year | int | [] | | color | simple | false | color | string | [] | | makemodel | path | false | makemodel | string | [] | | groupid | simple | false | groupid | long | [] | | city | path | false | city | string | [] | | tags | multi | false | tags | string | [] | | category | simple | false | category | string | [] | | mileage | range | false | mileage | int | [] | | price | range | false | price | float | [] | +------------+------------+---------+-----------+-------------+---------+ > select _uid,color,category where color in ('red','green') and query is "cool" order by category browse by color,category limit 10; +-------+-------+----------+ | _uid | color | category | +-------+-------+----------+ | 11099 | green | compact | | 11101 | green | compact | | 14929 | green | compact | | 15 | green | compact | | 105 | green | compact | | 133 | green | compact | | 149 | green | compact | | 195 | green | compact | | 1071 | green | compact | | 1107 | red | compact | +-------+-------+----------+ 10 rows in set, 1626 hits, 15129 total docs (server: 14ms, total: 87ms) +---------------------+ | category | +---------------------+ | compact (506) | | sports car (265) | | exotic (253) | | suv (199) | | sedan (123) | | mini-van (109) | | truck (75) | | sub-compact (59) | | van (22) | | station wagon (15) | +---------------------+ +--------------+ | color | +--------------+ | red (1070) | | green (556) | +--------------+ > exit
Using the Web-console
Sensei comes with a web-console (written using Sensei's Javascript API) to help you interact with your Sensei cluster.
Simply point your favorite browser to: http://localhost:8080
Learn details of the Javascript API here.
Shutting down the Sensei node
In $SENSEI_HOME, do:
./bin/kill.sh
Understanding the Car Example
Cars data
We have cooked up some data in the form of json objects for 15,000 cars.
Data is stored in text file containing a json string on each-line. Each json string contains information of a car.
Full dataset can be found here. See the following example:
{ "id":0, "groupid":"0", "tags":"hybrid,leather,moon-roof,reliable", "category":"compact", "mileage":14900, "price":7500, "contents":"yellow compact hybrid leather moon-roof reliable u.s.a. florida tampa asian acura 1.6el", "color":"yellow", "year":1994, "makemodel":"asian/acura/1.6el", "city":"u.s.a./florida/tampa" }
This example's configuration contains schema and server settings for the Cars store.
Screenshot
See the following screenshot of the cars example:
Tweets example
If you think this is cool, move on to the Tweets Example »