相关疑难解决方法(0)

scalac编译产生"对象apache不是包org的成员"

我的代码是:

import org.apache.spark.SparkContext
Run Code Online (Sandbox Code Playgroud)

它可以在交互模式下运行,但是当我使用scalac编译它时,我收到以下错误消息:

object apache不是包org的成员

这似乎是路径的问题,但我不确切知道如何配置路径.

scala apache-spark

28
推荐指数
2
解决办法
5万
查看次数

使用Kerberos设置Spark SQL连接

我有一个简单的Java应用程序,可以使用Hive或Impala使用像这样的代码连接和查询我的集群

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

...

Class.forName("com.cloudera.hive.jdbc41.HS2Driver");
Connection con = DriverManager.getConnection("jdbc:hive2://myHostIP:10000/mySchemaName;hive.execution.engine=spark;AuthMech=1;KrbRealm=myHostIP;KrbHostFQDN=myHostIP;KrbServiceName=hive");
Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("select * from foobar");
Run Code Online (Sandbox Code Playgroud)

但现在我想尝试使用Spark SQL进行相同的查询.我很难搞清楚如何使用Spark SQL API.具体如何设置连接.我看到了如何设置Spark会话的示例,但是我不清楚我需要提供哪些值

  SparkSession spark = SparkSession
  .builder()
  .appName("Java Spark SQL basic example")
  .config("spark.some.config.option", "some-value")
  .getOrCreate();
Run Code Online (Sandbox Code Playgroud)

如何告诉Spark SQL使用什么主机和端口,使用什么架构,以及如何告诉Spark SQL我正在使用哪种身份验证技术?例如,我正在使用Kerberos进行身份验证.

上面的Spark SQL代码来自https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/sql/JavaSparkSQLExample.java

更新:

我能够取得一些进展,我想我想出了如何告诉Spark SQL连接使用什么主机和端口.

...

SparkSession spark = SparkSession
.builder()
.master("spark://myHostIP:10000")
.appName("Java Spark Hive Example")
.enableHiveSupport()
.getOrCreate();
Run Code Online (Sandbox Code Playgroud)

我在我的pom.xml文件中添加了以下依赖项

<dependency>
   <groupId>org.apache.spark</groupId>
   <artifactId>spark-hive_2.11</artifactId>
   <version>2.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

通过此更新,我可以看到连接正在进一步发展,但现在它似乎失败了,因为我没有通过身份验证.我需要弄清楚如何使用Kerberos进行身份验证.这是相关的日志数据

2017-12-19 11:17:55.717  INFO 11912 --- [o-auto-1-exec-1] …
Run Code Online (Sandbox Code Playgroud)

java kerberos apache-spark apache-spark-sql

10
推荐指数
1
解决办法
2710
查看次数

如何使用用户提供的 Hadoop 正确配置 Spark 2.4

我想使用 Spark 2.4.5(当前稳定的 Spark 版本)和 Hadoop 2.10(当前稳定的 Hadoop 2.x 系列版本)。此外,我需要访问 HDFS、Hive、S3 和 Kafka。

http://spark.apache.org提供 Spark 2.4.5 预构建并与 Hadoop 2.6 或 Hadoop 2.7 捆绑在一起。另一种选择是将 Spark与用户提供的 Hadoop 一起使用,所以我尝试了那个。

由于与用户提供的 Hadoop 一起使用,Spark 也不包含 Hive 库。会有一个错误,就像这里:如何创建带有 Hive 支持的 SparkSession(因“找不到 Hive 类”而失败)?

当我通过使用将spark-hive依赖项添加到spark-shellspark-submit也受到影响)

spark.jars.packages=org.apache.spark:spark-hive_2.11:2.4.5
Run Code Online (Sandbox Code Playgroud)

spark-defaults.conf 中,我收到此错误:

20/02/26 11:20:45 ERROR spark.SparkContext: 
Failed to add file:/root/.ivy2/jars/org.apache.avro_avro-mapred-1.8.2.jar to Spark environment
java.io.FileNotFoundException: Jar /root/.ivy2/jars/org.apache.avro_avro-mapred-1.8.2.jar not found
at org.apache.spark.SparkContext.addJarFile$1(SparkContext.scala:1838)
at org.apache.spark.SparkContext.addJar(SparkContext.scala:1868)
at org.apache.spark.SparkContext.$anonfun$new$11(SparkContext.scala:458)
at org.apache.spark.SparkContext.$anonfun$new$11$adapted(SparkContext.scala:458)
at …
Run Code Online (Sandbox Code Playgroud)

hadoop hive apache-spark hadoop2

5
推荐指数
2
解决办法
3590
查看次数

标签 统计

apache-spark ×3

apache-spark-sql ×1

hadoop ×1

hadoop2 ×1

hive ×1

java ×1

kerberos ×1

scala ×1