携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
编译与安装
在 extension/spark-doris-connector/ 源码目录下执行:
| sh build.sh |
|---|
编译成功后,会在 output/ 目录下生成文件 doris-spark-1.0.0-SNAPSHOT.jar。
将此文件复制到 Spark 的 ClassPath 中即可使用 Spark-Doris-Connector。
例如:
Local 模式运行的 Spark,将此文件放入 jars/ 文件夹下。
Yarn集群模式运行的Spark,则将此文件放入预部署包中。
使用示例
| SQL |
|---|
| CREATE TEMPORARY VIEW spark_dorisUSING dorisOPTIONS ( "table.identifier"="YOUR_DORIS_TABLE_NAME" , "fenodes"="YOUR_DORIS_FE_RESFUL_PORT" , "user"="YOUR_DORIS_PASSWORD"); SELECT ***** FROM spark_doris ; |
| DataFrame**** |
| val dorisSparkDF = spark . read . format ( "doris" ) . option ( "doris.table.identifier" , "YOUR_DORIS_TABLE_NAME" )****. option ( "doris.fenodes" , "YOUR_DORIS_FE_RESFUL_PORT" ) . option ( "user" , "YOUR_DORIS_PASSWORD" ) . load () dorisSparkDF . show ( 5 )**** |
| RDD**** |
| import org . apache . doris . spark . _val dorisSparkRDD = sc . dorisRDD ( tableIdentifier = Some ( "YOUR_DORIS_TABLE_NAME" ), cfg = Some ( Map ( "doris.fenodes" -> "YOUR_DORIS_FE_RESFUL_PORT" , "doris.request.auth.user" -> "YOUR_DORIS_PASSWORD" ))****)dorisSparkRDD . collect () |
配置
l 通用配置项
| Key | Default Value | Comment |
|---|---|---|
| doris.fenodes | -- | Doris FE http 地址,支持多个地址,使用逗号分隔 |
| doris.table.identifier | -- | Doris 表名,如:db1.tbl1 |
| doris.request.retries | 3 | 向Doris发送请求的重试次数 |
| doris.request.connect.timeout.ms | 30000 | 向Doris发送请求的连接超时时间 |
| doris.request.read.timeout.ms | 30000 | 向Doris发送请求的读取超时时间 |
| doris.request.query.timeout.s | 3600 | 查询doris的超时时间,默认值为1小时,-1表示无超时限制 |
| doris.request.tablet.size | Integer.MAX_VALUE | 一个RDD Partition对应的Doris Tablet个数。 此数值设置越小,则会生成越多的Partition。从而提升Spark侧的并行度,但同时会对Doris造成更大的压力。 |
| doris.batch.size | 1024 | 一次从BE读取数据的最大行数。增大此数值可减少Spark与Doris之间建立连接的次数。 从而减轻网络延迟所带来的的额外时间开销。 |
| doris.exec.mem.limit | 2147483648 | 单个查询的内存限制。默认为 2GB,单位为字节 |
| doris.deserialize.arrow.async | false | 是否支持异步转换Arrow格式到spark-doris-connector迭代所需的RowBatch |
| doris.deserialize.queue.size | 64 | 异步转换Arrow格式的内部处理队列,当doris.deserialize.arrow.async为true时生效 |
l SQL 和 Dataframe 专有配置
| Key | Default Value | Comment |
|---|---|---|
| user | -- | 访问Doris的用户名 |
| password | -- | 访问Doris的密码 |
| doris.filter.query.in.max.count | 100 | 谓词下推中,in表达式value列表元素最大数量。超过此数量,则in表达式条件过滤在Spark侧处理。 |