您可以通過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"
文檔內容是否對您有幫助?