命令行连接

用户通过 Spark 自带的命令行工具 spark-shell、spark-sql 或 beeline 均可以实现 SparkSQL 实例访问 SequoiaDB 巨杉数据库。

spark-shell

  1. 进入 spark 部署目录启动 spark-shell

    1. $ cd spark
    2. $ bin/spark-shell
  2. 关联 SequoiaDB 的集合空间和集合

    假设 SequoiaDB 中集合名为 test.test,协调节点在 server1 和 server2 上,通过 spark-shell 创建一个表 test 来对应 SequoiaDB 的集合

    1. 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

  1. 进入 spark 部署目录启动 spark-sql

    假设 spark master 所在主机名为 sparkServer

    1. $ cd spark
    2. $ bin/spark-sql --master spark://sparkServer:7077

    Note:

    如果不设置—master,将在启动 spark-sql 的机器以 local 方式运行。

  2. 关联 SequoiaDB 的集合空间和集合

    假设 SequoiaDB 中集合名为 test.test,协调节点在 server1 和 server2 上,通过 spark-sql 创建一个表 test 来对应 SequoiaDB 的集合

    1. 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');
  3. 创建表或视图之后就可以在表上执行 SQL 语句,以查询操作为例:

    1. spark-sql> select * from test;

    显示 SequoiaDB 集合中的数据信息

    1. 0 mary 15
    2. 1 lili 25

beeline

  1. 启动 thriftserver,使其运行在 spark 集群中

    假设启动 thrift 服务的主机为 sparkServer

    1. $ ./sbin/start-thriftserver.sh --master spark://sparkServer:7077

    Note:

    thriftserver 是 JDBC 的接口,用户可以通过 JDBC 连接 thriftserver 来访问数据。

  2. 启动 beeline 并连接 thrift 服务,thrift 服务默认服务端口为 10000

    1. $ ./bin/beeline -u jdbc:hive2://sparkServer:10000
  3. 使用直线脚本测试 thrift JDBC/ODBC server

    1. $ ./bin/beeline
  4. 在直线脚本连接 JDBC/ODBC server in beeline

    1. beeline> !connect jdbc:hive2://localhost:10000

    显示成功连接

    1. Connecting to jdbc:hive2://localhost:10000

    Note:

    Beeline 直线脚本会询问用户名和密码。在非安全模式下,简单输入 username 和空白密码即可。在安全模式下,应按照 beeline documentation 下的说明来执行。

  5. 在 beeline 命令行窗口执行创表语句

    1. 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');
  6. 连接 SequoiaDB 数据库访问映射表数据

    1. 0: jdbc:hive2://localhost:10000> select * from test;

    显示 SequoiaDB 集合中的数据信息

    1. +-----+-------+-----+--+
    2. | c1 | c2 | c3 |
    3. +-----+-------+-----+--+
    4. | 0 | mary | 15 |
    5. | 1 | lili | 25 |
    6. +-----+-------+-----+--+