0


Spark集成ClickHouse(笔记)

前言:

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


一.配置环境

1.安装clickhouse驱动

在idea中的maven中安装依赖包

  1. <dependency>
  2. <groupId>ru.yandex.clickhouse</groupId>
  3. <artifactId>clickhouse-jdbc</artifactId>
  4. <version>0.3.1</version>
  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. }

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

标签: spark clickhouse 笔记

本文转载自: https://blog.csdn.net/m0_69097184/article/details/133320655
版权归原作者 小辉懂编程 所有, 如有侵权,请联系我们删除。

“Spark集成ClickHouse(笔记)”的评论:

还没有评论