2

我们正在尝试通过 Apache Spark 将数据从 Oracle 数据库导入 Kinetica 数据库。

我们以独立模式安装了 Spark。我们执行了以下命令。但是,我们已经尝试了所有方法,但无法并行运行作业。我们使用 2 台 IBM 服务器,每台服务器都有 128 个内核和 1TB 内存。

我们还在 spark-defaults.conf 中添加了:

spark.executor.memory=64g
spark.executor.cores=32
spark.default.parallelism=32
spark.cores.max=64
spark.scheduler.mode=FAIR
spark.sql.shuffle.partions=32

在机器上:10.20.10.228

./start-master.sh --webui-port 8585

./start-slave.sh --webui-port 8586 spark://10.20.10.228:7077

在机器 10.20.10.229 上:

./start-slave.sh --webui-port 8586 spark://10.20.10.228:7077

在机器上:10.20.10.228:

我们启动 Spark shell:

spark-shell --master spark://10.20.10.228:7077

然后我们进行配置:

val df  = spark.read.format("jdbc").option    
("url", "jdbc:sqlserver://10.20.10.148:1433;databaseName=testdb").option
("dbtable", "dbo.temp_muh_hareket").option("user", "gpudb").option   
("password", "Kinetica2017!").load()

import com.kinetica.spark._
val lp = new LoaderParams("http://10.20.10.228:9191", "jdbc:simba://10.20.10.228:9292;ParentSet=MASTE
R", "muh_hareket_20", 
false,"",100000,true,true,"admin","Kinetica2017!",4, true, true, 1)  
SparkKineticaLoader.KineticaWriter(df,lp);

上述命令成功运行。数据传输完成。但是,作业是串行而不是并行工作的。执行者也连续工作并轮流工作。他们不并行工作。

我们如何使工作并行工作?

我真的很感谢你的帮助。我们已经做了我们能做的一切。

4

0 回答 0