• Apache Hudi集成Apache Zeppelin实战


    1. 简介

    Apache Zeppelin 是一个提供交互数据分析且基于Web的笔记本。方便你做出可数据驱动的、可交互且可协作的精美文档,并且支持多种语言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等等。当前Hive与SparkSQL已经支持查询Hudi的读优化视图和实时视图。所以理论上Zeppelin的notebook也应当拥有这样的查询能力。

    2.实现效果

    2.1 Hive

    2.1.1 读优化视图

    2.1.2 实时视图

    2.2 Spark SQL

    2.2.1 读优化视图

    2.2.2 实时视图

    3.常见问题整理

    3.1 Hudi包适配

    cp hudi-hadoop-mr-bundle-0.5.2-SNAPSHOT.jar    zeppelin/lib
    cp hudi-hive-bundle-0.5.2-SNAPSHOT.jar         zeppelin/lib
    cp hudi-spark-bundle_2.11-0.5.2-SNAPSHOT.jar   zeppelin/lib
    

    Zeppelin启动时会默认加载lib下的包,对于Hudi这类外部依赖,适合直接放在zeppelin/lib下以避免 Hive或Spark SQL在集群上找不到对应Hudi依赖。

    3. 2 parquet jar包适配

    Hudi包的parquet版本为1.10,当前CDH集群parquet版本为1.9,所以在执行Hudi表查询时,会报很多jar包冲突的错。

    解决方法:在zepeelin所在节点的spark/jars目录下将parquet包升级成1.10。

    副作用:zeppelin 以外的saprk job 分配到 parquet 1.10的集群节点的任务可能会失败。

    建议:zeppelin 以外的客户端也会有jar包冲突的问题。所以建议将集群的spark jar 、parquet jar以及相关依赖的jar做全面升级,更好地适配Hudi的能力。

    3.3 Spark Interpreter适配

    相同sql在Zeppelin上使用Spark SQL查询会出现比hive查询记录条数多的现象。

    问题原因:当向Hive metastore中读写Parquet表时,Spark SQL默认将使用Spark SQL自带的Parquet SerDe(SerDe:Serialize/Deserilize的简称,目的是用于序列化和反序列化),而不是用Hive的SerDe,因为Spark SQL自带的SerDe拥有更好的性能。

    这样导致了Spark SQL只会查询Hudi的流水记录,而不是最终的合并结果。

    解决方法:set spark.sql.hive.convertMetastoreParquet=false

    方法一:直接在页面编辑属性

    方法二:编辑 zeppelin/conf/interpreter.json添加

    interpreter

    "spark.sql.hive.convertMetastoreParquet": {
              "name": "spark.sql.hive.convertMetastoreParquet",
              "value": false,
              "type": "checkbox"
            },
    

    4. Hudi增量视图

    对于Hudi增量视图,目前只支持通过写Spark 代码的形式拉取。考虑到Zeppelin在notebook上有直接执行代码和shell 命令的能力,后面考虑封装这些notebook,以支持sql的方式查询Hudi增量视图。

  • 相关阅读:
    泛社交泛泛之交也很重要
    iOS 切后台挂机
    iOS 导航栏translucent用法
    iOS 中UIButton中文字换行
    iOS 给UIimageView添加UITapGestureRecognizer手势点击事件
    iOS15UITableView多了白条,导航栏和Tabbar变成白色和标题变黑处理总结属性变化和原来基本的导航栏属性总结记录(看到就更新)
    iOS延时定时功能
    iOS uiview添加背景图案
    iOS 导航栏返回把样式带回前面怎么办
    iOS 识别图片二维码demo,复制粘贴即用
  • 原文地址:https://www.cnblogs.com/leesf456/p/12791904.html
Copyright © 2020-2023  润新知