• Spark集成ClickHouse(笔记)


    目录

    前言:

     一.配置环境

    1.安装clickhouse驱动

    2.配置clickhouse环境

    二.spark 集成clickhouse

     直接上代码,里面有一些注释哦!

     


    前言:

    大数据处理和分析领域,Spark 是一个非常强大且广泛使用的开源分布式计算框架。而 ClickHouse 则是一个高性能、可扩展的列式数据库,特别适合用于实时分析和查询大规模数据。将 Spark 与 ClickHouse 集成可以充分发挥它们各自的优势,使得数据处理和分析更加高效和灵活。


     一.配置环境

    1.安装clickhouse驱动

    在idea中的maven中安装依赖包

    1. <dependency>
    2. <groupId>ru.yandex.clickhousegroupId>
    3. <artifactId>clickhouse-jdbcartifactId>
    4. <version>0.3.1version>
    5. dependency>

    2.配置clickhouse环境

    (未安装clickhouse可参考文章:安装配置clickhouse

    修改clickhouse配置文件,使其可以远程连接

    进入目录:cd   /etc/clickhouse-server/

     编辑 config.xml,将listen_host注释打开,一般是注释状态!

    二.spark 集成clickhouse

     直接上代码,里面有一些注释哦!

    1. import org.apache.spark.{SparkConf, SparkContext}
    2. import org.apache.spark.sql.SparkSession
    3. import org.apache.spark.sql.functions.{avg, broadcast, col, month, to_timestamp, when, year}
    4. object DomeThree {
    5. def main(args: Array[String]): Unit = {
    6. //new spark
    7. val conf = new SparkConf().setMaster("local[*]").setAppName("three")
    8. .set("spark_testing_memory", "2222222222").set("dfs.client.use.datanode.hostname", "root") //设置spark运行容量 和 dfs的用户
    9. System.setProperty("HADOOP_USER_NAME","root")
    10. // 创建SparkSession(根据自己需求配置)
    11. val sc = new SparkSession.Builder()
    12. .config("hive.metastore.uris", "thrift://192.168.23.xx:9083")
    13. .config("hive.metastore.warehouse", "hdfs://192.168.23.xx://9000/user/hive/warehouse")
    14. .config("spark.sql.storeAssignmentPolicy", "LEGACY")
    15. .config(conf)
    16. .enableHiveSupport()
    17. .getOrCreate()
    18. // 以jdbc为连接方式进行连接
    19. val frame = sc.read.format("jdbc")
    20. .option("driver","ru.yandex.clickhouse.ClickHouseDriver" )// 配置driver
    21. .option("url", "jdbc:clickhouse://192.168.23.xx:8123") // 配置url
    22. .option("user", "default")
    23. .option("password", "123456")
    24. .option("dbtable", "shtd_result.cityavgcmpprovince")
    25. .load()
    26. frame.show() //查看表格
    27. }
    28. }

    控制台打印(因为建的是空表模拟数据的)

  • 相关阅读:
    一、尚医通预约下单
    学位论文选题原则
    Spring Boot
    基于模型的聚类和R语言中的高斯混合模型
    四、kotlin的可空性和基本数据类型
    [c语言]深入返回值为函数指针的函数
    什么是浮动
    JavaScript弹窗关闭的编程方法
    K8s之DashBoard
    【洛谷题解】P1441 砝码称重
  • 原文地址:https://blog.csdn.net/m0_69097184/article/details/133320655