spark访问ES,HttpConnectionManager找不到的问题

本文介绍了在Spark项目中导入Elasticsearch-spark依赖以实现数据交互,并展示了配置SparkSession的示例。在运行时遇到程序报错,问题在于缺少commons-httpclient依赖。解决方法是添加相应版本的commons-httpclient依赖到项目中。
摘要由CSDN通过智能技术生成

1、导入es-spark依赖

       <!-- elasticsearch-spark-20 -->
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch-spark-20_2.11</artifactId>
            <version>7.7.0</version>
        </dependency>
        <!-- elasticsearch -->
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>${elasticsearch.version}</version>
        </dependency>
    val spark: SparkSession = SparkSession.builder()
      .master("local[*]")
      .appName(this.getClass.getSimpleName.filter(!_.equals('$')))
      .config("spark.debug.maxToStringFields", 5000)
      .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
      .config("es.nodes", "1xx.xxx.xxx.225,1xx.xxx.xxx.226,1xx.xxx.xxx.227")
      .config("es.port", "9200")
      .config("es.index.auto.create", "false")
      //只通过client节点进行读取操作,因此主节点负载会特别高,性能很差。
      // .config("es.nodes.wan.only","true")
      .config("es.mapping.date.rich", "false") //对date不进行转换
      .getOrCreate()
      
    val map = Map("es.mapping.id" -> "id")
    EsSparkSQL.saveToEs(dataFrame, "cell_link_highway_wea", map)

    spark.close()

2、程序运行报错

在这里插入图片描述

3、解决办法:

导入以下依赖即可:

        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值