HBASE-14639 Move Scala info from HBase Wiki to Ref Guide
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/12a718d0 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/12a718d0 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/12a718d0 Branch: refs/heads/hbase-12439 Commit: 12a718d0ca507c911f589d2926cfc408e4155b0e Parents: 988ff62 Author: Misty Stanley-Jones <mstanleyjo...@cloudera.com> Authored: Mon Oct 19 12:18:36 2015 +1000 Committer: Misty Stanley-Jones <mstanleyjo...@cloudera.com> Committed: Mon Nov 2 14:11:21 2015 +1000 ---------------------------------------------------------------------- src/main/asciidoc/_chapters/external_apis.adoc | 74 +++++++++++++++++++++ 1 file changed, 74 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/12a718d0/src/main/asciidoc/_chapters/external_apis.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index eedf79d..3a08329 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -630,3 +630,77 @@ public class HBaseExample { } ---- ==== + +[[scala]] +== Scala + +=== Setting the Classpath + +To use Scala with HBase, your CLASSPATH must include HBase's classpath as well as +the Scala JARs required by your code. First, use the following command on a server +running the HBase RegionServer process, to get HBase's classpath. + +[source, bash] +---- +$ ps aux |grep regionserver| awk -F 'java.library.path=' {'print $2'} | awk {'print $1'} + +/usr/lib/hadoop/lib/native:/usr/lib/hbase/lib/native/Linux-amd64-64 +---- + +Set the `$CLASSPATH` environment variable to include the path you found in the previous +step, plus the path of `scala-library.jar` and each additional Scala-related JAR needed for +your project. + +[source, bash] +---- +$ export CLASSPATH=$CLASSPATH:/usr/lib/hadoop/lib/native:/usr/lib/hbase/lib/native/Linux-amd64-64:/path/to/scala-library.jar +---- + +=== Scala SBT File + +Your `build.sbt` file needs the following `resolvers` and `libraryDependencies` to work +with HBase. + +---- +resolvers += "Apache HBase" at "https://repository.apache.org/content/repositories/releases" + +resolvers += "Thrift" at "http://people.apache.org/~rawson/repo/" + +libraryDependencies ++= Seq( + "org.apache.hadoop" % "hadoop-core" % "0.20.2", + "org.apache.hbase" % "hbase" % "0.90.4" +) +---- + +=== Example Scala Code + +This example lists HBase tables, creates a new table, and adds a row to it. + +[source, scala] +---- +import org.apache.hadoop.hbase.HBaseConfiguration +import org.apache.hadoop.hbase.client.{HBaseAdmin,HTable,Put,Get} +import org.apache.hadoop.hbase.util.Bytes + + +val conf = new HBaseConfiguration() +val admin = new HBaseAdmin(conf) + +// list the tables +val listtables=admin.listTables() +listtables.foreach(println) + +// let's insert some data in 'mytable' and get the row + +val table = new HTable(conf, "mytable") + +val theput= new Put(Bytes.toBytes("rowkey1")) + +theput.add(Bytes.toBytes("ids"),Bytes.toBytes("id1"),Bytes.toBytes("one")) +table.put(theput) + +val theget= new Get(Bytes.toBytes("rowkey1")) +val result=table.get(theget) +val value=result.value() +println(Bytes.toString(value)) +---- \ No newline at end of file