Apache spark Spark 1.5.1不使用hive jdbc 1.2.0
我尝试在独立模式下使用spark 1.5.1和Hive1.2.0JDBC版本执行配置单元查询 以下是我的代码:Apache spark Spark 1.5.1不使用hive jdbc 1.2.0,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我尝试在独立模式下使用spark 1.5.1和Hive1.2.0JDBC版本执行配置单元查询 以下是我的代码: private static final String HIVE_DRIVER = "org.apache.hive.jdbc.HiveDriver"; private static final String HIVE_CONNECTION_URL = "jdbc:hive2://localhost:10000/idw"; private static final SparkConf
private static final String HIVE_DRIVER = "org.apache.hive.jdbc.HiveDriver";
private static final String HIVE_CONNECTION_URL = "jdbc:hive2://localhost:10000/idw";
private static final SparkConf sparkconf = new SparkConf().set("spark.master", "spark://impetus-i0248u:7077").set("spark.app.name", "sparkhivesqltest")
.set("spark.cores.max", "1").set("spark.executor.memory", "512m");
private static final JavaSparkContext sc = new JavaSparkContext(sparkconf);
private static final SQLContext sqlContext = new SQLContext(sc);
public static void main(String[] args) {
//Data source options
Map<String, String> options = new HashMap<String, String>();
options.put("driver", HIVE_DRIVER);
options.put("url", HIVE_CONNECTION_URL);
options.put("dbtable", "(select * from idw.emp) as employees_name");
DataFrame jdbcDF = sqlContext.read().format("jdbc").options(options).load();
}
有人能帮我吗?
如果有人将spark 1.5.1与hive jdbc一起使用,那么您能告诉我适用于spark 1.5.1的hive的兼容版本吗
提前谢谢你 据我所知,不幸的是,在上游修复之前,您在使用jdbc连接器方面运气不佳;在这种情况下,“不支持的方法”不仅仅是版本不匹配,而且在中没有显式实现,即使您查看了或,它仍然没有实现:
public boolean isSigned(int column) throws SQLException {
throw new SQLException("Method not supported");
}
查看Spark callsite,isSigned
在中以及中的resolveTable
期间被调用
也就是说,这个“问题”仍然存在的真正原因很可能是,当与Hive交互时,您需要直接连接到Hive元存储,而不需要使用jdbc连接器;有关如何执行此操作,请参阅文档。本质上,您希望将Spark视为蜂巢的平等/替代品,而不是蜂巢的消费者
这样,您所要做的就是将
hive site.xml
添加到Spark的conf/
目录中,并确保lib\u managed/jars
下的datanucleus
JAR可供所有Spark执行器使用,然后Spark直接与Hive metastore对话获取模式信息,并直接从您的HDF中获取数据,这种方式适合于良好的并行RDD。即使在2.3版本中,现在也不支持它。让Spark访问Hive元存储的问题是细粒度的访问控制。我们该如何处理?
public boolean isSigned(int column) throws SQLException {
throw new SQLException("Method not supported");
}