Flink集成Hive案例

最近在使用Flink集成Hive,遇到不少问题,这里记录一下代码案例,供大家参考

方式一: 使用 FlinkSql-Hive-SqlDialect (sql方言)

        // 设置用户为 hadoop 访问 hdfs
        System.setProperty("HADOOP_USER_NAME", "your_user_name");
        // 执行环境
        StreamTableEnvironment tableEnv = FlinkUtils.getTableEnv();

        // 配置 HiveCatalog
        String catalog_name = "myhive";
        String defaultDatabase = "ods";

        // 指向包含 hive-site.xml 目录的 URI
        String hiveConfDir = "src\\main\\resources";

        //  设置 及 注册 HiveCatalog
        HiveCatalog hive = new HiveCatalog(catalog_name, defaultDatabase, hiveConfDir);
        tableEnv.registerCatalog("myhive", hive);
        // 将HiveCatalog设置为 当前Catalog
        tableEnv.useCatalog(catalog_name);


        // 设置 hive方言
        tableEnv.getConfig().setSqlDialect(SqlDialect.HIVE);

        // 注册 hive-sink-table
        tableEnv.executeSql(
                "CREATE TABLE IF NOT EXISTS tb_test (       " +
                        "     semesterId     STRING,        " +
                        "     teacherId      STRING,        " +
                        "     courseId       STRING         " +
                        " ) partitioned by (dt STRING)      " +
                        " STORED AS parquet                                                 " +
                        " TBLPROPERTIES (                                                   " +
                        "  'partition.time-extractor.timestamp-pattern' = '$dt',            " +
                        "  'sink.partition-commit.trigger' = 'process-time',                " +
                        "  'sink.partition-commit.delay' = '0 s',                           " +
                        "  'sink.partition-commit.policy.kind' = 'metastore,success-file'   " +
                        " ) " );


        // 切换flink-sql模式
        tableEnv.getConfig().setSqlDialect(SqlDialect.DEFAULT);

        // 注册 kafka-source
        tableEnv.executeSql(
                "CREATE TABLE IF NOT EXISTS kafka_test ( " +
                        "     semesterId     STRING,   " +
                        "     teacherId      STRING,   " +
                        "     courseId       STRING    " +
                        " )  with (                                                      " +
                        "  'connector' = 'kafka',                                        " +
              
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值