我在運行從 Spark 2.0.0 中的 Cassandra 讀取數(shù)據(jù)的 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當我這樣做時,一切正常。但是現(xiàn)在,我想以集群模式運行我的應用程序。所以我通過設置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參數(shù)中設置了其他一些 jar并考慮在內
添加回答
舉報
0/150
提交
取消