Hive metastore通過目錄結構維護元數據,數據更新通過覆蓋保證事務。但是數據湖通過跟蹤文件來管理元數據,壹個目錄可以包含多個版本的文件。這與Hive元數據管理不同。因此,為了與Hive metastore兼容,胡迪需要將元數據從時間軸實時同步到Hive metastore。
將編譯好的打包/胡迪-Hadoop-Mr-bundle/target/胡迪-Hadoop-Mr-bundle-0.11.1 . jar復制到每個節點的Hive安裝目錄下的auxlib目錄下。
進入直線後,執行:
如果要使用Hive Sync函數,需要在編譯時激活Flink-Bundle-Shade-Hive 3 profile。編譯命令如下:
Flink Hive Sync支持兩種模式來連接Hive:
兩種使用方式如下:
例如,使用HMS配置配置單元同步:
然後我們進入直線並執行:
我們可以看到同步的t1表。
然後執行:
胡迪表數據可以從Hive中找到。
如果在執行Flink時遇到以下錯誤:
需要修改打包/胡迪-弗林克-捆綁包/pom.xml,並在重定位標記中添加以下內容:
然後重新編譯。
參考鏈接:
/阿帕奇/胡迪/問題/3042
Spark Hive Sync目前只支持DataFrame API。下面用官網的例子把數據插入胡迪_奶牛表:
火花胡迪配置單元同步配置項具有以下含義:
和Flink壹樣,成功執行後,可以使用Hive通過beeline查詢胡迪表數據。
https://hudi.apache.org/docs/syncing_metastore