命令行连接
用户通过 Spark 自带的命令行工具 spark-shell、spark-sql 或 beeline 均可以实现 SparkSQL 实例访问 SequoiaDB 巨杉数据库。
spark-shell
进入 spark 部署目录启动 spark-shell
$ cd spark
$ bin/spark-shell
关联 SequoiaDB 的集合空间和集合
假设 SequoiaDB 中集合名为 test.test,协调节点在 server1 和 server2 上,通过 spark-shell 创建一个表 test 来对应 SequoiaDB 的集合
scala> sqlContext.sql("CREATE TABLE test ( c1 int, c2 string, c3 int ) USING com.sequoiadb.spark OPTIONS ( host 'server1:11810,server2:11810', collectionspace 'test', collection 'test')")
spark-sql
进入 spark 部署目录启动 spark-sql
假设 spark master 所在主机名为 sparkServer
$ cd spark
$ bin/spark-sql --master spark://sparkServer:7077
Note:
如果不设置—master,将在启动 spark-sql 的机器以 local 方式运行。
关联 SequoiaDB 的集合空间和集合
假设 SequoiaDB 中集合名为 test.test,协调节点在 server1 和 server2 上,通过 spark-sql 创建一个表 test 来对应 SequoiaDB 的集合
spark-sql> CREATE TABLE test( c1 int, c2 string, c3 int ) USING com.sequoiadb.spark OPTIONS ( host 'server1:11810,server2:11810', collectionspace 'test', collection 'test');
创建表或视图之后就可以在表上执行 SQL 语句,以查询操作为例:
spark-sql> select * from test;
显示 SequoiaDB 集合中的数据信息
0 mary 15
1 lili 25
beeline
启动 thriftserver,使其运行在 spark 集群中
假设启动 thrift 服务的主机为 sparkServer
$ ./sbin/start-thriftserver.sh --master spark://sparkServer:7077
Note:
thriftserver 是 JDBC 的接口,用户可以通过 JDBC 连接 thriftserver 来访问数据。
启动 beeline 并连接 thrift 服务,thrift 服务默认服务端口为 10000
$ ./bin/beeline -u jdbc:hive2://sparkServer:10000
使用直线脚本测试 thrift JDBC/ODBC server
$ ./bin/beeline
在直线脚本连接 JDBC/ODBC server in beeline
beeline> !connect jdbc:hive2://localhost:10000
显示成功连接
Connecting to jdbc:hive2://localhost:10000
Note:
Beeline 直线脚本会询问用户名和密码。在非安全模式下,简单输入 username 和空白密码即可。在安全模式下,应按照 beeline documentation 下的说明来执行。
在 beeline 命令行窗口执行创表语句
0: jdbc:hive2://localhost:10000> create table test ( c1 int, c2 string, c3 int) using com.sequoiadb.spark options(host 'suse-lyb:50000', collectionspace 'cs', collection 'cl', username 'sdbadmin', password '/opt/spark/conf/sdb.passwd', passwordtype='file');
连接 SequoiaDB 数据库访问映射表数据
0: jdbc:hive2://localhost:10000> select * from test;
显示 SequoiaDB 集合中的数据信息
+-----+-------+-----+--+
| c1 | c2 | c3 |
+-----+-------+-----+--+
| 0 | mary | 15 |
| 1 | lili | 25 |
+-----+-------+-----+--+