spark应用程序内置于本地服务器,如何访问位于hdinsight的hive仓库

hjzp0vay  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(346)

我正在尝试使用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束。
使用客户端模式。

taor4pac

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中不可用的低延迟分析处理提供了详细的安全控制。
希望这有帮助。

相关问题