我正在尝试使用intellijmaven通过spark local连接到hdinsight中的配置单元仓库目录。
我正在scala和maven项目中使用spark 1.6。
thrift服务器详细信息:
`System.setProperty("hive.metastore.uris", `"thrift://hnaz.xyz123.internal.cloudapp.net:1403")`
我正在尝试访问Hive仓库的表。
代码:
package Test
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{SQLContext, SaveMode, sources}
object TestHive {
def main(args: Array[String]): Unit = {
// get spark configuration
val conf = new SparkConf()
.setAppName("SparkHiveTest")
conf.setMaster("local[*]")
System.setProperty("hive.metastore.uris", "thrift://hnaz.xyz123.internal.cloudapp.net:1403")
import org.apache.spark.sql.hive.HiveContext
val sc = new SparkContext(conf)
val hiveContext = new HiveContext(sc)
implicit val sqlContext = new SQLContext(sc)
import org.apache.spark.sql.functions._
import sqlContext.implicits._
val df1 = sqlContext.sql(s"use $data_profiling, sqlContext.sql("show tables")");
}
}
pom相关性:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>${spark.version}</version>
<scope>compile</scope>
<!-- provided -->
</dependency>
这是一个错误
" Error:(22, 37) not found: value data_Test
val df1 = sqlContext.sql(s"use $data_Test, sqlContext.sql("show tables")");"
Error:(22, 74) value tables is not a member of StringContext
val df1 = sqlContext.sql(s"use $data_Test, sqlContext.sql("show tables")");
非常感谢。我只有一点怀疑。我的spark构建在本地服务器上,而hive位于hdinsight上。如何从本地spark访问hdinsight hive。我的hdinsight上没有Spark束。
使用客户端模式。
1条答案
按热度按时间taor4pac1#
注意:setmaster方法用于指定本地集群。如果要在hdinsight上的集群中运行应用程序,请将参数local[]*替换为url spark://:其中和是集群中边缘节点的ip地址和端口号。
本教程演示如何使用azure toolkit for intellij插件开发用scala编写的apache spark应用程序,然后直接从intellij集成开发环境(ide)将它们提交到hdinsight spark集群。可以通过以下几种方式使用插件:
•在hdinsight spark群集上开发并提交scala spark应用程序。
•访问azure hdinsight spark群集资源。
•在本地开发和运行scala spark应用程序。
其他详细信息:使用azurehdinsight 4.0,您可以将apachespark和apachehive与hivewarehouse连接器集成。
apache-hive-warehouse-connector(hwc)是一个库,通过支持在sparkDataframe和配置单元表之间移动数据以及将spark流数据定向到配置单元表中等任务,您可以更轻松地使用apache-spark和apache-hive。Hive仓库连接器的工作就像一个桥梁之间的Spark和Hive。它支持scala、java和python进行开发。
hive warehouse connector允许您利用hive和spark的独特功能构建强大的大数据应用程序。apachehive支持原子、一致、隔离和持久的数据库事务(acid)。有关配置单元中的acid和事务的更多信息,请参阅配置单元事务。hive还通过apacheranger和apachespark中不可用的低延迟分析处理提供了详细的安全控制。
希望这有帮助。