我在运行从 Spark 2.0.0 中的 Cassandra 读取数据的 Spark 应用程序时遇到了一些麻烦。我的代码工作如下:DataFrameReader readerCassandra = SparkContextUtil.getInstance().read() .format("org.apache.spark.sql.cassandra") .option("spark.cassandra.connection.host", [DATABASE_IP]) .option("spark.cassandra.connection.port", [DATABASE_PORT]);final Map<String,String> map = new HashMap<String,String>();map.put("table", "MyTable");map.put("keyspace", "MyKeyspace");public final StructType schema = DataTypes.createStructType( new StructField[] { DataTypes.createStructField("id", DataTypes.StringType, true), DataTypes.createStructField("timestamp", DataTypes.TimestampType, true), DataTypes.createStructField("value", DataTypes.DoubleType, true) });final Dataset<Row> dataset = readerCassandra.schema(schema).options(map).load(); dataset.show(false);我想在集群中运行此代码。我的集群使用 spark-2.0.2-bin-hadoop2.7(http://spark.apache.org/downloads.html 上没有可用的 spark-2.0.0 )。首先,我使用以下脚本在客户端模式下提交它:#!/bin/bashsparkMaster=local[*]mainClass=package.MainClassjar=/path/to/myJar-with-dependencies.jardriverPort=7079blockPort=7082deployMode=client$SPARK_HOME/bin/spark-submit \ --conf "spark.driver.port=${driverPort}"\ --conf "spark.blockManager.port=${blockPort}"\ --class $mainClass \ --master $sparkMaster \ --deploy-mode $deployMode \ --jars /path/to/jars/spark-cassandra-connector_2.11-2.0.0.jar \ $jar当我这样做时,一切正常。但是现在,我想以集群模式运行我的应用程序。所以我通过设置sparkMaster我的主 IP 和deployMode“集群”来修改我的提交脚本。笔记 :在与我的 Master 同一台机器上只有一个 Worker 的集群时,我仍然有错误。起初,我使用的是 Spark 2.3.1,并且在集群模式下运行我的代码没有问题(在 中使用 spark-cassandra-connector_2.11-2.3.1.jar --jars)。我尝试了多个 jars --jars:spark-cassandra-connector_2.11-2.0.0.jar, spark-cassandra-connector_2.11-2.0.2.jar, spark-cassandra-connector_2.11-2.3.1.jar, spark-cassandra-connector-java_2.11-1.5.1.jar,但没有一个工作。--jars参数中设置了其他一些 jar并考虑在内
添加回答
举报
0/150
提交
取消