您可以通过JDBC方式访问Lindorm计算引擎服务,使用Spark SQL完成数据查询、数据分析和数据生产等操作。
前提条件
JDBC连接地址
查看Lindorm计算引擎连接地址的具体步骤请参见查看连接地址。
使用Beeline访问JDBC服务
下载Spark发布包。
解压Spark发布包。
将解压后的路径配置为Spark路径。
export SPARK_HOME=/path/to/spark/;
填写配置文件:
$SPARK_HOME/conf/beeline.conf
。endpoint:Lindorm计算引擎的JDBC连接地址。
user:宽表用户名。
password:宽表用户名对应的密码。
shareResource:多个交互会话之间是否共享Spark资源,默认值为true。
说明如您需要配置更多作业参数,请在beeline.conf文件中进行添加。每行仅支持配置一个作业参数,格式为:
key=value
,例如:spark.dynamicAllocation.minExecutors=3
。运行
$SPARK_HOME/bin/beeline
命令。在交互会话中输入SQL语句。
使用Java访问JDBC服务
添加JDBC环境依赖,以Maven为例。
<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>2.3.8</version> </dependency>
编写Java程序代码访问JDBC服务,代码示例如下:
import java.sql.*; public class App { public static void main(String[] args) throws Exception { Class.forName("org.apache.hive.jdbc.HiveDriver"); String endpoint = "jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****"; String user = ""; String password = ""; Connection con = DriverManager.getConnection(endpoint, user, password); Statement stmt = con.createStatement(); String sql = "SELECT * FROM test"; ResultSet res = stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1)); } } }
可选:如果您需要配置更多的作业参数可以在JDBC连接地址中指定,示例如下:
String endpoint = "jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****;spark.dynamicAllocation.minExecutors=3;spark.sql.adaptive.enabled=false";
使用Python访问JDBC服务
下载Spark发布包。
解压Spark发布包。
配置路径参数。
配置Spark路径。
export SPARK_HOME=/path/to/dir/;
配置CLASSPATH。
export CLASSPATH=$CLASSPATH:$SPARK_HOME/jars/*;
安装JayDeBeApi。
pip install JayDeBeApi
编写Python程序代码访问JDBC服务,代码示例如下:
import jaydebeapi driver = 'org.apache.hive.jdbc.HiveDriver' endpoint = 'jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****' jarPath = '/path/to/sparkhome/jars/hive-jdbc-****.jar' user = '****' password = '****' conn=jaydebeapi.connect(driver, endpoint, [user, password], [jarPath]) cursor = conn.cursor() cursor.execute("select 1") results = cursor.fetchall() cursor.close() conn.close()
可选:如果您需要配置更多的作业参数可以在JDBC连接地址中指定,示例如下:
endpoint = "jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****;spark.dynamicAllocation.minExecutors=3;spark.sql.adaptive.enabled=false"
文档内容是否对您有帮助?