使用 JDBC(例如 Squirrel SQL)用 Spark SQL 查询 Cassandra
Use JDBC (eg Squirrel SQL) to query Cassandra with Spark SQL
我有一个 Cassandra 集群和一个位于同一位置的 Spark 集群,我可以 运行 通过编译它们、复制它们并使用 ./spark-submit 脚本来处理通常的 Spark 作业。我写了一个接受 SQL 作为命令行参数的小作业,将它作为 Spark SQL 提交给 Spark,Spark 运行s that SQL against Cassandra 并写入输出到 csv 文件。
现在我觉得我在兜圈子试图弄清楚是否可以直接在 JDBC 连接中通过 Spark SQL 查询 Cassandra(例如来自 Squirrel SQL). Spark SQL 文档说
Connect through JDBC or ODBC.
A server mode provides industry standard JDBC and ODBC connectivity for
business intelligence tools.
Spark SQL 编程指南说
Spark SQL can also act as a distributed query engine using its JDBC/ODBC or
command-line interface. In this mode, end-users or applications can interact
with Spark SQL directly to run SQL queries, without the need to write any
code.
所以我可以 运行 Thrift 服务器,并向其提交 SQL。但我想不通的是,如何让 Thrift 服务器连接到 Cassandra?我是否只是在 Thrift Server 类路径上弹出 Datastax Cassandra 连接器?我如何告诉 Thrift 服务器我的 Cassandra 集群的 IP 和端口?有没有人已经这样做了,可以给我一些指示?
为什么不使用 spark-cassandra-connector 和 cassandra-driver-core?只需添加依赖项,在您的 spark 上下文中指定主机 address/login,然后您可以使用 sql.
read/write 到 cassandra
在 spark-default.conf 文件中配置这些属性
spark.cassandra.connection.host 192.168.1.17,192.168.1.19,192.168.1.21
# if you configured security in you cassandra cluster
spark.cassandra.auth.username smb
spark.cassandra.auth.password bigdata@123
使用 spark-cassandra-connector 依赖项和 mysql-connector 依赖项启动你的 thrift 服务器,你将通过 JDBC 或 Squirrel 连接一些端口。
sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.bind.host 192.168.1.17 --hiveconf hive.server2.thrift.port 10003 --jars <shade-jar>-0.0.1.jar --driver-class-path <shade-jar>-0.0.1.jar
获取 cassandra table 运行 Spark-SQL 查询如
CREATE TEMPORARY TABLE mytable USING org.apache.spark.sql.cassandra OPTIONS (cluster 'BDI Cassandra', keyspace 'testks', table 'testtable');
我有一个 Cassandra 集群和一个位于同一位置的 Spark 集群,我可以 运行 通过编译它们、复制它们并使用 ./spark-submit 脚本来处理通常的 Spark 作业。我写了一个接受 SQL 作为命令行参数的小作业,将它作为 Spark SQL 提交给 Spark,Spark 运行s that SQL against Cassandra 并写入输出到 csv 文件。
现在我觉得我在兜圈子试图弄清楚是否可以直接在 JDBC 连接中通过 Spark SQL 查询 Cassandra(例如来自 Squirrel SQL). Spark SQL 文档说
Connect through JDBC or ODBC.
A server mode provides industry standard JDBC and ODBC connectivity for
business intelligence tools.
Spark SQL 编程指南说
Spark SQL can also act as a distributed query engine using its JDBC/ODBC or
command-line interface. In this mode, end-users or applications can interact
with Spark SQL directly to run SQL queries, without the need to write any
code.
所以我可以 运行 Thrift 服务器,并向其提交 SQL。但我想不通的是,如何让 Thrift 服务器连接到 Cassandra?我是否只是在 Thrift Server 类路径上弹出 Datastax Cassandra 连接器?我如何告诉 Thrift 服务器我的 Cassandra 集群的 IP 和端口?有没有人已经这样做了,可以给我一些指示?
为什么不使用 spark-cassandra-connector 和 cassandra-driver-core?只需添加依赖项,在您的 spark 上下文中指定主机 address/login,然后您可以使用 sql.
read/write 到 cassandra在 spark-default.conf 文件中配置这些属性
spark.cassandra.connection.host 192.168.1.17,192.168.1.19,192.168.1.21
# if you configured security in you cassandra cluster
spark.cassandra.auth.username smb
spark.cassandra.auth.password bigdata@123
使用 spark-cassandra-connector 依赖项和 mysql-connector 依赖项启动你的 thrift 服务器,你将通过 JDBC 或 Squirrel 连接一些端口。
sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.bind.host 192.168.1.17 --hiveconf hive.server2.thrift.port 10003 --jars <shade-jar>-0.0.1.jar --driver-class-path <shade-jar>-0.0.1.jar
获取 cassandra table 运行 Spark-SQL 查询如
CREATE TEMPORARY TABLE mytable USING org.apache.spark.sql.cassandra OPTIONS (cluster 'BDI Cassandra', keyspace 'testks', table 'testtable');